ftp 是 File Transfer Program 的缩写,即文件传输程序。在 Linux 服务器上用来传输文件。本地和服务器之间,或是不同服务器之间都可以。
ftp 命令格式
ftp 命令的使用格式如下:
ftp [选项...] [主机地址]
可以看到,命令选项和主机地址都是可以省略的。如果提供主机地址,在命令开始执行时会尝试链接到主机。如果不提供主机地址,也可以在进入 ftp 控制台后再使用 open
内部命令连接到指定的主机地址。
上面说的到 ftp 控制台就是在执行 ftp 命令后进入的一个命令提示环境,它的显示样式如下:
zzxworld@debian:~$ ftp
ftp>
这时就可以在 ftp>
提示符后开始使用 ftp 的内部命令(也被称为子命令)来操作文件了。
ftp 命令示例
help
是第一个需要掌握的内部命令:
ftp> help
使用它可以列出有哪些可用的内部命令。在刚使用 ftp 命令的阶段,通过这个命令可以快速掌握 ftp 命令的相关功能。如果对某个内部命令的作用不熟悉,也可以通过这个命令来了解。比如想知道 open
命令是用过来做什么的:
ftp> help open
open connect to remote ftp
一看就明白了,是连接到远程 FTP 主机的。help
命令有一个缩写符号:?
,使用这个问号跟使用 help
命令是一样的。
在 ftp 控制台环境下使用命令和在系统环境下使用命令是类似的。举几个例子,比如要连接到指定的主机 192.168.0.100:
ftp> connect 192.168.0.100
查看连接后服务器端主机 ftp 目录下的文件:
ftp> ls
在服务器端创建目录:
ftp> mkdir test
切换服务器端的目录位置:
ftp> cd test
下载服务器端的文件到本地:
ftp> get test.txt
上传本地文件到服务器:
ftp> put test.txt
断开 ftp 链接:
ftp> disconnect
退出 ftp 控制台:
ftp> quit
可以看到,只要清楚有哪些可用的内部命令,基本就掌握了 ftp 的用法。下面总结了这些可用的命令名称和用途说明。
ftp 内部命令参考
命令名称 | 说明 |
---|---|
! [command [args]] |
在本地机器上启动一个交互的 shell。可以使用 command 和 args 来指定 shell 命令和参数。 |
$ macro-name [args] |
执行宏命令。宏命令使用 macdef 命令来定义。macro-name 表示宏命令名称。 |
account [passwd] |
为访问资源设置密码。 |
append local-file [remote-file] |
添加本地文件到服务器上。 |
ascii |
将当前文件传输方式设置为文本模式。 |
bell |
文件传送命令完成后用响铃提示。 |
binary |
将文件传输方式设置为二进制模式。 |
bye |
终止与服务器的连接并退出 ftp。 |
case |
调整服务器端文件名大小写转换规则。 |
cd remote-directory |
切换服务器端的目录位置。 |
cdup |
切换服务器端当前位置到上级目录。 |
chmod mode file-name |
修改服务器端指定文件的 mode 权限。 |
close |
终止与服务器的 FTP 连接。 |
cr |
切换文本传输模式下的回车换行转换规则。 |
delete remote-file |
删除服务器端指定的文件。 |
debug [debug-value] |
设置 debugging 状态,用以确定是否跟踪每条指令。 |
dir [remote-directory] [local-file] |
显示服务器端目录下的文件名。local-file 是可选的,如果指定了这个参数,将会把结果保存到本地指定的文件。 |
disconnect |
与 close 命令功能类似。 |
form format |
设置文件传输格式。 |
get remote-file [local-file] |
把服务器端的文件传输到本地。 |
glob |
设置文件名匹配规则。 |
hash |
设置是否显示数据传输进度。 |
help [command] |
显示命令列表或命令帮助。 |
idle [seconds] |
设置服务器端的最长空闲时间,单位为秒。在超过指定的空闲时间里没有任何操作,将自动断开与服务器端的连接。 |
lcd [directory] |
切换本地端的工作目录。 |
ls [remote-directory] [local-file] |
显示服务器端目录下的文件列表。 |
macdef macro-name |
定义一个宏命令。 |
mdelete [remote-files] |
删除服务器端指定的文件。 |
mdir remote-files local-file |
与 dir 命令相似, 但是允许匹配多个服务器端文件。 |
mget remote-files |
与 get 命令类似,但允许匹配多个服务器端文件。 |
mkdir directory-name |
在服务器端创建目录。 |
mls remote-files local-file |
和 nlist 命令相似,但是允许匹配多个服务器端文件, 而且 local-file 这个参数必须的,是用来保存输出结果的本地文件。 |
mode [mode-name] |
设置文件传输模式。 |
modtime file-name |
显示服务器端文件最后修改时间。 |
mput local-files |
与 put 命令类似,但允许匹配多个本地文件名。 |
newer file-name [local-file] |
比较服务器端文件和本地文件的修改时间。如果服务器端文件比本地文件新, 或本地文件不存在, 则从服务器端机器上传输此文件。 |
nlist [remote-directory] [local-file] |
显示服务器端指定目录下的文件列表。 |
nmap [inpattern outpattern] |
设置或取消文件名映射机制。 |
ntrans [inchars [outchars]] |
设置或取消文件名字符转换机制。| |
open host [port] |
连接到指定的 FTP 服务器。 |
prompt |
切换交互提示功能状态。 |
proxy ftp-command |
使用 FTP 副连接。使用这个命令可以同时连接到两个远端 ftp 服务器, 并在这两个服务器之间传送文件。| |
put local-file [remote-file] |
将本地文件传输到服务器端。 |
pwd |
显示服务器端当前路径。 |
quit |
与 bye 命令功能类似。| |
quote arg1 arg2 ... |
将指定的参数原样发送到服务器端。 |
recv remote-file [local-file] |
同 get 命令相似。 |
reget remote-file [local-file] |
和 get 命令相似, 但支持断点续传。 |
remotehelp [command-name] |
显示服务器端 FTP 服务程序的帮助信息。| |
remotestatus [file-name] |
显示服务器端机器或文件状态。 |
rename [from] [to] |
重命名服务器端文件。| |
reset |
清除应答队列。 |
restart marker |
从设置的 marker 标记处重新开始。 |
rmdir directory-name |
删除服务器端上的目录。| |
runique |
设置本地同名文件是否自动覆盖。| |
send local-file [remote-file] |
同 put 命令相似。 |
sendport |
设置是否使用 PORT 命令。 |
site arg1 arg2 ... |
将参数作为 SITE 命令原样传给服务器。| |
size file-name |
显示服务器端文件大小。| |
status |
显示 FTP 当前状态。| |
struct [struct-name] |
设置文件传输结构。 |
sunique |
设置是否覆盖服务器端同名文件。 |
system |
显示服务器端操作系统类型。 |
tenex |
设置文件传输方式为与 TENEX 机器通讯所需要的方式。| |
trace |
设置是否跟踪每个数据包。 |
type [type-name] |
设置或显示当前文件传送类型。 |
umask [newmask] |
设置或显示服务器端文件掩码。 |
user user-name [password] [account] |
使用指定用户名 [user-name] 登录 FTP 服务器。 |
verbose |
设置是否显示详细信息。 |
? [command] |
help 命令的缩写。 |
ftp 命令选项参考
选项名称 | 说明 |
---|---|
-p |
使用被动模式进行数据传输。当本地网络有防火墙导致外部主机不能连接进来时,使用此选项可以要求 ftp 服务器支持 PASV 命令。 |
-i |
在进行多个文件传输时关闭交互式确认提示。 |
-n |
关闭启动 ftp 时的自动登录功能。 |
-e |
关闭命令编辑和历史命令功能。 |
-g |
关闭文件名匹配功能. |
-v |
显示更详细的命令执行信息。 |
-d |
打开 debug 调试模式。 |