簡介
與大多數Internet服務一樣,FTP也是一個客戶機/伺服器系統。用戶通過一個支持FTP協定的客戶機程式,連線到在遠程主機上的FTP伺服器程式。用戶通過客戶機程式向伺服器程式發出FTP命令,伺服器程式執行用戶所發出的FTP命令,並將執行的結果返回到客戶機。
FTP命令是Internet用戶使用最頻繁的命令之一,不論是在DOS、Windows的命令行、LINUX、UNⅨ
還是AⅨ作業系統下都可以使用FTP,都會遇到大量的FTP內部命令,熟悉並靈活套用FTP命令,可以大大方便使用者,並收到事半功倍之效。
比如說,用戶發出一條命令,要求伺服器向用戶傳送某一個檔案的一份拷貝,伺服器會回響這條命令,將指定檔案送至用戶的機器上。客戶機程式代表用戶接收到這個檔案,將其存放在用戶目錄中。
基礎命令
進入想要連線的FTP站點後,用戶就可以進行相應的檔案傳輸操作了,其中一些重要 的命令及相似的命令 如下:
1、HELP、、RHELP、REMOTEHELP
HELP顯示LOCAL端的命令說明,若不接受則顯示所有可用命令;
?相當於HELP,例如:?CD:
RHELP同HELP,只是它用來顯示REMOTE端的命令說明;
REMOTEHELP相當於RHELP。
2、ASC(ASCll)、bin(BINARY)、IMAGE、TYPE
ASCⅡ切換傳輸模式為文字模式(只能用來傳送DOC檔案,因為是7-BIT);
BINARY切換傳輸模式為二進制模式(除文字檔案外皆用此模式);
IMAGE相當於BINARY:
TYPE讓你更改或顯示傳輸模式。
3、BYE、QUIT
BYE退出FTP:
QUIT相當於BYE。
4、CD、CDUP、LCD、P~WD、 !
CD改變當前工作目錄,例如:CD\PUB;
CDUP回到上一層目錄,相當於你打CD..:
LCD讓你更改或顯示LOCAL端的工作目錄,例如:LCD\TMP;
PWD顯示的工作目錄(REMOTE端):
!讓你執行外殼命令,例如:!LS。
5、DELETE、MDELETE、RENAME
DELETE刪除REMOTE端的檔案:
MDELETE批量刪除檔案,需配合?或,*
RENAME更改REMOTE端的檔案名稱。
6、GET、MGET、PUT、MPUT、RECV、SEND
GET下傳檔案;
MGET批量下傳檔案,需配合萬用字元,例如:MGET*.GZ;
PUT上傳檔案;
MPUT批量上傳檔案,需配合萬用字元;
RECV相當於GET(RECV為RECEIVE的簡寫):
SEND相當於PUT。
7、HASH、PROMPT、VERBOSE、STATUS、BELL
HASH切換#字號的出現,每一個#字號表示傳送了1024/8192BYTES:
PROMPT切換iNTERACTⅣEON/OFF;
VERBOSE切換所有檔案傳輸過程的顯示;
STATUS顯示的一些參數:
BELL當指令做完時會發出叫聲。
8、LS、DIR、MLS、MDIR、MKDIR、RMDIR
LS有點像UNIX下的LS(LIST)命令:
DIR相當於LS-L(LIST-LONG);
MLS只是將遠端某目 錄下的檔案存於LOCAL端的某檔案里;
MDIR相當於MLS;
MKDIR像DOS下的MD(創建子目錄)一樣:
RMDIR像DOS下的RD(刪除子目錄)一樣。
9、OPEN、CLOSE、DISCONNECT、USER
OPEN連線某個遠端FTP伺服器;
CLOSE關閉連線; DISCONNECT相當於CLOSE;
USER再輸入一次用戶名和口令(有點像UNⅨ下的SU)。
命令進階
語法
ftp [ -d] [ -g ] [ -i ] [ -n ] [ -v] [ -f ] [ -k realm] [-q[-C]][ HostName [ Port ] ]
-C 允許用戶指定:通過 send_file 命令發出的檔案必須在網路高速緩衝區(NBC)中經過快取處理。此標誌必須在指定了-q 標誌的情況下使用。只有當檔案在無保護的情況下以二進制方式傳送時此標誌才適用。
-d 將有關 ftp 命令操作的調試信息傳送給 syslogd 守護進程。如果您指定-d 標誌,您必須編輯/etc/syslog.conf 檔案並添加下列中的一項:
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 不是當前認證方法,則此標誌將被忽略。
?
詳解
1、[crud[args)1:在本地機中執行互動shell,exit回到FTP環境, 列如:!LS*.zip.
2、$macro-amc[args兒執行宏定義macro-name。
3、account[password]:提供登錄遠程系統成功後訪問系統資源所需的補充口令。
4、append local-file[remote-file]:將本地檔案追加到遠程系統主機,若未指定遠系統檔案名稱,則使用本地檔案名稱。
5、ASCii:使用ascⅡ型傳輸方式。
6、bell:每個命令執行完畢後計算機響鈴—次
7、bin:使用二進制檔案傳輸方式
8、bye..退出FTP會話過程—
9、case:在使用mget時,將遠程主檔案名稱中的大寫字母轉為小寫字母
10、cdremote·dir:進入遠程主機目錄。
11、cdup..進入遠程主機目錄的父目錄。
12、chmodmodefile-name:將遠程主機檔案file-name的存取方式設定為mode。列如:chmod777a.OUt。
13、close:中斷與遠程伺服器的FTP會話(與open對應)。
14、cr:使用ASCii“方式傳輸檔案時,將回車換行轉換為回行
15、deleteremote-file-刪除遠程主機檔案:
16、debugldebug-value3:.設定調試方式,顯示傳送至遠程主機的每條命令。例如:debug3,若設為0,表示取消debug。
17、dir[remote-dir][Local-file]:顯示遠程主機目錄,並將結果存入本地檔案local-file:
18、disconnection-.同close。
19、formformat:將檔案傳輸方式設定為format,預設為file方式。
20、getremote-file[10cal-file]:將遠程主機的檔案remote-file傳至本地 硬碟的local-file。
21、glob:設定mdelete,mget,mput的檔案名稱擴展,預設時不擴展檔案名稱,同命令行的-g參數。
22、hash:每傳輸1024位元組,顯示一個hash符號(#)。
23、help[cmd]:顯示FTP內部命令cmd的幫助信息,如.-helpget。
24、idle[seconds]:將遠程伺服器的休眠計時器設為[seconds]秒。
25、image:設定二進制傳輸方式(同binary)。
26、LCD[DIR]:將本地工作目錄切換至dir。
27、LS[remote-DIR][LOCAL-FILE]:顯示遠程目錄remote-dir,並存入本地文local-fileo
28、macdefmacro-name:定義一個宏,遇到macdef下的空行時,宏定義結束。
29、mdelete[remote-file]:刪除遠程主機檔案。
30、mdirremote-fileslocal-file:與dlr類似,但可指定多個遠程檔案。列如mdir*.O.*.zipoutfiLe。
31、mgetremote-files:傳輸多個遠程檔案。
32、mkdirdirname:在遠程主機中建一目錄。
33、misremote-filelocal-file.同nlist,但可指定多個檔案名稱。
34、mode[modename]:將檔案傳輸方式設定為modename,預設為stream方式。
35、modtimefile-name..顯示遠程主機檔案的最後修改時間。·
36、mputlocal-file:將多個檔案傳輸至遠程主機,
37、newerfile-name:如果遠程機中file-name的修改時間比本地硬碟同名檔案的時間巨近,則重新傳輸該檔案。·
其它
FTP伺服器及匿名FTP
FTP的全稱是File Transfer Protocol(檔案傳輸協定),顧名思義,就是專門用來傳輸檔案的協定。FTP的主要作用,就是讓用戶連線上一個遠程計算機(這些計算機上運行著 FTP伺服器程式)察看遠程計算機有哪些檔案,然後把檔案從遠程計算機上拷到本地計算機,或把本地計算機的檔案送到遠程計算機去。
其實 早期在Internet上傳輸檔案,並不是一件容易的事,我們知道 Internet是一個非常複雜的計算機環境,有PC、工作站、MAC、伺服器、大型機等等,而這些計算機可能運行不同的作業系統,有Unix、Dos、 Windows、MacOS等等,各種作業系統之間的檔案交流,需要建立一個統一的檔案傳輸協定,這就是所謂的FTP。雖然基於不同的作業系統有不同的 FTP應用程式,而所有這些應用程式都遵守同一種協定,這樣用戶就可以把自己的檔案傳送給別人,或者從其它的用戶環境中獲得檔案。
與大 多數Internet服務一樣,FTP也是一個客戶機/伺服器系統(C/S)。用戶通過一個支持FTP協定的客戶機程式,連線到遠程主機上的FTP伺服器 程式。用戶通過客戶機程式向伺服器程式發出命令,伺服器程式執行用戶所發出的命令,並將執行的結果返回到客戶機。比如說,用戶發出一條命令,要求伺服器向用戶傳送某一個檔案,將其存放在用戶指定目錄中。FTP客戶程式 有字元界面和圖形界面兩種。字元界面的FTP的命令複雜、繁多。圖形界面的FTP客戶程式,操作上要簡潔方便的多。
在FTP的使用當 中,用戶經常遇到兩個概念:"下載"(Download)和"上載"(Upload)。"下載"檔案就是從遠程主機拷貝檔案至自己的計算機上;"上載"文 件就是將檔案從自己的計算機中拷貝至遠程主機上。用Internet語言來說,用戶可通過客戶機程式向(從)遠程主機上載(下載)檔案。
在ftp的使用過程中,必須首先登錄,在遠程主機上獲得相應的許可權以後,方可上傳或下載檔案。也就是說,要想同哪一台計算機傳送檔案,就必須具有哪一台計算機的適當授權。換言之,除非有用戶ID和口令,否則便無法傳送檔案。這種情況違背了Internet的開放性,Internet上的FTP主機何止千 萬,不可能要求每個用戶在每一台主機上都擁有帳號。因此就衍生出了匿名FTP。