curl
是 Linux/Unix 系统中一个强大的 命令行工具,用于通过多种网络协议(如 HTTP、HTTPS、FTP、SFTP 等)传输数据。它支持发送请求、下载/上传文件、测试 API、调试网络问题等,是开发者和运维人员的常用工具。
发送 HTTP/HTTPS 请求
curl https://example.com
下载文件
curl -O https://example.com/file.zip # 保存到当前目录(保留原文件名)
curl -o custom_name.zip https://example.com/file.zip # 指定保存文件名
跟随重定向
curl -L https://example.com # 自动处理 3xx 重定向
发送 POST/PUT 请求
curl -X POST -d '{"key":"value"}' -H "Content-Type: application/json" https://api.example.com
调试和查看详细信息
curl -v https://example.com # 显示详细请求/响应头(调试用)
curl -I https://example.com # 仅显示响应头(HEAD 请求)
支持认证
curl -u username:password https://api.example.com # Basic 认证
curl --oauth2-bearer TOKEN https://api.example.com # OAuth 2.0
代理支持
curl -x http://proxy-server:port https://example.com
限制下载速度
curl --limit-rate 100K https://example.com/largefile.iso
选项 | 作用 |
---|---|
-o <file> |
将输出保存到文件 |
-O |
使用远程文件名保存 |
-L |
跟随重定向 |
-H |
添加请求头(如 -H "User-Agent: curl" ) |
-d |
发送 POST 数据(表单/JSON) |
-F |
上传文件(表单 multipart) |
-u |
用户名密码认证 |
-k |
忽略 SSL 证书验证(不安全,仅测试用) |
-s |
静默模式(不显示进度/错误) |
-v |
显示详细调试信息 |
测试 API 接口
curl -X GET "https://api.example.com/users?id=123" -H "Authorization: Bearer token"
下载文件并断点续传
curl -C - -O https://example.com/largefile.tar.gz
上传文件到 FTP
curl -T localfile.txt ftp://ftp.example.com/ --user ftpuser:ftppass
模拟浏览器请求
curl -A "Mozilla/5.0" https://example.com
wget
的区别curl
更侧重 协议支持多样性 和 API 调试(如支持 HTTP 方法、JSON 请求)。wget
更适合 递归下载网页 和 批量下载(支持断点续传更稳定)。-L
)。-C -
启用断点续传。-k
(忽略证书验证),可能引发中间人攻击。如果需要更复杂的功能(如 Cookie 管理、SOCKS 代理),可查阅 man curl
或官方文档:curl.se/docs/