Linux文件傳輸FTP詳解

ftp命令用來設置文件系統相關功能。ftp服務器在網上較爲常見,Linux ftp命令的功能是用命令的方式來控制在本地機和遠程機之間傳送文件,這裏詳細介紹Linux ftp命令的一些常用的命令,相信掌握了這些使用Linux進行ftp操做將會很是容易。html

語法

ftp(選項)(參數)

選項

-d:詳細顯示指令執行過程,便於排錯或分析程序執行的狀況;
-i:關閉互動模式,不詢問任何問題;
-g:關閉本地主機文件名稱支持特殊字符的擴充特性;
-n:不使用自動登陸;
-v:顯示指令執行過程。

參數

主機:指定要鏈接的FTP服務器的主機名或ip地址。linux

實例

FTP>ascii: 設定以ASCII方式傳送文件(缺省值)
FTP>bell: 每完成一次文件傳送,報警提示.
FTP>binary: 設定以二進制方式傳送文件.
FTP>bye: 終止主機FTP進程,並退出FTP管理方式.
FTP>case: 當爲ON時,用MGET命令拷貝的文件名到本地機器中,所有轉換爲小寫字母.
FTP>cd: 同UNIX的CD命令.
FTP>cdup: 返回上一級目錄.
FTP>chmod: 改變遠端主機的文件權限.
FTP>close: 終止遠端的FTP進程,返回到FTP命令狀態, 全部的宏定義都被刪除.
FTP>delete: 刪除遠端主機中的文件.
FTP>dir [remote-directory] [local-file] 列出當前遠端主機目錄中的文件.若是有本地文件,就將結果寫至本地文件.
FTP>get [remote-file] [local-file] 從遠端主機中傳送至本地主機中.
FTP>help [command] 輸出命令的解釋.
FTP>lcd: 改變當前本地主機的工做目錄,若是缺省,就轉到當前用戶的HOME目錄.
FTP>ls [remote-directory] [local-file] 同DIR.
FTP>macdef: 定義宏命令.
FTP>mdelete [remote-files] 刪除一批文件.
FTP>mget [remote-files] 從遠端主機接收一批文件至本地主機.
FTP>mkdir directory-name 在遠端主機中創建目錄.
FTP>mput local-files 將本地主機中一批文件傳送至遠端主機.
FTP>open host [port] 從新創建一個新的鏈接.
FTP>prompt: 交互提示模式.
FTP>put local-file [remote-file] 將本地一個文件傳送至遠端主機中.
FTP>pwd: 列出當前遠端主機目錄.
FTP>quit: 同BYE.
FTP>recv remote-file [local-file] 同GET.
FTP>rename [from] [to] 改變遠端主機中的文件名.
FTP>rmdir directory-name 刪除遠端主機中的目錄.
FTP>send local-file [remote-file] 同PUT.
FTP>status: 顯示當前FTP的狀態.
FTP>system: 顯示遠端主機系統類型.
FTP>user user-name [password] [account] 從新以別的用戶名登陸遠端主機.
FTP>? [command]: 同HELP. [command]指定須要幫助的命令名稱。若是沒有指定 command,ftp 將顯示所有命令的列表。
FTP>! 從 ftp 子系統退出到外殼。

詳解:shell

1. 鏈接ftp服務器

格式:ftp [hostname| ip-address]
a)在linux命令行下輸入:服務器

ftp 192.168.1.1

b)服務器詢問你用戶名和密碼,分別輸入用戶名和相應密碼,待認證經過便可。app

2. 下載文件ui

下載文件一般用get和mget這兩條命令。
a) get 
格式:get [remote-file] [local-file]
將文件從遠端主機中傳送至本地主機中。
如要獲取遠程服務器上/usr/your/1.htm,則spa

ftp> get /usr/your/1.htm 1.htm (回車)


b) mget      
格式:mget [remote-files]
從遠端主機接收一批文件至本地主機。
如要獲取服務器上/usr/your/下的全部文件,則操作系統

ftp> cd /usr/your/
ftp> mget *.* (回車)


此時每下載一個文件,都會有提示。若是要除掉提示,則在mget *.* 命令前先執行:prompt off.net

