ftp介绍FTP 命令允许用户通过FTP(File Transfer Protocol)协议在本地计算机和远程服务器之间传输文件。
FTP 是一种在网络上交换文件的标准协议,是 ARPANet 的标准文件传输协议,ARPANet 网络就是现今 Internet 的前身。
使用 FTP 协议时,一方充当客户端,另一方充当服务器,客户端可以上传、下载、删除、重命名文件和目录,以及执行其他文件传输相关的操作。
语法ftp (选项) (参数)
选项-v:启用或禁用详细模式。在详细模式下,ftp命令会显示所有来自服务器的响应消息。默认情况下,该选项为开启状态。
ftp -v ftp.example.com-d:启用调试模式。该选项会显示所有FTP传输过程中发送和接收到的命令,有助于调试连接问题。
ftp -d ftp.example.com-n:禁止自动登录。默认情况下,ftp命令会在连接到远程服务器后尝试自动登录。使用该选项可以禁止该行为,通常与.netrc文件联合使用。
ftp -n ftp.example.com-g:禁用文件名通配符扩展。ftp命令默认会展开文件名中的通配符。使用该选项可以关闭这一行为。
ftp -g ftp.example.com-p:使用被动模式(PASV)进行数据连接。被动模式在客户端位于防火墙或NAT后面时非常有用。
ftp -p ftp.example.com⚠️ Windows 上使用 -s 选项指定script.txt脚本执行 ftp 命令。Linux 上可以使用重定向实现。
ftp -s:script.txt ftp.example.com # Windows
ftp -n ftp.example.com < script # Linux参数:主机:指定要连接的FTP服务器的主机名或ip地址。
目录操作命令描述cd更改当前工作目录到指定目录ls或dir列出当前目录下的内容pwd显示当前目录的绝对路径mkdir创建目录rmdir删除一个目录rename
ftp ftp.example.comftp 会启动交互式命令行
Connected to
220 (vsFTPd 3.*)
# 需要手动输入 anonymous
Name (192.168.10.10:root): anonymous
331 Please specify the password.
Password: # 匿名模式下直接回车
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.连接成功后进入交互式会话.
查看所有命令,使用 help 或 ?
ftp> help
# 或者
ftp> ?关闭 ftp 连接
bye
exit
quit
文件操作命令描述get
ftp> bell # 每完成一次文件传送,报警提示.
ftp> binary # 设定以二进制方式传送文件.
ftp> bye # 终止主机FTP进程,并退出FTP管理方式.
ftp> case # 当为ON时,用MGET命令拷贝的文件名到本地机器中,全部转换为小写字母.
ftp> cd # 同UNIX的CD命令.
ftp> cdup # 返回上一级目录.
ftp> chmod # 改变远端主机的文件权限.
ftp> close # 终止远端的FTP进程,返回到FTP命令状态, 所有的宏定义都被删除.
ftp> delete # 删除远端主机中的文件.
ftp> dir [remote-directory] [local-file] # 列出当前远端主机目录中的文件.如果有本地文件,就将结果写至本地文件.
ftp> get [remote-file] [local-file] # 从远端主机中传送至本地主机中.
ftp> help [command] # 输出命令的解释.
ftp> lcd # 改变当前本地主机的工作目录,如果缺省,就转到当前用户的HOME目录.
ftp> ls [remote-directory] [local-file] # 同DIR.
ftp> !ls # 查看本机文件
ftp> macdef # 定义宏命令.
ftp> mdelete [remote-files] # 删除一批文件.
ftp> mget [remote-files] # 从远端主机接收一批文件至本地主机.
ftp> mkdir directory-name # 在远端主机中建立目录.
ftp> mput local-files # 将本地主机中一批文件传送至远端主机.
ftp> open host [port] # 重新建立一个新的连接.
ftp> prompt # 交互提示模式.
ftp> put local-file [remote-file] # 将本地一个文件传送至远端主机中.
ftp> pwd # 列出当前远端主机目录.
ftp> quit # 同BYE.
ftp> recv remote-file [local-file] # 同GET.
ftp> rename [from] [to] # 改变远端主机中的文件名.
ftp> rmdir directory-name # 删除远端主机中的目录.
ftp> send local-file [remote-file] # 同PUT.
ftp> status # 显示当前FTP的状态.
ftp> system # 显示远端主机系统类型.
ftp> user user-name [password] [account] # 重新以别的用户名登录远端主机.
ftp> ? [command] # 同HELP. [command]指定需要帮助的命令名称。如果没有指定 command,ftp 将显示全部命令的列表。
ftp> ! # 从 ftp 子系统退出到外壳。以匿名登录为例,将下列脚本代码放入文件 script 中:
user anonymous "\n" # 匿名用户
binary # 将文件传输模式设置为二进制模式,这对于非文本文件(如图片、压缩文件等)来说是必要的,以确保文件在传输过程中不会被更改。
ls
pwd # 输出当前路径
quit # 退出 ftp 连接使用 ftp 命令执行脚本文件:
ftp -n ftp.example.com < script # 使用 -n 选项禁止自动登录,这样会继续执行 user 指令,而不是启动交互式命令行。使用 ftp 下载文件:
ftp> get readme.txt # 下载 readme.txt 文件
ftp> mget *.txt # 下载使用 ftp 上传文件:
ftp> put /path/readme.txt # 上传 readme.txt 文件
ftp> mput *.txt # 可以上传多个文件
ftp状态码FTP 状态码是 FTP 服务器用来向 FTP 客户端反馈命令执行结果的代码。每个状态码由三个数字组成,每个数字都有特定的含义。
第一个数字:
1xx: 表示正向的初步回复,表示服务器已经开始处理请求,但需要进一步的回复才能完成操作。
2xx: 表示正向的完成回复,表示服务器已经成功执行了请求。
3xx: 表示正向的中间回复,表示服务器已经接受了请求,但需要客户端提供更多信息才能完成操作。
4xx: 表示暂时的负向完成回复,表示服务器无法执行请求,但错误是暂时的,客户端可以重试。
5xx: 表示永久的负向完成回复,表示服务器无法执行请求,错误是永久性的,客户端无法重试。
第二个数字:
x0x: 表示语法错误,例如命令格式错误或参数错误。
x1x: 表示信息回复,例如系统状态或帮助信息。
x2x: 表示连接相关回复,例如控制连接或数据连接。
x3x: 表示认证和计费相关回复,例如登录过程或计费操作。
x4x: 表示未定义的回复。
x5x: 表示文件系统相关回复,例如文件传输或文件系统操作。
第三个数字:
第三个数字表示具体的错误代码,每个错误代码都有特定的含义。
一些常见的 FTP 状态码:
150: 文件状态正常,即将打开数据连接。
220: 服务已准备好,等待新用户连接。
226: 关闭数据连接,请求的文件操作成功。
230: 用户已登录,可以继续操作。
421: 服务不可用,关闭控制连接。
426: 连接已关闭,传输已中止。
500: 语法错误,命令无法识别。
530: 未登录,用户无法登录。
550: 请求的操作未执行,文件不可用。
553: 请求的操作未执行,文件不可用。 这意味着 FTP 服务器无法完成您请求的操作,通常是因为文件或目录不存在、没有权限访问、磁盘空间不足或其他原因导致的。
详见:
FTP 状态码列表
FTP 状态码解释
FTP 状态码解释 (Microsoft)
FTP Error and Status Codes
参考:
ftp命令
ftp 备忘清单
ftp error "553 Could not create file."
linux ftp 文件服务上传失败
linux ftp put命令553报错原因
安志合个人博客,版权所有 丨 如未注明,均为原创 丨 转载请注明转自:https://chegva.com/6181.html | ☆★★每天进步一点点,加油!★★☆ |