FTP協議命令基礎講解
在FTP使用的過程中,我們常會對它進行命令編輯,以便能夠有效地管理這方面的使用。那么對于這個FTP協議命令如何來學習呢?我們***步來了解一下這個協議的基本情況吧。那么首先要分析一下它的使用環境。
FTP協議的用途
在本地主機和遠程主機之間傳送文件。
FTP協議的語法
ftp [ -d] [ -g ] [ -i ] [ -n ] [ -v] [ -f ] [ -k realm] [-q[-C]][ HostName [ Port ] ]
FTP協議的描述
FTP協議命令使用“文件傳送協議” (FTP) 在本地和遠程主機或遠程主機之間傳送文件。
FTP協議允許在使用不同文件系統的主機之間進行數據傳送。盡管協議在傳送數據中提供了很高的靈活度,它仍然不會嘗試保留特定于某個文件系統的文件屬性(如文件保護模式或修改時間)。而且,FTP協議為文件系統的整體結構做了少許假設,且不提供或不允許諸如循環地復制子目錄這樣的函數。
請注意:如果您正在系統之間傳送文件,且需要保存文件屬性或遞歸地復制子目錄,請使用 rcp 命令。
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、rename 和 rmdir 不會執行文件名拓展,并從字面上接受模式匹配字符。
◆對于 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 命令通過將 FTPABOR 指令發送到遠程 FTP服務器,來暫停正在接收的傳輸(從遠程主機到本地主機),并廢棄所有傳入的文件傳送包(直到遠程服務器停止發送它們為止)。如果遠程服務器不支持 ABOR 指令,在遠程服務器未發送所有請求的文件之前,ftp 命令不會顯示 ftp> 提示符。另外,如果遠程服務器執行未期望的操作時,可能需要結束本地 ftp 進程。