一.怎么搭建FTP服務:
第一步>>更新庫
linuxidc@linuxidc:~$ sudo apt-get update
第二步>>采用如下命令安裝VSFTPD的包
linuxidc@linuxidc:~$ sudo apt-get install vsftpd
第三步>>安裝完成后打開 /etc/vsftpd.conf 文件,按如下所述修改。
取消如下行的注釋(行號為29和33)
write_enable=YES
local_umask=022
>> 取消如下行的注釋(行號120)來阻止除了用戶文件夾意外的文件夾。
chroot_local_user=YES
在文件最后增加如下一行:
allow_writeable_chroot=YES
>>添加如下行開啟消極模式
pasv_enable=Yes
pasv_min_port=40000
pasv_max_port=40100
第四步>>用如下命令重啟vsftpd服務
linuxidc@linuxidc:~$ sudo service vsftpd restart
第五步>>現在ftp服務器正在監聽21端口。用如下命令創建用戶。用 /usr/sbin/nologin 腳本來阻止ftp用戶訪問bash腳本。
linuxidc@linuxidc:~$ sudo useradd -m john -s /usr/sbin/nologin
linuxidc@linuxidc:~$ sudo passwd john
第六步>>開啟nologin腳本的開機訪問。打開 /etc/shells 并把如下行添加進去。
/usr/sbin/nologin
二.怎樣通過FTP進行兩臺Linux機器間文件的互傳(Linux主機和ARM開發板通信是一樣的):
1、Ubuntu下查看防火墻狀態,sudo ufw status,如狀態為活動,則關閉ubuntu的防火墻 ufw disable;
2.在Ubuntu中使用命令
ftp 10.13.106.31(目標主機的IP地址)
輸入用戶名root(可以是自己主機內的任意一名用戶)
輸入該用戶對應的密碼
狀態如下代表成功
<code class="hljs livecodeserver has-numbering">Name (<span class="hljs-number">192.168</span><span class="hljs-number">.1</span><span class="hljs-number">.244</span>:wzl): plg <span class="hljs-number">331</span> Password required <span class="hljs-keyword">for</span> plg. Password: <span class="hljs-number">230</span> User plg logged <span class="hljs-operator">in</span>. Remote <span class="hljs-keyword">system</span> type is UNIX. Using binary mode <span class="hljs-built_in">to</span> transfer <span class="hljs-built_in">files</span>. <span class="hljs-keyword">ftp</span>> </code>3.如果是要接受文件,則使用lcd命令設置本機文件接收位置
ftp>lcd /home/plg
然后通過命令cd 找到對方Linux主機中想要接受的文件
ftp>cd /home/project/filename
最后通過get命令將文件接受到
get filename
4.如果是發送文件
首先使用lcd 命令進入要發送的文件所在位置
ftp>lcd /home/plg
然后使用cd命令進入對方Linux系統要接受文件的目錄下面
ftp>cd /home/project
最后通過put命令發送文件
put filename
三.最常用的命令有:
ls 列出遠程機的當前目錄
cd 在遠程機上改變工作目錄
lcd 在本地機上改變工作目錄
ascii 設置文件傳輸方式為ASCII模式
binary 設置文件傳輸方式為二進制模式
close 終止當前的ftp會話
hash 每次傳輸完數據緩沖區中的數據后就顯示一個#號
get(mget) 從遠程機傳送指定文件到本地機
put(mput) 從本地機傳送指定文件到遠程機
open 連接遠程ftp站點
斷開與遠程機的連接并退出ftp
? 顯示本地幫助信息
! 轉到Shell中
下面簡單將ftp常用命令作一簡介。
啟動ftp會話
open命令用于打開一個與遠程主機的會話。該命令的一般格式是:
open 主機名/IP
如果在ftp 會話期間要與一個以上的站點連接,通常只用不帶參數的ftp命令。如果在會話期間只想與一臺計算機連接,那么在命令行上指定遠程主機名或IP地址作為ftp命令的參數。
終止ftp會話
close、disconnect、和bye命令用于終止與遠程機的會話。close和disronnect命令關閉與遠程機的連接,但是使用戶留在本地計算機的ftp程序中。和bye命令都關閉用戶與遠程機的連接,然后退出用戶機上的ftp 程序。
改變目錄
“cd [目錄]”命令用于在ftp會話期間改變遠程機上的目錄,lcd命令改變本地目錄,使用戶能指定查找或放置本地文件的位置。
遠程目錄列表
ls命令列出遠程目錄的內容,就像使用一個交互shell中的ls命令一樣。ls命令的一般格式是:
ls [目錄] [本地文件]
如果指定了目錄作為參數,那么ls就列出該目錄的內容。如果給出一個本地文件的名字,那么這個目錄列表被放入本地機上您指定的這個文件中。
從遠程系統獲取文件
get和mget命令用于從遠程機上獲取文件。get命令的一般格式為:
get 文件名
您還可以給出本地文件名,這個文件名是這個要獲取的文件在您的本地機上創建時的文件名。如果您不給出一個本地文件名,那么就使用遠程文件原來的名字。
mget命令一次獲取多個遠程文件。mget命令的一般格式為:
mget 文件名列表
使用用空格分隔的或帶通配符的文件名列表來指定要獲取的文件,對其中的每個文件都要求用戶確認是否傳送。
向遠程系統發送文件
put和mput命令用于向遠程機發送文件。Put命令的一般格式為:
put 文件名
mput命令一次發送多個本地文件,mput命令的一般格式為:
mput 文件名列表
使用用空格分隔的或帶通配符的文件名列表來指定要發送的文件。對其中的每個文件都要求用戶確認是否發送。
改變文件傳輸模式
默認情況下,ftp按ASCII模式傳輸文件,用戶也可以指定其他模式。ascii和brinary命令的功能是設置傳輸的模式。用ASCII模式傳輸文件對純文本是非常好的,但為避免對二進制文件的破壞,用戶可以以二進制模式傳輸文件。
檢查傳輸狀態
傳輸大型文件時,可能會發現讓ftp提供關于傳輸情況的反饋信息是非常有用的。hash命令使ftp在每次傳輸完數據緩沖區中的數據后,就在屏幕上打印一個#字符。本命令在發送和接收文件時都可以使用。
ftp中的本地命令
當您使用ftp時,字符“!”用于向本地機上的命令shell傳送一個命令。如果用戶處在ftp會話中,需要shell做某些事,就很有用。例如用戶要建立一個目錄來保存接收到的文件。如果輸入!mkdir new_dir,那么Linux就在用戶當前的本地目錄中創建一個名為new_dir 的目錄。
這里Linux ftp命令就介紹到這里,應該足夠在Linux系統下使用ftp工具了。