ftp 是 FTP 的客户端,用来访问 FTP 服务
#以 Debian Linux 为例
sudo apt install ftp
ftp [options] <host/domain> [port]
verbosedebug
prompt
globftp 允许用户匿名登录,也就是说,不需要密码,只需要在账号的位置输入 anonymous,口令留空,就可以登录,前提是服务器允许匿名登录
匿名用户登录后所在目录:/srv/ftp
开启匿名登录,需要修改 配置文件
ascii 模式:
用于传输文本文件的时候
使用 ascii 模式,传输过程中,会对源文件进行读取,并将文件中的字符格式进行转换,例如:会将的 Linux 的 * 转化为 Windows** 的 ***,保留文本文件中的换行,下载后的文本文件便于阅读,也可以传输二进制文件,但会把二进制文件中匹配的字符进行转换,导致文件损坏
binary 模式:
用于传输二进制文件的时候
使用 bin 模式,会将源文件以字节的形式,原封不动的传输,适用于所有文件,但可能文本文件中的换行就没有了,导致没有换行的效果,但现代编辑器非常成熟、强壮,会自动弥补这个问题
如果不确定自己使用什么传输模式,那么优先使用 binary 模式
正式进入 ftp 交互后,需要使用 ftp 交互命令,对 ftp 进行操作,例如,上传、下载文件,展示远程目录内容等
以下仅以 Windows(client)访问 Linux(server)为例
连接类:
open:连接到远程 FTP
服务器,语法:open <host>
close / disconnect:断开连接,但不退出 ftp 程序
bye / quit:断开与 FTP 服务器的连接并退出 ftp 程序
uesr:通过用户名登录服务器。
作用于本地计算机类:
!:临时进入本地模式,用来对本地进行操作
? / help:查看交互命令帮助
!dir:查看本地计算机目录列表
!cd: 查看本地计算机当前工作路径
lcd:更改本地计算机上的目录
作用于远程计算机类:
ls:列出远程服务器上的文件和目录
cd:更改远程服务器上的目录
pwd:查看远程计算机当前工作路径
delete:删除远程服务器上的单个文件,语法:delete <remote_file>,需要修改
配置文件
mdelete:删除远程服务器上的多个文件(可使用通配符),语法:mdelete <remote_file> [...],需要修改
配置文件
rename:重命名,语法:rename <remote_file / remote_directory>,需要修改
配置文件
mkdir:在远程服务器创建目录,语法:mkdir <remote_directory>,需要修改
配置文件
rmdir:删除远程服务器上的目录,语法:rmdir <remote_directory>,需要修改
配置文件
mdir:可列出多个目录列表信息后写入本地文件或输出到显示器上(结果包含文件文件权限,但包含所在路径),语法:mdir <remote_file> [...] <local_file>,不指定本地文件,用
-,语法:mdir <remote_file> [...] -
mls:可列出多个目录列表信息后写入本地文件或输出到显示器上(结果包含文件所在路径,但不包含文件权限),语法:mls <remote_file> [...] <local_file>,不指定本地文件,用
-,语法:mls <remote_file> [...] -
传输类:
get /
recv:从远程服务器下载文件到本地计算机,语法:get <remote_file>
put /
send:将本地文件上传到远程服务器,语法:put <local_file>
append:使用本地文件内容追加到远程文件末尾,语法:mget <local_file> <remote_file>
mget:下载多个文件,可使用通配符,语法:mget <remote_file>
mput:上传多个文件,可使用通配符,语法:mput <local_file>
查询与切换开关状态类:
status:查看当前 FTP 各种设置的状态
ascii:切换 ascii 模式(默认为 ascii 模式)
binary:切换 binary 模式
verbose:详细模式开关,默认为:开启详细模式,详细模式会显示所有 FTP 服务器响应的信息
bell:响铃开关,当一个文件完成传输时,计算机会发出 “嘀” 的响声
prompt:交互提示开关
glob:通配符开关,关闭后,mget,mput 等中的 “*” "?"
将不会解释为通配符
debug:调试开关,用于显示调试信息,解决使用问题
trace:比 debug 更详细
hash:显示上传、下载的进度
type:查询或设置文件传输模式 ascii 或 binary
不常用类,暂时深入没研究:
remotehelp:用来查看 FTP 服务端支持哪些指令
quote:暂时感觉是用来执行某些特殊指令,例如:切换主动/被动模式
#FTP #文件传输