Linux中的cURL是一个强大的命令行工具,用于传输数据到或从服务器,支持多种协议,包括HTTP、HTTPS、FTP、FTPS等。它广泛应用于系统管理、自动化任务和脚本编写中。以下是对cURL常用命令的详细解释:
1. **下载单个文件**
默认情况下,`curl`命令会将下载内容输出到标准输出(STDOUT)。例如:
```
curl http://www.centos.org
```
2. **保存文件到本地**
- `-o` 选项用于指定本地文件名:
```
curl -o mygettext.html http://www.gnu.org/software/gettext/manual/gettext.html
```
- `-O` 选项会根据URL中的文件名保存文件:
```
curl -O http://www.gnu.org/software/gettext/manual/gettext.html
```
3. **同时下载多个文件**
可以在一个命令中同时指定多个URL来下载多个文件:
```
curl -O URL1 -O URL2
```
4. **处理重定向**
`-L` 选项允许cURL自动跟随HTTP重定向:
```
curl -L http://www.google.com
```
5. **断点续传**
使用`-C`选项可以实现断点续传,`-C -`表示从当前位置继续下载:
```
curl -C - -O http://www.gnu.org/software/gettext/manual/gettext.html
```
6. **设置下载速率限制**
`--limit-rate` 选项可以限制下载速度,例如每秒不超过1000字节:
```
curl --limit-rate 1000B -O http://www.gnu.org/software/gettext/manual/gettext.html
```
7. **根据文件修改时间下载**
`-z` 或 `--time-cond` 选项可以指定一个时间条件,只有在文件在此时间后被修改才会下载:
```
curl -z 21-Dec-11 http://www.example.com/yy.html
```
8. **认证与授权**
`-u` 选项用于提供用户名和密码进行身份验证:
```
curl -u username:password URL
```
也可以只提供用户名,密码会在提示时输入,以避免在历史记录中显示密码。
9. **从FTP服务器下载**
cURL支持FTP协议,但需要注意,如果URL指向目录而不是具体文件,cURL会列出目录内容而非下载所有文件。例如:
```
curl ftp://ftp.example.com/pub
```
10. **其他高级功能**
- `-I` 或 `--head`:仅获取HTTP头信息。
- `-v` 或 `--verbose`:显示详细信息,包括请求和响应。
- `--cookie`:传递Cookie信息。
- `--data` 或 `-d`:POST数据到服务器。
- `--form` 或 `-F`:用于POST表单数据。
- `--proxy`:通过代理服务器连接。
- `--user-agent`:自定义User-Agent字符串。
cURL的强大之处在于其丰富的选项和广泛的协议支持,可以根据不同需求灵活配置,实现各种复杂的网络数据传输任务。在Linux环境中,它是日常工作中不可或缺的工具之一。