Ubuntu 常用命令 curl 适用于 HTTP 请求、文件传输和 API 调试:
命令名称
curl(客户端 URL 请求工具)
用途:通过命令行发送或接收网络数据,支持 HTTP/HTTPS/FTP/SFTP 等协议,常用于测试 API、下载文件或调试网络服务。
基础语法
curl [选项] <URL>
核心功能与示例
1. 快速下载文件
# 下载文件到当前目录(保留远程文件名)
curl -O https://example.com/file.zip
# 指定本地文件名保存
curl -o custom_name.zip https://example.com/file.zip
2. 发送 HTTP 请求
# GET 请求(默认)
curl https://api.example.com/data
# POST 请求(提交 JSON)
curl -X POST -H "Content-Type: application/json" -d '{"key":"value"}' https://api.example.com/submit
# 带 Cookie 的请求
curl -b "session=abc123" https://example.com/dashboard
3. 调试与查看响应头
# 显示完整响应头(-i)
curl -i https://www.bigran.cn
# 仅显示响应头(-I,HEAD 方法)
curl -I https://www.bigran.cn
4. 断点续传与限速
# 断点续传(-C -)
curl -C - -O https://example.com/large_file.iso
# 限速下载(限速 100KB/s)
curl --limit-rate 100K -O https://example.com/file.iso
高级用法
1. 模拟浏览器请求
# 指定 User-Agent 和 Referer
curl -A "Mozilla/5.0" -e "https://google.com" https://example.com
2. 文件上传(FTP/HTTP)
# 通过 FTP 上传文件
curl -u user:password -T file.txt ftp://ftp.example.com/
# 通过 HTTP 表单上传
curl -F "file=@local_file.txt" https://example.com/upload
3. 认证与代理
# Basic 认证
curl -u username:password https://api.example.com
# 使用代理服务器
curl -x http://proxy.example.com:8080 https://www.bigran.cn
4. 输出到管道处理
# 下载并解压到当前目录
curl https://example.com/file.tar.gz | tar -xz
常见场景
-
API 调试:
# 测试 RESTful API 响应 curl -X PUT -H "Authorization: Bearer token" https://api.example.com/item/1 -
批量下载:
# 批量下载多个文件(file1.txt, file2.txt) curl -O https://example.com/file[1-2].txt -
监控服务健康:
# 定时检查网站状态(结合 cron) curl -s -o /dev/null -w "%{http_code}" https://www.bigran.cn -
数据抓取:
# 抓取网页内容并过滤关键词 curl -s https://news.example.com | grep "区块链"
注意事项
-
安全提示:
- 避免在命令中明文输入密码(用
-u user:password时建议改用令牌或交互式输入)。 - 使用 HTTPS 协议确保传输加密。
- 避免在命令中明文输入密码(用
-
性能优化:
- 大文件下载时添加
-#显示进度条(或--progress-bar)。 - 复用连接:通过
--keepalive减少握手开销。
- 大文件下载时添加
-
错误处理:
- 使用
--retry <次数>自动重试失败请求。 - 检查返回状态码:
echo $?(0 表示成功,非 0 为错误)。
- 使用
常用参数速查表
| 参数 | 说明 |
|---|---|
-X <METHOD> |
指定 HTTP 方法(GET/POST 等) |
-H "Header: Val" |
添加请求头 |
-d "data" |
提交请求体数据 |
-o <FILE> |
输出到文件 |
-L |
自动跟随重定向 |
-v |
显示详细调试信息 |
-s |
静默模式(不显示进度/错误) |