欢迎各位兄弟 发布技术文章

这里的技术是共享的

You are here

linux curl 常用参数 详解 示例 AG chatgpt 有大用 有大大用

curl 是 Linux 中强大的命令行工具,用于传输数据(支持 HTTP、HTTPS、FTP 等协议)。以下是一些常用参数详解及示例,帮助你快速掌握核心功能。


常用参数分类详解

1. 基础请求控制

  • -X [METHOD]
    指定 HTTP 请求方法(如 GETPOSTPUTDELETE)。

    bash
    curl -X POST https://api.example.com/data
  • -H "Header: Value"
    添加请求头(可多次使用)。

    bash
    curl -H "Content-Type: application/json" -H "Authorization: Bearer token" https://api.example.com
  • -d "data"
    发送 POST 请求的请求体(默认 Content-Type: application/x-www-form-urlencoded)。

    bash
    curl -d "user=admin&pass=123" https://example.com/login

    JSON 数据示例

    bash
    curl -d '{"key":"value"}' -H "Content-Type: application/json" https://api.example.com
  • -G
    将 -d 的数据以查询参数形式附加到 URL(强制 GET 请求)。

    bash
    curl -G -d "q=linux" -d "page=1" https://example.com/search

    (等效于 https://example.com/search?q=linux&page=1


2. 输出控制

  • -o [文件名]
    将响应保存到文件。

    bash
    curl -o output.html https://example.com
  • -O
    下载文件并保留远程文件名(需 URL 中包含文件名)。

    bash
    curl -O https://example.com/file.zip
  • -i
    显示响应头 + 响应体。

    bash
    curl -i https://example.com
  • -I
    仅显示响应头(等价于 HEAD 请求)。

    bash
    curl -I https://example.com
  • -v
    显示详细请求/响应过程(调试用)。

    bash
    curl -v https://example.com
  • -s
    静默模式(不显示进度/错误信息)。

    bash
    curl -s https://example.com
  • -w "format"
    自定义输出格式(如显示 HTTP 状态码)。

    bash
    curl -w "Status: %{http_code}\n" -o /dev/null https://example.com

3. 认证与安全

  • -u user:password
    基本认证(Basic Auth)。

    bash
    curl -u admin:123 https://example.com
  • --cacert [file]
    指定 CA 证书验证 HTTPS。

    bash
    curl --cacert ca.pem https://example.com
  • -k
    跳过 SSL 证书验证(不安全,仅测试用)。

    bash
    curl -k https://self-signed.example.com

4. 文件上传与下载

  • -T [本地文件]
    上传文件(如 FTP 或 PUT 请求)。

    bash
    curl -T file.txt https://example.com/upload
  • --limit-rate 100K
    限制下载速度。

    bash
    curl --limit-rate 100K -O https://example.com/largefile.iso
  • -C -
    断点续传。

    bash
    curl -C - -O https://example.com/bigfile.zip

5. 高级功能

  • -L
    自动跟随重定向。

    bash
    curl -L https://example.com/redirect
  • -A "User-Agent"
    设置 User-Agent。

    bash
    curl -A "Mozilla/5.0" https://example.com
  • -x [代理地址]
    使用代理。

    bash
    curl -x http://proxy.example.com:8080 https://target.example.com
  • -F "key=@file"
    上传文件( multipart/form-data )。

    bash
    curl -F "image=@photo.jpg" https://example.com/upload

综合示例

  1. 模拟 API 请求

    bash
    curl -X POST \  -H "Content-Type: application/json" \  -d '{"name":"Linux", "version": "5.4"}' \  https://api.example.com/kernel
  2. 下载文件到指定路径

    bash
    curl -o /tmp/download.zip https://example.com/archive.zip
  3. 调试慢请求

    bash
    curl -v -w "DNS: %{time_namelookup}\nConnect: %{time_connect}\nTotal: %{time_total}\n" \  https://example.com
  4. 使用 Cookie

    bash
    curl -b "sessionid=123" https://example.com/profile

小技巧

  • 组合静默模式与输出格式化

    bash
    curl -s -w "%{http_code}" -o /dev/null https://example.com
  • 快速测试 HTTP 状态

    bash
    curl -s -o /dev/null -I -w "%{http_code}" https://example.com

通过灵活组合这些参数,可以满足大多数网络请求需求。更多功能参考 man curl 或官方文档。


普通分类: