首頁  >  文章  >  php教程  >  Linux之ftp指令使用

Linux之ftp指令使用

高洛峰
高洛峰原創
2016-12-20 09:24:431367瀏覽

分類

有關FTP(客戶端,伺服器搭建這裡不講)有很多,大體分為命令列和GUI圖形介面的軟體。

1,圖形介面的有

gftp

gnome下ftp客戶端

crossftp

基於Java的穩定ftp客戶端和同步工具。優良的中文/Unicode支援。

Kftpgrabber

KDE下ftp客戶端,支援編碼選擇。對中文支援較好

filezilla

對中文支援好

krusader

也可以透過瀏覽器輸入ftp://ip使用

如果有喜歡的可以透過apt-get或 apt

2,CLI(命令列)主要有ftp 和 lftp 

(1)ftp

1. 連接ftp伺服器

  ftp 10.18.34.115 

  b)伺服器詢問你使用者名稱和口令,分別輸入yint和對應密碼,待認證通過即可。

 

    或使用下面的格式 

   ftp - -i  -n  IP_ADDRESSESS 

    ftp -i -n 172.17.17.17

    user  PUB    123456

 

也可以自己寫個腳本自動登入。

 

cyq@cyq-desktop:~/桌面/shell$ cat ftp.sh

#!/bin/sh

ftp -i -n  172.17.17.17

user  PUB 123456

!

 

這樣就可以自動登入了。

 

  2. 下載檔案

  下載檔案通常用get和mget這兩個指令。

  a) get 

  格式:get [remote-file] [local-file]

  將檔案從遠端取得主機中傳送至本地主機中

  將檔案從遠端取得主機中使用主機。 ,則

  ftp> get /rose/1.bmp 1.bmp (回車)

  b) mget    〜＀ b) mget] 從遠端主機接收一批檔案至本機.

  如要取得伺服器上E:/rose/下的所有檔案,則

  ftp> cd /rose

  ftp> mget *.* 。例如,在 /root/yint下執行的ftp指令,則檔案都下載到了/root/yint下。

  3.上傳檔案

  a) put

  格式:put local-file [remote-file]

〜  將本地一個檔案只傳送到遠端的主機。端主機E:/rose,改名為333.bmp

  ftp> put 1.bmp /rose/333.bmp (回車)

  b)將本地主機接合為本地主機」中將主機〦鎀一批檔案傳送至遠端主機.

  如要把本地當前目錄下所有bmp檔案上傳到伺服器E:/rose 下

  ftp> cd /rose (回程車)

  注意:上傳檔案都來自於主機的目前目錄下。例如,在 /root/yint下執行的ftp指令,則只有在/root/yint下的檔案linux才會上傳到伺服器E:/rose 下。

  4. 斷開連線

  bye:中斷與伺服器的連線。

  ftp> bye (回車)

(2)lftp

在用lftp訪問國內一些ftp伺服器時,常看到的中文是亂碼,這是由於伺服器和本地編碼不一致造成的。

解決方法:

在主目錄下新建一個檔案~/.lftprc或~/.lftp/rc

例如我在終端輸入:

gedit ~/.lftprc  #在目前目錄下建立.lf

然後在彈出的對話框中輸入以下內容:

debug 3

set ftp:charset GBK

set file:charset UTF-8

ftp:charset UTF-8"

#alias gbk " set ftp:charset GBK"

 

上面的這幾行的意思是

如果對於經常使用不同編碼的 ftp server 的朋友,或經常使用不同的選項的,可以設定一些別名,這樣會方便很多。

例如:

我經常訪問 gbk 編碼的 ftp, 還有 utf8 編碼的,那麼我在 ~/.lftp 中這樣寫 

代碼:

-8

alias   utf8 set ftp:charset UTF-8; set file:charset UTF-8

 

那麼當我造訪一個 utf8 站點的時候,如果發現亂碼,只要在 lftp 的命令提示符號下方輸入 utf8 就可以將編碼調整正常。同理,如果訪問 gbk 的發現亂碼就輸入 gbk, 馬上正常。

 

下面講解使用lftp

1、登入ftp

程式碼:

lftp 用戶名:密碼@ftp位址:

也可以先不帶用戶名登錄,然後在介面介面下用login指令來用指定帳號登錄,密碼不顯示。

lftp user@site:port

例如:$ lftp test@172.17.17.17

 

      令(這裡輸入的口令是密碼,linux下密碼不顯示)

2、查看檔案與改變目錄

程式碼:

ls

cd cd 對應ftp目錄

 

在lf 中對應ftp目錄

 

lf在lf例如lcd,指的是local,就是在本機的操作,而對應的沒有這個l的,都是對ftp site的操作。還有就是要執行本地終端指令,也可以用前面帶一個!的方式。這樣,配合起來,終端,本地的操作都很放遍。

例如,查看ftp上所有的以mp3為副檔名的檔案:

程式碼:

find . -name "*.mp3"

 

程式碼:com

 

lcd 成功, 本地目錄=/home/cyq

 

lftp test@172.17.17.17:/> 

 

代碼:

mget -c *.pdf

 


把所有的pdf檔以允許斷點續傳的方式下載。 m代表multi

碼:

mirror aaa/

 

將aaa目錄整個的下載下來,子目錄也會自動複製

碼最多10個執行緒以允許斷點續傳的方式下載file.dat

可以透過設定pget:default-n的值而使用預設值。

 

4、上傳

同樣的put,mput,都是對檔案的操作,和下載類似。

程式碼:

mirror -R 本地目錄名稱

 

將本地目錄以迭代(包括子目錄)的方式反向上傳到ftp site。

 

5、模式設定。


代碼:

set ftp:charset gbk

 

遠端ftp site用gbk編碼,對應的要設定為utf8,只要替換gbk為utf8即可。

代碼:

set file:charset utf8

 

本地的charset設定為utf8,如果你是gbk,相應改掉。

 

代碼:

set ftp:passive-mode 1

 

使用被動模式登錄,有些site要求必須用被動模式或主動模式才能登入,這個開關就是設定這個的。 0代表不用被動模式。

 

6、書籤

其實命令行也可以有書籤,在lftp終端提示符下:

代碼:

bookmark add ustc

 

bookmark add ustc

 

起來。以後在shell終端下,直接

代碼:

lftp ustc

 

就可以自動填好用戶名,密碼,進入對應的目錄了。

 

代碼:

bookmark edit 

 

會呼叫編輯器手動修改書籤。當然,也可以看到,這個書籤其實就是簡單的文字檔。密碼,使用者名稱都可以看到。

 

7、設定檔 

/etc/lftp.conf 

一般,幾行我會加入幾行: 

引用:

set ftp:charset gbgets.58

 

這樣,就不用每次進入都要打指令了。其他的set 可以自己tab然後help 來看。 


 

下面是常用指令

ls 


顯示遠端檔案清單(ils 顯示本機檔案清單)。 # l 的意思是local ils比較特殊

cd 

切換遠端目錄(lcd 切換本地目錄)。 

get

下載遠端檔案。 

mget

下載遠端檔案(可以用萬用字元也就是 *)。 

pget

使用多個執行緒來下載遠端檔案, 預設為五個。 

mirror

下載/上傳(mirror -R)/同步 整個目錄。 

put

上傳檔案。 

mput

上傳多個檔案(支援通配符)。 

mv

行動遠端檔案(遠端檔案改名)。 

rm

刪除遠端檔案。 

參數-r,遞歸刪除資料夾 

mrm

刪除多個遠端檔案(支援通配符)。 

mkdir

建立遠端目錄。 

rmdir

刪除遠端目錄。 

pwd

顯示目前遠端所在目錄(lpwd 顯示本機目錄)。

du

計算遠端目錄的大小 

set net:limit-rate 10000,10000 

限制上傳下載各為10KB/s 

!

執行本地 shell的指令(由於lftp 沒有 lls, 故可用 !ls 來取代) 

lcd

切換本地目錄 

設定書籤。 

exit

退出ftp 

更多Linux之ftp指令使用相關文章請關注PHP中文網!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn