發布子命令

命令連線到遠程主機時,ftp ftp ftp

您可以在 ftp> 提示符中輸入子命令,執行類似這樣的任務:列出遠程目錄、更改當前的本地和遠程目錄、在單一請求中傳送多個檔案、創建和除去目錄,以及轉義到本地 shell 執行 shell 命令。請參考子命令章節取得每個子命令的描述信息。
如果您執行 ftp 命令而不為遠程主機指定 hostname 參數,ftp 命令會立即顯示 ftp> 提示符,等待 ftp 子命令。要連線遠程主機,請執行 open 子命令。 當 ftp 命令連線到遠程主機時,ftp 命令在再次顯示提示符 ftp> 之前會提示輸入登錄名和密碼。如果遠程主機中未定義登錄名的密碼,ftp 命令將不成功。
ftp 命令解釋器(處理在 ftp> 提示符處輸入的全部子命令),會提供大多數檔案傳送程式沒有的性能,如:
* 對 ftp 子命令處理檔案名稱參數
* 將一組子命令集中成一個單一的子命令宏
* 從 $HOME/.netrc 檔案中裝入宏
這些性能會幫助您簡化重複的任務,並允許您在 unattended 方式使用 ftp 命令。
命令解釋器將按照下列規則處理檔案名稱參數:
* 如果為此參數指定了 -(連字元),則標準輸入 (stdin) 將用於讀取操作,而標準輸出用於寫入操作。
* 如果未套用前面的檢查,且檔案名稱擴展已啟用(請參考 -g 標誌或 glob 子命令),則解釋器將根據 C shell 的規則擴展檔案名稱。啟用了檔案名稱匹配替換以及在期待單一檔案名稱的子命令中使用了模式匹配字元時,結果可能與期待的不一樣。
例如,append 和 put 子命令將拓展檔案名稱,然後僅使用所生成第一個檔案名稱。其它 ftp 子命令,如 cd、delete, get、mkdir、renamermdir 不會執行檔案名稱拓展,並從字面上接受模式匹配字元。
* 對於 get、put、mget 和 mput 子命令,解釋器有能力在不同的本地和遠程檔案名稱語法樣式之間進行翻譯和映射(請參考 case、ntrans 和 nmap 子命令),並且在本地檔案名稱不是唯一的情況下有修改它的能力(請參考 runique 子命令)。另外,如果遠程檔案名稱不是唯一的,則 ftp 命令可將指令傳送到遠程 ftpd 伺服器,以修改遠程的檔案名稱(請參考 sunique 子命令)。
* 使用雙引號 (" ") 指定包含空字元的參數。
請注意:ftp 命令解釋器不支持管道。也無需支持所有多位元組字元檔案名稱。
要在互動地運行的時候結束 ftp 會話,請使用 quit 或 bye 子命令或 ftp> 提示符處的End of File (Ctrl-D) 按鍵順序。要在檔案傳送未完成之前結束它,請按中斷按鍵順序。其預設“中斷鍵”序列是 Ctrl-C。stty 指令能用於重新定義該鍵系列。
ftp 命令在正常情況下會立即暫停正在傳送(從本地主機到遠端主機)的傳輸。ftp 命令通過將 FTP ABOR 指令傳送到遠程 FTP 伺服器,來暫停正在接收的傳輸(從遠程主機到本地主機),並廢棄所有傳入的檔案傳送包(直到遠程伺服器停止傳送它們為止)。如果遠程伺服器不支持 ABOR 指令,在遠程伺服器未傳送所有請求的檔案之前,ftp 命令不會顯示 ftp> 提示符。另外,如果遠程伺服器執行未期望的操作時,可能需要結束本地 ftp 進程。
安全性和自動登錄
如果“標準的”是當前認證方法:
ftp 命令也會通過將密碼傳送到遠程主機來處理安全性,並許可自動登錄、檔案傳送和註銷操作。
如果您執行 ftp 命令並指定遠程主機的主機名 (HostName), ftp 命令會嘗試建立一個對於指定主機的連線。如果 ftp 命令連線成功,ftp 命令會在當前目錄或主目錄中搜尋本地的 $HOME/.netrc 檔案。如果檔案存在,ftp 命令會在檔案中搜尋啟動登錄過程的入口,在命令宏定義中搜尋遠程主機。如果 $HOME/.netrc 檔案或自動登錄項不存在,或是系統已使用 securetcpip 命令保護起來, ftp 命令會提示用戶輸入用戶名和密碼。不論命令行中是否指定 HostName 參數,該指令都會顯示此提示。
請注意: 排隊系統不支持多位元組主機名。
如果 ftp 命令找到指定主機的$HOME/.netrc 自動登錄項, ftp 會試圖使用該登錄項中的信息登錄遠程主機。ftp 命令也會載入任何在登錄項中定義的命令宏。在某些情況(例如,所需的密碼在自動登錄項中沒有列出來),ftp 命令會在顯示 ftp> 提示符之前提示輸入密碼。
一旦 ftp 命令完成自動登錄,如果宏是在自動登錄項中定義的,ftp 命令就會執行init 宏。如果init 宏不存在或未包含 quit 或 bye 子命令,ftp 命令將顯示 ftp> 提示符並等待子命令。
請注意: 在提示符或在 $HOME/.netrc 檔案中指定的遠程主機名必須存在,並擁有在遠程主機中定義的密碼。否則,ftp 指令無效。
如果 Kerberos 5 是當前的認證方法:
ftp 命令會按在 IETF 草稿文擋 "draft-ietf-cat-ftpsec-09.txt" 定義的那樣將此拓展用於 ftp 規範。FTP 安全性擴展將使用“Generic Security Service API (GSSAPI)”安全機制來實現。GSSAPI 提供對於基礎的安全性和通信機制來說是獨立的服務。GSSAPI 是在 rfc 1508 和 1509 中定義的。
ftp 命令將使用 AUTH 和 ADAT 命令驗證 ftpd 守護進程。如果兩者都支持 Kerberos 認證,則它們會使用本地用戶 DCE 憑證驗證遠程系統上的用戶。如果這樣失敗了,且兩個系統中都配置了“標準的”認證,則會使用上述的過程。
HostName 參數是傳送檔案的目的地主機名稱。可選的 Port 參數指定了連線埠的標識符,通過此連線埠進行傳輸。(/etc/services 檔案指定了預設連線埠。)
標誌
-C 允許用戶指定:通過 send_file 命令發出的檔案必須在網路高速緩衝區(NBC)中經過快取處理。此標誌必須在指定了 -q 標誌的情況下使用。只有當檔案在無保護的情況下以二進制方式傳送時此標誌才適用。
-d 將有關 ftp 命令操作的調試信息傳送給 syslogd 守護進程。如果您指定 -d 標誌,您必須編輯 /etc/syslog.conf 檔案並添加下列中的一項:
user.info FileName
OR
user.debug FileName
請注意: syslogd 守護進程調試級別包含信息級別訊息。
如果不編輯 /etc/syslog.conf 檔案,則不會產生訊息。變更了 /etc/syslog.conf 檔案之後,請運行 refresh -s syslogd 或 kill -1 SyslogdPID 命令,以通知 syslogd 守護進程其配置檔案的變更。關於調試級別的更多信息,請參考 /etc/syslog.conf 檔案。也請參考 debug 子命令。
-g 禁用檔案名稱中的元字元拓展。解釋元字元可參考為擴展(有時叫做檔案名稱匹配替換)檔案名稱。請參考 glob 子命令。
-i 關閉多檔案傳送中的互動式提示。請參考 prompt、mget、mput 和 mdelete 子命令,以取得多檔案傳送中的提示的描述。
-n 防止在起始連線中的自動登錄。否則, ftp 命令會搜尋 $HOME/.netrc 登錄項,該登錄項描述了遠程主機的登錄和初始化過程。請參考 user 子命令。
-q 允許用戶指定: send_file 子例程必須用於在網路上傳送檔案。只有當檔案在無保護的情況下以二進制方式傳送時此標誌才適用。
-v 顯示遠程伺服器的全部回響,並提供數據傳輸的統計信息。當 ftp 命令的輸出是到終端(如控制台或顯示)時,此顯示方式是預設方式。
如果 stdin 不是終端,除非用戶調用帶有 -v 標誌的 ftp 命令,或傳送 verbose 子命令,否則 ftp 詳細方式將禁用。
-f 導致轉發憑證。如果 Kerberos 5 不是當前認證方法,則此標誌將被忽略。
-k realm 如果遠程站的域不同於本地系統的域,系統將允許用戶指定遠程站的域。因此,域和 DCE 單元是同義的。如果 Kerberos 5 不是當前認證方法,則此標誌將被忽略。

相關詞條

熱門詞條

聯絡我們