FTP是文件传输协议(File Transfer Protocal)的简写,主要完成与远程计算机的文件传输。FTP采用客户/服务器模式,客户机与服务器之间利用TCP建立连接,客户可以从服务器上下载文件,也可以把本地文件上传至服务器。
在实际生活中,很多文件(尤其是大文件)需要通过FTP进行下载,所以熟练掌握一些基本的FTP使用方法是很有必要的。
1.使用FTP下载上传文件
1.1 建立FTP连接
1
2
3
|
#ftp domain.com
ftp 192.168.0.1
ftp ftp.ustclug.org
|
将示例的IP地址或者域名替换为你需要的
1.2 输入用户名以及密码
大多数FTP连接需要用户名以及密码
1
2
3
4
5
6
|
Name: anonymous
Password:
## 登录成功
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
|
1.3 查看文件
1
2
3
4
|
# 显示当前目录
ls
# 更换目录
cd directory
|
1.4 上传与下载文件
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
# 设置本地存放的文件夹
lcd /home/user/yourdirectoryname
# 下载文件
get file
# 下载文件夹
get -r someDirectory
# 下载多个文件
mget *.xls
# 上传文件
put file
# 上传文件夹
put -r localDirectory
# 上传多个文件
mput *.xls
|
1.5 关闭连接
2. SFTP
全名SSH SECURE FILE TRANSFER PROTOCOL
2.1 连接
1
2
3
4
5
6
7
8
|
# 测试能否连接SSH
ssh sammy@your_server_ip_or_remote_hostname
# 成功的话
exit
# SFTP连接
sftp sammy@your_server_ip_or_remote_hostname
# 指定端口
sftp -oPort=custom_port sammy@your_server_ip_or_remote_hostname
|
常用的命令整理如下:
Command |
Function |
ascii |
设定以ASCII方式传送文件(缺省值) |
bell |
每完成一次文件传送,报警提示. |
binary |
设定以二进制方式传送文件. |
bye |
终止主机FTP进程,并退出FTP管理方式. |
case |
当为ON时,用MGET命令拷贝的文件名到本地机器中,全部转换为小写字母. |
cd |
同UNIX的CD命令. |
cdup |
返回上一级目录. |
chmod |
改变远端主机的文件权限. |
close |
终止远端的FTP进程,返回到FTP命令状态, 所有的宏定义都被删除. |
delete |
删除远端主机中的文件. |
dir [remote-directory] [local-file] |
列出当前远端主机目录中的文件.如果有本地文件,就将结果写至本地文件. |
get [remote-file] [local-file] |
从远端主机中传送至本地主机中. |
help [command] |
输出命令的解释. |
lcd |
改变当前本地主机的工作目录,如果缺省,就转到当前用户的HOME目录. |
ls [remote-directory] [local-file] |
同DIR. |
macdef |
定义宏命令. |
mdelete [remote-files] |
删除一批文件. |
mget [remote-files] |
从远端主机接收一批文件至本地主机. |
mkdir directory-name |
在远端主机中建立目录. |
mput local-files |
将本地主机中一批文件传送至远端主机. |
open host [port] |
重新建立一个新的连接. |
prompt |
交互提示模式. |
put local-file [remote-file] |
将本地一个文件传送至远端主机中. |
pwd |
列出当前远端主机目录. |
quit |
同BYE. |
recv remote-file [local-file] |
同GET. |
rename [from] [to] |
改变远端主机中的文件名. |
rmdir directory-name |
删除远端主机中的目录. |
send local-file [remote-file] |
同PUT. |
status |
显示当前FTP的状态. |
system |
显示远端主机系统类型. |
user user-name [password] [account] |
重新以别的用户名登录远端主机. |
? [command] |
同HELP. [command]指定需要帮助的命令名称。如果没有指定 command,ftp 将显示全部命令的列表。 |
! |
从 ftp 子系统退出到外壳。 |
3.使用FTP软件
1
|
sudo yum install filezilla
|
直接输入域名,密码等 进行连接以及其它操作即可
4. 搭建FTP服务器
python 一行代码http服务器:
1
|
python -m SimpleHTTPServer 8000
|
ftp服务器:
1
|
python -m pyftpdlib -i localhost -p 8021 -d /home/someone
|
参考
- How to use the Linux ftp command to up- and download files on the shell https://www.howtoforge.com/tutorial/how-to-use-ftp-on-the-linux-shell/
- How to Set up an FTP Server in Ubuntu Linux https://www.wikihow.com/Set-up-an-FTP-Server-in-Ubuntu-Linux
- How To Use SFTP to Securely Transfer Files with a Remote Server https://www.digitalocean.com/community/tutorials/how-to-use-sftp-to-securely-transfer-files-with-a-remote-server
- Use SFTP to transfer files https://kb.iu.edu/d/akqg
- How to Install and Configure vsftpd on CentOS 7 https://www.liquidweb.com/kb/how-to-install-and-configure-vsftpd-on-centos-7/
- ftp命令 http://man.linuxde.net/ftp命令