注意:文件都下載到了linux主機的當前目錄下。好比,在 /usr/my下運行的ftp命令,則文件都下載到了/usr/my下。命令行

3.上傳文件

a) put
格式:put local-file [remote-file]
將本地一個文件傳送至遠端主機中。
如要把本地的1.htm傳送到遠端主機/usr/your,並更名爲2.htm

ftp> put 1.htm /usr/your/2.htm (回車)


b) mput
格式:mput local-files
將本地主機中一批文件傳送至遠端主機。
如要把本地當前目錄下全部html文件上傳到服務器/usr/your/ 下

ftp> cd /usr/your (回車)
ftp> mput *.htm (回車)


注意:上傳文件都來自於主機的當前目錄下。好比,在 /usr/my下運行的ftp命令,則只有在/usr/my下的文件linux纔會上傳到服務器/usr/your 下。

4. 斷開鏈接
bye:中斷與服務器的鏈接。

ftp> bye (回車)
 

 命令介紹:

1.FTP> ! 從 ftp子系統退出到外殼。
2.FTP> ? 顯示 ftp命令說明。? 與 help相同。
  格式:? [command]
  說明:[command]指定須要幫助的命令名稱。若是沒有指定 command,ftp將顯示所有命令的列表。
3.FTP> append 使用當前文件類型設置將本地文件附加到遠程計算機上的文件。
  格式:append local-file [remote-file]
  說明:local-file 指定要添加的本地文件。
  remote-file 指定要添加 local-file的遠程計算機上的文件。若是省略了 remote-file,本地文件名將被用做遠程文件名。
4.FTP> ascii 將文件傳送類型設置爲默認的 ASCII。
  說明:FTP 支持兩種文件傳送類型,ASCII碼和二進制圖像。在傳送文本文件時應該使用ASCII。
5.FTP> bell 切換響鈴以在每一個文件傳送命令完成後響鈴。默認狀況下,鈴聲是關閉的。
6.FTP> binary(或bi)將文件傳送類型設置爲二進制。
7.FTP> bye(或by)結束與遠程計算機的 FTP會話並退出 ftp。
8.FTP> cd 更改遠程計算機上的工做目錄。
  格式:cd remote-directory
  說明:remote-directory 指定要更改的遠程計算機上的目錄。
9.FTP> close 結束與遠程服務器的 FTP會話並返回命令解釋程序。
  FTP> debug 切換調試。當調試打開時,發送到遠程計算機的每一個命令都打印,前面是字符串「>」。默認狀況下,調試是關閉的。
10.FTP> delete 刪除遠程計算機上的文件。
  格式:delete remote-file
  說明:remote-file 指定要刪除的文件。
11.FTP> dir 顯示遠程目錄文件和子目錄列表。
  格式:dir [remote-directory] [local-file]
  說明:remote-directory 指定要查看其列表的目錄。若是沒有指定目錄,將使用遠程計算機中的當前工做目錄。Local-file指定要存儲列表的本地文件。若是沒有指定,輸出將顯示在屏幕上。
12.FTP> disconnect從遠程計算機斷開,保留 ftp 提示。
13.FTP> get 使用當前文件轉換類型將遠程文件複製到本地計算機。
  格式:get remote-file [local-file]
  說明:remote-file 指定要複製的遠程文件。
  Local-file 指定要在本地計算機上使用的名稱。若是沒有指定,文件將命名爲 remote-file。
14.FTP >glob 切換文件名組合。組合容許在內部文件或路徑名中使用通配符(*和?)。默認狀況下,組合是打開的。
15.FTP >hash切換已傳輸的每一個數據塊的數字簽名 (#) 打印。數據塊的大小是2048字節。默認狀況下,散列符號打印是關閉的。
16.FTP >help顯示 ftp 命令說明。
  格式:help [command]
  說明:command 指定須要有關說明的命令的名稱。若是沒有指定 command,ftp將顯示所有命令的列表。
17.FTP >lcd 更改本地計算機上的工做目錄。默認狀況下,工做目錄是啓動 ftp的目錄。
  格式:lcd [directory]
  說明:directory 指定要更改的本地計算機上的目錄。若是沒有指定directory,將顯示本地計算機中當前的工做目錄。
18.FTP >literal 將參數逐字發送到遠程 FTP服務器。將返回單個的 FTP 回覆代碼。
  格式:literal argument [ ...]
  說明:argument 指定要發送到 FTP服務器的參數。
19.FTP >ls 顯示遠程目錄文件和子目錄的縮寫列表。
  格式:ls [remote-directory] [local-file]
  說明:remote-directory 指定要查看其列表的目錄。若是沒有指定目錄,將使用遠程計算機中的當前工做目錄。 local-file指定要存儲列表的本地文件。若是沒有指定,輸出將顯示在屏幕上。
20.FTP >mdelete 刪除遠程計算機上的文件。
  格式:mdelete remote-files [ ...]
  說明:remote-files 指定要刪除的遠程文件。
21.FTP >mdir顯示遠程目錄文件和子目錄列表。可使用 mdir 指定多個文件。
  格式:mdir remote-files [ ...] local-file
  說明:remote-files 指定要查看列表的目錄。必須指定 remote-files。請鍵入 -使用遠程計算機上的當前工做目錄。
  local-file 指定要還原列表的本地文件。請鍵入-在屏幕上顯示列表。
22.FTP >mget 使用當前文件傳送類型將遠程文件複製到本地計算機。
  格式:mget remote-files [ ...]
  說明:remote-files 指定要複製到本地計算機的遠程文件。
23.FTP >mkdir 建立遠程目錄。
  格式:mkdir directory
  說明:directory 指定新的遠程目錄的名稱。
24.FTP >mls 顯示遠程目錄文件和子目錄的縮寫列表。
  格式:mls remote-files [ ...] local-file
  說明:remote-files 指定要查看列表的文件。必須指定 remote-files;
  請鍵入- 使用遠程計算機上的當前工做目錄。
  local-file 指定要存儲列表的本地文件。請鍵入 -以在屏幕上顯示列表。
25.FTP >mput 使用當前文件傳送類型將本地文件複製到遠程計算機上。
  格式:mput local-files [ ...]
  說明:local-files 指定要複製到遠程計算機的本地文件
26.FTP >open 與指定的 FTP服務器鏈接。
  格式:open computer [port]
  說明:computer 指定要鏈接的遠程計算機。能夠經過 IP地址或計算機名稱指定計算機(DNS 或主機文件必須可用)。若是自動登陸打開(默認),ftp還將嘗試自動將用戶登陸到 FTP 服務器port指定用來聯繫 FTP 服務器的端口號。
27.FTP >prompt 切換提示。若是關閉提示時 mget及 mput 傳送全部文件,Ftp在多文件傳送過程當中將提示容許您有選擇地檢索或存儲文件。默認狀況下,提示是
  打開的。
28.FTP >put 使用當前文件傳送類型將本地文件複製到遠程計算機上。
  格式:put local-file [remote-file]
  說明:local-file 指定要複製的本地文件。
  remote-file 指定要在遠程計算機上使用的名稱。若是沒有指定,文件將命名爲 local-file。
29.FTP >pwd 顯示遠程計算機上的當前目錄。
30.FTP >quit 結束與遠程計算機的 FTP 會話並退出 ftp。
31.FTP >quote 將參數逐字發送到遠程 FTP服務器。將返回單個的 FTP 回覆代碼。
  Quote 與 literal相同。
  格式:quote argument [ ...]
  說明:argument 指定要發送到 FTP服務器的參數。
32.FTP >recv使用當前文件傳送類型將遠程文件複製到本地計算機。Recv 與 get相同。
  格式:recv remote-file [local-file]
  說明:remote-file 指定要複製的遠程文件。
  local-file 指定要在本地計算機上使用的名稱。若是沒有指定,文件將命名爲 remote-file。
33.FTP >remotehelp顯示遠程命令幫助。
  格式:remotehelp [command]
  說明:command 指定須要幫助的命令的名稱。若是沒有指定 command,ftp將顯示所有遠程命令的列表。
34.FTP >rename重命名遠程文件。
  格式:rename filename newfilename
  說明:filename 指定要重命名的文件。 newfilename指定新的文件名。
35.FTP >rmdir 刪除遠程目錄。
  格式:rmdir directory
  說明:directory 指定要刪除的遠程目錄的名稱。
36.FTP >send 使用當前文件傳送類型將本地文件複製到遠程計算機上。Send與put 相同。
  格式:send local-file [remote-file]
  說明:local-file 指定要複製的本地文件。 remote-file指定要在遠程計算機上使用的名稱。若是沒有指定,文件將命名爲 local-file。
37.FTP >status 顯示 FTP 鏈接和切換的當前狀態。
38.FTP >trace 切換數據包跟蹤。Trace在運行 ftp 命令時顯示每一個數據包的路由。
39.FTP >type 設置或顯示文件傳送類型。
  格式:type [type-name]
  說明:type-name 指定文件傳送類型。默認設置爲 ascii。若是沒有指定type-name,將顯示當前的類型。
40.FTP >user 指定遠程計算機的用戶。
  格式:user username [password] [account]
  說明:user-name 指定登陸到遠程計算機所使用的用戶名。password指定 user-name 的密碼。若是沒有指定,但必須指定,ftp會提示輸入密碼。
  account 指定登陸到遠程計算機所使用的賬戶。若是沒有指定account,可是須要指定,ftp會提示您輸入賬戶。
41.FTP >verbose 切換 verbose模式。若是打開,將顯示全部 ftp 響應。在文件傳送完成後,將同時顯示與傳送效率有關的統計信息。默認狀況下,verbose是打開的。

附錄:ftp命令表

FTP採用客戶端/服務器模型,客戶端和服務器使用TCP創建鏈接。在服務器端,FTP有兩個預分配的的端口號,分別爲20和21.其中,端口20用於發送和接受FTP數據(ASCII碼或二進制文件),該數據端口只在傳輸數據是打開,並在傳輸結束時關閉。端口21用於發送和接受FTP的控制信息,FTP服務器經過偵聽這個端口來判斷是否有ftp客戶端的鏈接請求,FTP會話創建後,端口21的鏈接在會話期間始終保持打開狀態。

在客戶端,當發出請求時動態分配端口號,選擇範圍爲1024~65535.當一個FTP會話開始後,客戶端程序打開一個控制端口(如1038),該端鏈接到服務器上的21端口,接受和發送控制信命令;須要傳輸數據時,客戶端再打開第二個端口(如1039),鏈接到服務器上的20端口。每當開始傳輸文件時,客戶端程序會打開一個新的數據端口,在文件傳輸完畢後,再自動釋放該端口。

該命令的語法格式以下所示:

ftp [-v] [-d] [–i] [-n] [-g] [-k realm] [-x] [-u] [host]

ftp命令主要選項說明

 選項  說明
 -d     啓動調試模式
 -u     關閉自動認證
 -e     不記錄歷史指令
 -i     關閉交互模式
 -x     在成功認證以後,協商密鑰
 -n     關閉自動登陸功能
 -p     傳輸文件模式爲被動模式
 -v     程序運行時,顯示詳細的處理信息
 -k realm     使用Kerberos v4認證時,從realm中獲得信息
 host     FTP服務器的主機名/IP地址

在客戶端訪問FTP時,若是沒有在命令行給出服務器的主機名或IP,則客戶端將出現「ftp>」提示符,等待用戶輸入ftp內部命令
常見ftp內部命令及其說明

 內部命令  說明

ls     顯示服務器上的目錄
get     從服務器下載指定文件到客戶端
put     從客戶端傳送指定文件到服務器
open     鏈接ftp服務器
quit     斷開鏈接並退出ftp服務器
cd directory     改變服務器的當前目錄爲directory
lcd directory     改變本地的當前目錄爲directory
bye     退出ftp命令狀態
ascii     設置文件傳輸方式爲ASCII模式
binary     設置文件傳輸方式爲二進制模式
!     執行本地主機命令
cd     切換遠端ftp服務器上的目錄
cdup     上一層目錄
close     在不結束ftp進程的狀況下,關閉與ftp服務器的鏈接
delete     刪除遠端ftp服務器上的文件
get     下載
hash     顯示#表示下載進度
mdelete     刪除文件,模糊匹配
mget     下載文件,模糊匹配
mput     上傳文件,模糊匹配
mkdir     在遠端ftp服務器上,創建文件夾
newer     下載時,檢測是否是新文件
prompt     關閉交互模式
put     上傳
pwd     顯示當前目錄

 

ftp使用的內部命令以下(中括號表示可選項):

1.![cmd[args]]:在本地機中執行交互shell,exit回到ftp環境,如:!ls*.zip.
2.$ macro-ame[args]:執行宏定義macro-name.
3.account[password]:提供登陸遠程系統成功後訪問系統資源所需的補充口令。
4.append local-file[remote-file]:將本地文件追加到遠程系統主機,若未指定遠程系統文件名,則使用本地文件名。
5.ascii:使用ascii類型傳輸方式。
6.bell:每一個命令執行完畢後計算機響鈴一次。
7.bin:使用二進制文件傳輸方式。
8.bye:退出ftp會話過程。
9.case:在使用mget時,將遠程主機文件名中的大寫轉爲小寫字母。
10.cd remote-dir:進入遠程主機目錄。
11.cdup:進入遠程主機目錄的父目錄。
12.chmod mode file-name:將遠程主機文件file-name的存取方式設置爲mode,如:chmod 777 a.out。
13.close:中斷與遠程服務器的ftp會話(與open對應)。
14.cr:使用asscii方式傳輸文件時,將回車換行轉換爲回行。
15.delete remote-file:刪除遠程主機文件。
16.debug[debug-value]:設置調試方式,顯示發送至遠程主機的每條命令,如:deb up 3,若設爲0,表示取消debug。
17.dir[remote-dir][local-file]:顯示遠程主機目錄,並將結果存入本地文件local-file。
18.disconnection:同close。
19.form format:將文件傳輸方式設置爲format,缺省爲file方式。
20.get remote-file[local-file]:將遠程主機的文件remote-file傳至本地硬盤的local-file。
21.glob:設置mdelete,mget,mput的文件名擴展,缺省時不擴展文件名,同命令行的-g參數。
22.hash:每傳輸1024字節,顯示一個hash符號(#)。
23.help[cmd]:顯示ftp內部命令cmd的幫助信息,如:help get。
24.idle[seconds]:將遠程服務器的休眠計時器設爲[seconds]秒。
25.image:設置二進制傳輸方式(同binary)。
26.lcd[dir]:將本地工做目錄切換至dir。
27.ls[remote-dir][local-file]:顯示遠程目錄remote-dir,並存入本地文件local-file。
28.macdef macro-name:定義一個宏,遇到macdef下的空行時,宏定義結束。
29.mdelete[remote-file]:刪除遠程主機文件。
30.mdir remote-files local-file:與dir相似,但可指定多個遠程文件,如:mdir *.o.*.zipoutfile
31.mget remote-files:傳輸多個遠程文件。
32.mkdir dir-name:在遠程主機中建一目錄。
33.mls remote-file local-file:同nlist,但可指定多個文件名。
34.mode[modename]:將文件傳輸方式設置爲modename,缺省爲stream方式。
35.modtime file-name:顯示遠程主機文件的最後修改時間。
36.mput local-file:將多個文件傳輸至遠程主機。
37.newer file-name:若是遠程機中file-name的修改時間比本地硬盤同名文件的時間更近,則重傳該文件。
38.nlist[remote-dir][local-file]:顯示遠程主機目錄的文件清單,並存入本地硬盤的local-file。
39.nmap[inpattern outpattern]:設置文件名映射機制,使得文件傳輸時,文件中的某些字符相互轉換,如:nmap $1.$2.$3[$1,$2].[$2,$3],則傳輸文件a1.a2.a3時,文件名變爲a1,a2。該命令特別適用於遠程主機爲非UNIX機的狀況。
40.ntrans[inchars[outchars]]:設置文件名字符的翻譯機制,如ntrans 1R,則文件名LLL將變爲RRR。
41.open host[port]:創建指定ftp服務器鏈接,可指定鏈接端口。
42.passive:進入被動傳輸方式。
43.prompt:設置多個文件傳輸時的交互提示。
44.proxy ftp-cmd:在次要控制鏈接中,執行一條ftp命令,該命令容許鏈接兩個ftp服務器,以在兩個服務器間傳輸文件。第一條ftp命令必須爲open,以首先創建兩個服務器間的鏈接。
45.put local-file[remote-file]:將本地文件local-file傳送至遠程主機。
46.pwd:顯示遠程主機的當前工做目錄。
47.quit:同bye,退出ftp會話。
48.quote arg1,arg2…:將參數逐字發至遠程ftp服務器,如:quote syst.
49.recv remote-file[local-file]:同get。
50.reget remote-file[local-file]:相似於get,但若local-file存在,則從上次傳輸中斷處續傳。
51.rhelp[cmd-name]:請求得到遠程主機的幫助。
52.rstatus[file-name]:若未指定文件名,則顯示遠程主機的狀態,不然顯示文件狀態。
53.rename[from][to]:更改遠程主機文件名。
54.reset:清除回答隊列。
55.restart marker:從指定的標誌marker處,從新開始get或put,如:restart 13056.rmdir dir-name:刪除遠程主機目錄。
57.runique:設置文件名惟一性存儲,若文件存在,則在原文件後加後綴..1,.2等。
58.send local-file[remote-file]:同put。
59.sendport:設置PORT命令的使用。
60.site arg1,arg2…:將參數做爲SITE命令逐字發送至遠程ftp主機。
61.size file-name:顯示遠程主機文件大小,如:site idle 720062.status:顯示當前ftp狀態。
63.struct[struct-name]:將文件傳輸結構設置爲struct-name,缺省時使用stream結構。
64.sunique:將遠程主機文件名存儲設置爲惟一(與runique對應)。
65.system:顯示遠程主機的操做系統類型。
66.tenex:將文件傳輸類型設置爲TENEX機的所需的類型。
67.tick:設置傳輸時的字節計數器。
68.trace:設置包跟蹤。
69.type[type-name]:設置文件傳輸類型爲type-name,缺省爲ascii,如:type binary,設置二進制傳輸方式。
70.umask[newmask]:將遠程服務器的缺省umask設置爲newmask,如:umask 371.user user-name[password][account]:向遠程主機代表本身的身份,須要口令時,必須輸入口令,如:user anonymous my@email。
72.verbose:同命令行的-v參數,即設置詳盡報告方式,ftp服務器的全部響應都將顯示給用戶,缺省爲on.
73.?[cmd]:同help。

附表:

ascii

爲文本文件設置傳輸方式爲ascii

bell

命令完成時響鈴

binary 

設置傳輸方式爲二進制,這是缺省設置

bye 

終止ftp會話,並退出

cd dir_name

切換遠程主機上目錄

cdup

切換遠程主機上目錄至上一級目錄

close

終止到遠程主機的ftp會話

delete file_name

刪除遠程主機中的文件

dir 

顯示遠程主機上目錄列表

get file_name

下載一個文件

hash 

每傳輸必定數量數據打印`#'

lcd dir_name

切換本地工做目錄

ls 

列表遠程主機目錄中的信息

mdelete file_names

刪除多個文件

mget file_names

下載多個文件

mkdir dir_name

在遠程主機上建立目錄

mput file_names

上傳多個文件

open site_name

鏈接到遠程tftp

prompt

設置多個文件傳輸時的交互提示

put file_name

上傳一個文件

pwd

顯示遠程主機當前工做目錄

quit 

終止ftp會話並退出

rename old_name new_name

重命名文件

rmdir dir_name

刪除遠程主機上的某個目錄

size file_name

顯示遠程主機上某個文件的大小

status 

顯示當前狀態

system

顯示遠程主機操做系統類型

tenex 

將文件傳輸類型設置爲tenex機所需的類型

user

向遠程主機發送用戶信息(登陸信息)

verbose 

開關verbose方式,遠程主機全部響應都顯示給客戶

 
參考文章:
https://blog.csdn.net/yexiangCSDN/article/details/80988355
https://blog.csdn.net/sandy9919/article/details/81334064
相關文章
相關標籤/搜索