linux系统自带的ftp客户端是进行远程文件传输的常用工具,通过命令行输入ftp相关指令可以完成服务器连接、文件管理、数据传输等一系列操作,下面先介绍基础的连接类命令。

基础连接与退出命令
这类命令用于建立或断开与ftp服务器的连接,是操作的第一步。
- ftp:启动ftp客户端并尝试连接指定服务器,语法为
ftp 服务器地址 [端口],默认端口是21。 - open:在已经启动的ftp客户端中连接新的服务器,语法为
open 服务器地址 [端口]。 - close:断开当前与ftp服务器的连接,但不退出ftp客户端。
- bye/quit:断开连接并退出ftp客户端,两个命令功能完全一致。
- user:重新输入用户名和密码登录,语法为
user 用户名 [密码],如果不输入密码会后续提示输入。
文件传输相关命令
文件上传和下载是ftp命令最核心的使用场景,以下是相关指令。
- get:从远程服务器下载单个文件到本地当前目录,语法为
get 远程文件名 [本地文件名],不指定本地文件名则使用原文件名。 - mget:批量下载远程文件,支持通配符,语法为
mget 远程文件模式,比如mget *.txt会下载所有txt文件。 - put:从本地上传单个文件到远程服务器当前目录,语法为
put 本地文件名 [远程文件名]。 - mput:批量上传本地文件,同样支持通配符,语法为
mput 本地文件模式。 - recv:和get命令功能完全一致,是get的别名。
- send:和put命令功能完全一致,是put的别名。
目录操作命令
这类命令用于管理远程和本地的目录路径,方便定位文件位置。
- pwd:查看远程服务器当前所在的工作目录。
- cd:切换远程服务器的当前工作目录,语法为
cd 远程目录路径。 - ls:列出远程服务器当前目录下的所有文件和子目录,支持添加参数,比如
ls -l显示详细信息。 - dir:和ls功能类似,输出格式更接近linux系统的ls -l结果,会显示文件权限、大小、修改时间等信息。
- mkdir:在远程服务器上创建新的目录,语法为
mkdir 目录名。 - rmdir:删除远程服务器上空的目录,语法为
rmdir 目录名。 - lcd:切换本地客户端的工作目录,语法为
lcd 本地目录路径,比如lcd /home/test切换到本地/home/test目录。 - lpwd:查看本地客户端当前的工作目录。
- lls:列出本地当前目录下的所有文件和子目录。
文件管理命令
用于操作远程服务器上的文件,包括删除、重命名等。
- delete:删除远程服务器上的单个文件,语法为
delete 远程文件名。 - mdelete:批量删除远程服务器上的文件,支持通配符,语法为
mdelete 文件模式。 - rename:重命名远程服务器上的文件或目录,语法为
rename 原名称 新名称。 - chmod:修改远程服务器上文件的权限,语法为
chmod 权限值 文件名,比如chmod 755 test.sh。
传输设置命令
这类命令用于调整文件传输的模式和参数,避免传输出错。
- ascii:设置传输模式为ASCII模式,适合传输文本类文件,比如txt、html、代码文件等。
- binary:设置传输模式为二进制模式,适合传输图片、压缩包、可执行文件等非文本文件,默认通常是二进制模式。
- hash:开启或关闭传输进度显示,开启后每传输1024字节会打印一个#号,方便查看大文件传输进度。
- prompt:开启或关闭批量操作的交互提示,开启后执行mget、mput、mdelete时会逐个询问是否操作,关闭后直接执行所有操作。
- passive:切换主动模式和被动模式,很多ftp服务器需要开启被动模式才能正常传输,输入该命令即可切换。
其他辅助命令
- help:查看所有ftp命令的列表,或者查看指定命令的帮助信息,语法为
help [命令名]。 - status:显示当前ftp连接的状态信息,包括传输模式、是否开启被动模式、本地和远程目录等。
- verbose:开启或关闭详细输出模式,开启后会显示更多服务器返回的信息。
- debug:开启或关闭调试模式,开启后会显示ftp客户端和服务器之间的所有交互命令和数据。
使用示例
以下是一个完整的ftp操作示例,演示连接服务器、切换目录、上传文件、下载文件的流程:
# 启动ftp客户端连接服务器 ftp 192.168.0.1 # 输入用户名和密码登录 # 切换到远程的upload目录 cd upload # 切换本地目录到/home/local_files lcd /home/local_files # 开启被动模式 passive # 设置二进制传输模式 binary # 上传本地的test.tar.gz文件 put test.tar.gz # 下载远程的config.ini文件到本地 get config.ini # 断开连接并退出 bye