### Linux下FTP命令详解
FTP(File Transfer Protocol)是一种用于在网络上进行文件传输的标准协议和应用。在Linux系统中,FTP客户端提供了丰富的命令集来管理文件传输任务,包括上传、下载、目录浏览等操作。本文将详细介绍Linux下常用的FTP命令及其使用方法。
#### 一、退出与帮助命令
1. **!**
- **功能**:从FTP子系统退出到外壳(Shell)。
- **用法**:`FTP> !`
2. **? / help**
- **功能**:显示FTP命令的帮助文档。
- **用法**:`FTP> ? [command]`
- 如果未指定`command`,则列出所有命令;若指定了`command`,则显示该命令的具体用法。
#### 二、文件传输命令
3. **append**
- **功能**:将本地文件追加到远程服务器的文件末尾。
- **用法**:`FTP> append local-file [remote-file]`
- `local-file`:要追加的本地文件名。
- `remote-file`:远程服务器上的目标文件名。若省略,则使用本地文件名作为远程文件名。
4. **ascii / binary**
- **功能**:
- `ascii`:将文件传输模式设置为ASCII码。
- `binary`:将文件传输模式设置为二进制。
- **用法**:`FTP> ascii` 或 `FTP> binary`
5. **get / recv**
- **功能**:从远程服务器下载文件到本地。
- **用法**:`FTP> get remote-file [local-file]`
- `remote-file`:远程服务器上的文件名。
- `local-file`:本地保存的文件名。若省略,则使用远程文件名作为本地文件名。
- `recv`命令与`get`功能相同。
6. **put / send**
- **功能**:向远程服务器上传文件。
- **用法**:`FTP> put local-file [remote-file]`
- `local-file`:本地文件名。
- `remote-file`:远程服务器上的文件名。若省略,则使用本地文件名作为远程文件名。
- `send`命令与`put`功能相同。
7. **mget / mput**
- **功能**:
- `mget`:批量下载远程服务器上的文件到本地。
- `mput`:批量上传本地文件到远程服务器。
- **用法**:`FTP> mget remote-files [ ...]` 或 `FTP> mput local-files [ ...]`
#### 三、目录操作命令
8. **cd / lcd**
- **功能**:
- `cd`:更改远程服务器的工作目录。
- `lcd`:更改本地的工作目录。
- **用法**:`FTP> cd remote-directory` 或 `FTP> lcd [directory]`
- `remote-directory`:远程服务器的目标目录。
- `directory`:本地的目标目录。若省略,则显示当前目录。
9. **pwd**
- **功能**:显示远程服务器的当前工作目录。
- **用法**:`FTP> pwd`
10. **dir / ls / mdir / mls**
- **功能**:
- `dir`/`ls`:列出远程服务器目录中的文件和子目录。
- `mdir`/`mls`:支持同时列出多个远程目录。
- **用法**:`FTP> dir [remote-directory] [local-file]` 或 `FTP> mdir remote-files [ ...] local-file`
- `remote-directory`:要查看的远程目录。若省略,则使用当前目录。
- `local-file`:用于存储列表的本地文件名。若省略,则输出显示在屏幕上。
- `mdir`和`mls`命令支持同时列出多个远程目录。
11. **mkdir / rmdir**
- **功能**:
- `mkdir`:在远程服务器创建新目录。
- `rmdir`:删除远程服务器的目录。
- **用法**:`FTP> mkdir directory` 或 `FTP> rmdir directory`
- `directory`:远程目录的名称。
#### 四、其他实用命令
12. **bell**
- **功能**:设置是否在每次文件传输后响铃。
- **用法**:`FTP> bell`
13. **debug / trace**
- **功能**:
- `debug`:启用调试模式,显示发送到远程服务器的所有命令。
- `trace`:启用数据包跟踪模式,显示每个数据包的路由。
- **用法**:`FTP> debug` 或 `FTP> trace`
14. **delete / mdelete**
- **功能**:
- `delete`:删除远程服务器上的文件。
- `mdelete`:批量删除远程服务器上的文件。
- **用法**:`FTP> delete remote-file` 或 `FTP> mdelete remote-files [ ...]`
15. **rename**
- **功能**:在远程服务器上重命名文件。
- **用法**:`FTP> rename filename newfilename`
- `filename`:原始文件名。
- `newfilename`:新文件名。
16. **close / disconnect / quit / open**
- **功能**:
- `close`/`disconnect`:结束与远程服务器的连接,但仍保留在FTP提示符界面。
- `quit`:退出FTP客户端。
- `open`:连接到指定的FTP服务器。
- **用法**:`FTP> close` 或 `FTP> disconnect` 或 `FTP> quit` 或 `FTP> open computer [port]`
- `computer`:远程服务器的地址(IP或域名)。
- `port`:连接FTP服务器的端口,默认通常为21。
17. **type**
- **功能**:设置文件传输类型。
- **用法**:`FTP> type [type-name]`
- `type-name`:文件传输类型,默认为ASCII。若省略,则显示当前设置的类型。
18. **user**
- **功能**:指定远程服务器的用户名。
- **用法**:`FTP> user username [password] [account]`
- `username`:用户名。
- `password`:密码。若省略,则会提示输入。
- `account`:账户。若省略,则会提示输入。
19. **prompt / verbose**
- **功能**:
- `prompt`:设置是否在批量文件传输时提示用户确认。
- `verbose`:设置是否显示所有FTP响应和传输统计信息。
- **用法**:`FTP> prompt` 或 `FTP> verbose`
20. **status**
- **功能**:显示当前FTP连接的状态和设置。
- **用法**:`FTP> status`
21. **remotehelp**
- **功能**:显示远程服务器支持的命令帮助。
- **用法**:`FTP> remotehelp [command]`
- `command`:需要帮助的命令名称。若省略,则列出所有命令。
22. **quote / literal**
- **功能**:发送任意命令到远程服务器。
- **用法**:`FTP> quote argument [ ...]` 或 `FTP> literal argument [ ...]`
- `argument`:发送到远程服务器的命令或参数。
以上列举了Linux下FTP客户端的主要命令,通过这些命令可以方便地完成文件传输相关的各种操作。熟练掌握这些命令将有助于提高工作效率,并能够更加高效地管理和维护远程服务器上的文件资源。