|
| 1 | +ftp 备忘清单 |
| 2 | +=== |
| 3 | + |
| 4 | +此 ftp 备忘清单包含命令和使用 ftp 脚本实现自动化的技巧示例。 |
| 5 | + |
| 6 | +入门 |
| 7 | +---- |
| 8 | + |
| 9 | +### 介绍 |
| 10 | + |
| 11 | +<!--rehype:wrap-class=col-span-2--> |
| 12 | + |
| 13 | +- FTP 命令允许用户通过FTP(File Transfer Protocol)协议在本地计算机和远程服务器之间传输文件。 |
| 14 | +- FTP 是一种在网络上交换文件的标准协议,是 ARPANet 的标准文件传输协议,ARPANet 网络就是现今 Internet 的前身。 |
| 15 | +- 使用 FTP 协议时,一方充当客户端,另一方充当服务器,客户端可以上传、下载、删除、重命名文件和目录,以及执行其他文件传输相关的操作。 |
| 16 | + |
| 17 | +### 选项 |
| 18 | +<!--rehype:wrap-class=row-span-3--> |
| 19 | + |
| 20 | +```bash |
| 21 | +ftp -v ftp.example.com |
| 22 | +``` |
| 23 | + |
| 24 | +`-v`:启用或禁用详细模式。在详细模式下,`ftp`命令会显示所有来自服务器的响应消息。默认情况下,该选项为开启状态。 |
| 25 | + |
| 26 | +```bash |
| 27 | +ftp -d ftp.example.com |
| 28 | +``` |
| 29 | + |
| 30 | +`-d`:启用调试模式。该选项会显示所有FTP传输过程中发送和接收到的命令,有助于调试连接问题。 |
| 31 | + |
| 32 | +```bash |
| 33 | +ftp -n ftp.example.com |
| 34 | +``` |
| 35 | + |
| 36 | +`-n`:禁止自动登录。默认情况下,`ftp`命令会在连接到远程服务器后尝试自动登录。使用该选项可以禁止该行为,通常与`.netrc`文件联合使用。 |
| 37 | + |
| 38 | +```bash |
| 39 | +ftp -g ftp.example.com |
| 40 | +``` |
| 41 | + |
| 42 | +禁用文件名通配符扩展。`ftp`命令默认会展开文件名中的通配符。使用该选项可以关闭这一行为。 |
| 43 | + |
| 44 | +```bash |
| 45 | +ftp -p ftp.example.com |
| 46 | +``` |
| 47 | + |
| 48 | +`-p`:使用被动模式(PASV)进行数据连接。被动模式在客户端位于防火墙或NAT后面时非常有用。 |
| 49 | + |
| 50 | +```bash |
| 51 | +ftp -s:script.txt ftp.example.com # Windows |
| 52 | +ftp -n ftp.example.com < script # Linux |
| 53 | +``` |
| 54 | + |
| 55 | +:warning: Windows 上使用`-s`选项指定`script.txt`脚本执行 ftp 命令。Linux 上可以使用重定向实现。 |
| 56 | + |
| 57 | +### 目录操作 |
| 58 | + |
| 59 | +| 命令 | 描述 | |
| 60 | +| -------------------- | -------------------------- | |
| 61 | +| `cd` | 更改当前工作目录到指定目录 | |
| 62 | +| `ls`或`dir` | 列出当前目录下的内容 | |
| 63 | +| `pwd` | 显示当前目录的绝对路径 | |
| 64 | +| `mkdir` | 创建目录 | |
| 65 | +| `rmdir` | 删除一个目录 | |
| 66 | +| `rename <old> <new>` | 重命名一个目录 | |
| 67 | + |
| 68 | +### 快速开始 |
| 69 | + |
| 70 | +<!--rehype:wrap-class=row-span-2--> |
| 71 | + |
| 72 | +使用匿名模式访问远程 FTP 服务器 |
| 73 | + |
| 74 | +```bash |
| 75 | +ftp ftp.example.com |
| 76 | +``` |
| 77 | + |
| 78 | +ftp 会启动交互式命令行 |
| 79 | + |
| 80 | +```bash |
| 81 | +Connected to <host> (<ip address>). |
| 82 | +220 (vsFTPd 3.*) |
| 83 | +# 需要手动输入 anonymous |
| 84 | +Name (192.168.10.10:root): anonymous |
| 85 | +331 Please specify the password. |
| 86 | +Password: # 匿名模式下直接回车 |
| 87 | +230 Login successful. |
| 88 | +Remote system type is UNIX. |
| 89 | +Using binary mode to transfer files. |
| 90 | +``` |
| 91 | + |
| 92 | +连接成功后进入交互式会话. |
| 93 | + |
| 94 | +查看所有命令,使用 `helm` 或 `?` |
| 95 | + |
| 96 | +```bash |
| 97 | +ftp> help |
| 98 | +# 或者 |
| 99 | +ftp> ? |
| 100 | +``` |
| 101 | + |
| 102 | +### 文件操作 |
| 103 | + |
| 104 | +| 命令 | 描述 | |
| 105 | +| ---------------------- | -------------------- | |
| 106 | +| `get <remote> <local>` | 下载一个文件到本地 | |
| 107 | +| `mget` | 下载多个文件到本地 | |
| 108 | +| `put <local> <remote>` | 上传一个文件到服务器 | |
| 109 | +| `mput` | 上传多个文件到服务器 | |
| 110 | +| `delete <remote>` | 删除一个文件 | |
| 111 | +| `rename <old> <new>` | 重命名一个文件 | |
| 112 | + |
| 113 | +脚本 |
| 114 | +---- |
| 115 | + |
| 116 | +### 样例 |
| 117 | + |
| 118 | +<!--rehype:wrap-class=col-span-3--> |
| 119 | + |
| 120 | +以匿名登录为例,将下列脚本代码放入文件 `script` 中: |
| 121 | + |
| 122 | +```bash |
| 123 | +user anonymous "\n" # 匿名用户 |
| 124 | +binary # 将文件传输模式设置为二进制模式,这对于非文本文件(如图片、压缩文件等)来说是必要的,以确保文件在传输过程中不会被更改。 |
| 125 | +ls <dir> # 进入某个目录 |
| 126 | +pwd # 输出当前路径 |
| 127 | +quit # 退出 ftp 连接 |
| 128 | +``` |
| 129 | + |
| 130 | +使用 `ftp` 命令执行脚本文件: |
| 131 | + |
| 132 | +```bash |
| 133 | +ftp -n ftp.example.com < script # 使用 -n 选项禁止自动登录,这样会继续执行 user 指令,而不是启动交互式命令行。 |
| 134 | +``` |
0 commit comments