当前位置:首页>Linux>Linux curl 命令行工具使用指南

Linux curl 命令行工具使用指南

  • 2026-09-04 19:59:01
Linux curl 命令行工具使用指南

1. Curl 简介

CURL(Client URL)是一个强大的命令行工具,用于通过各种协议(HTTP、HTTPS、FTP等)传输数据。

2. 基本语法

curl [选项] [URL]

3. 常用命令示例

3.1 基本 HTTP 请求

# GET 请求(默认)
curl https://api.example.com/data

# POST 请求
curl-X POST https://api.example.com/data

# PUT 请求
curl-X PUT https://api.example.com/data

# DELETE 请求
curl-X DELETE https://api.example.com/data

3.2 发送数据

发送表单数据

# 表单编码
curl-d"name=John&age=30" https://api.example.com/user

# 多部分表单数据
curl-F"name=John"-F"photo=@photo.jpg" https://api.example.com/upload

# JSON 数据
curl-H"Content-Type: application/json" \
-d'{"name":"John","age":30}' \
     https://api.example.com/user

3.3 设置请求头

curl-H"Authorization: Bearer token123" \
-H"Content-Type: application/json" \
     https://api.example.com/data

3.4 文件操作

下载文件

# 下载到当前目录(保持原文件名)
curl-O https://example.com/file.zip

# 下载并指定文件名
curl-o custom_name.zip https://example.com/file.zip

# 恢复中断的下载
curl-C--O https://example.com/largefile.iso

上传文件

# FTP 上传
curl-T localfile.txt ftp://ftp.example.com/

# HTTP PUT 上传
curl-T localfile.txt https://example.com/upload

3.5 认证

# 基本认证
curl-u username:password https://api.example.com

# 仅提供用户名(会提示输入密码)
curl-u username https://api.example.com

# Bearer Token
curl-H"Authorization: Bearer YOUR_TOKEN" https://api.example.com

3.6 代理设置

# HTTP 代理
curl-x http://proxy.example.com:8080 https://example.com

# 带认证的代理
curl-U username:password -x http://proxy.example.com:8080 https://example.com

3.7 Cookie 管理

# 发送 Cookie
curl-b"name=value; name2=value2" https://example.com

# 从文件读取 Cookie
curl-b cookies.txt https://example.com

# 保存响应中的 Cookie 到文件
curl-c cookies.txt https://example.com

3.8 重定向和跟踪

# 跟随重定向
curl-L https://example.com

# 限制重定向次数
curl-L--max-redirs5 https://example.com

# 显示重定向过程
curl-L-v https://example.com

3.9 输出控制

详细输出

# 显示详细过程
curl-v https://example.com

# 更详细的输出
curl--trace-ascii debug.txt https://example.com

静默模式

# 不显示进度和错误信息
curl-s https://example.com

# 静默但显示错误
curl-sS https://example.com

# 不输出任何内容(只保存到文件)
curl-s-o output.txt https://example.com

3.10 SSL/TLS 相关

# 跳过 SSL 证书验证(不安全)
curl-k https://example.com

# 指定客户端证书
curl--cert client.pem --key key.pem https://example.com

# 指定 CA 证书
curl--cacert ca-bundle.crt https://example.com

3.11 限速和超时

# 限制下载速度
curl--limit-rate 100k -O https://example.com/largefile.zip

# 设置连接超时(秒)
curl--connect-timeout10 https://example.com

# 设置最大请求时间
curl--max-time30 https://example.com

3.12 其他实用功能

压缩支持

# 请求压缩内容
curl--compressed https://example.com

保存响应头

# 保存响应头到文件
curl-D headers.txt https://example.com

# 包含响应头到输出
curl-i https://example.com

只获取响应头

curl-I https://example.com

断点续传

# 从指定位置开始下载
curl-r1000-2000-o file.zip https://example.com/largefile.zip

4. 实际应用示例

4.1 API 测试

# 测试 REST API
curl-X GET "https://api.example.com/users?page=1&limit=10"
curl-X POST -H"Content-Type: application/json" \
-d'{"email":"test@example.com","password":"secret"}' \
     https://api.example.com/login

4.2 监控网站状态

# 检查网站是否在线
curl-s-o /dev/null -w"%{http_code}\n" https://example.com

# 完整的监控脚本
curl-s-o /dev/null -w"
时间: %{time_total}秒
状态码: %{http_code}
DNS解析: %{time_namelookup}秒
连接时间: %{time_connect}秒
开始传输: %{time_starttransfer}秒
" https://example.com

4.3 批量下载

# 下载多个文件
curl-O https://example.com/file1.zip \
-O https://example.com/file2.zip \
-O https://example.com/file3.zip

# 使用 URL 列表文件
curl-K urls.txt

5. 高级技巧

5.1 管道操作

# 下载并解压
curl https://example.com/file.tar.gz | tar -xz

# 处理 JSON 响应
curl-s https://api.example.com/data | jq '.results[].name'

5.2 使用配置文件

# 创建配置文件 ~/.curlrc
user-agent ="MyCurlClient/1.0"
max-time =30

# 使用配置
curl-K ~/.curlrc https://example.com

5.3 调试和故障排除

# 显示所有连接信息
curl--trace-time--trace-ascii /dev/stdout https://example.com

# 查看 SSL 证书信息
curl-vI https://example.com 2>&1 | awk'/^* SSL/,/^* HTTP/'

6. 常用选项速查表


选项说明
-X  指定 HTTP 方法
-H  添加请求头
-d  发送 POST 数据
-F 发送表单数据
-u  认证信息
-o  输出到文件
-O  保存为远程文件名
-L  跟随重定向
-v  详细输出
-s  静默模式
-k  忽略 SSL 错误
-I  只获取响应头
-b  发送 Cookie
-c  保存 Cookie
-x  使用代理
-C  断点续传

最新文章

随机文章