curl
是一个用于在命令行下进行数据传输的工具,支持多种协议。常用参数包括 -X
(指定请求方法)、 -H
(添加自定义头部)、 -d
(发送数据)等。
Linux 下的curl
命令是一个功能强大的工具,用于在命令行下通过 URL 语法进行文件传输,它支持多种协议,包括但不限于 HTTP、HTTPS、FTP、FTPS 和 Telnet 等,以下是对curl
命令及其参数的详细解释:
1、基本用法
获取网页内容:
使用curl
命令后跟一个网址,可以抓取并显示该网址的内容。curl www.baidu.com
将抓取百度首页的内容并在终端中显示。
下载网页或文件:
使用-o
参数可以将输出重定向到本地文件,实现下载功能。curl -o output.html www.baidu.com
会将百度首页的内容保存到当前目录下的output.html
文件中。
使用-O
参数可以自动以远程文件名命名本地文件。curl -O http://www.example.com/file.zip
会将file.zip
下载到本地,并保留原始文件名。
2、常用参数
设置用户代理:
使用-A
参数可以设置请求头中的 User-Agent 字段,模拟不同的浏览器或设备访问网站。curl -A "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3"
可以模拟 Chrome 浏览器访问网站。
处理 Cookies:
使用-b
参数可以发送 Cookie 数据给服务器。curl -b "key1=val1;key2=val2" www.baidu.com
会发送指定的 Cookie 数据给百度服务器。
使用-c
参数可以将服务器返回的 Set-Cookie 信息保存到本地文件。curl -c /tmp/cookies www.baidu.com
会将百度服务器返回的 Cookie 信息保存到/tmp/cookies
文件中。
设置请求头:
使用-H
参数可以自定义请求头信息。curl -H "Content-Type: application/json" -X POST -d '{"name":"John", "age":30}' www.example.com/api
可以发送一个 JSON 格式的 POST 请求。
认证方式:
对于需要用户名和密码认证的网站,可以使用-u
参数。curl -u username:password www.example.com
会使用指定的用户名和密码进行认证。
对于需要证书认证的网站,可以使用-E
参数指定证书文件。curl -E /path/to/certificate.pem https://www.example.com
会使用指定的证书进行认证。
显示进度条:
使用-#
参数可以在终端中显示下载或上传的进度条。
限制传输速度:
使用--limit-rate
参数可以限制传输速度。curl --limit-rate 100K http://www.example.com/file.zip
会将下载速度限制在 100KB/s。
3、高级用法
断点续传:
使用-C
参数可以开启断点续传功能,如果下载过程中断,再次执行相同的curl
命令会继续下载未完成的部分。
表单提交:
使用-F
参数可以模拟表单提交。curl -F "field1=value1" -F "file=@/path/to/file" www.example.com/upload
可以提交一个包含文本字段和文件字段的表单。
多线程下载:
使用-Z
参数可以指定同时打开的连接数,实现多线程下载。curl -Z 10 -O http://www.example.com/file.zip
会使用 10 个线程同时下载文件。
代理设置:
使用-x
参数可以设置代理服务器。curl -x http://proxyserver:port www.example.com
会通过指定的代理服务器访问网站。
是 Linux 下curl
命令的一些常见用法和参数说明,需要注意的是,不同版本的curl
命令可能支持不同的参数和选项,具体使用时可以参考curl
的官方文档或使用man curl
命令查看帮助信息。