Linux系统中的curl命令使用详解

curl概述

官方文档:https://curl.se/docs/

GitHub地址:https://github.com/curl/curl

curl全称Client URL,是一个命令行工具和库,用于通过 URL 传输数据,支持 100+ 协议(HTTP/HTTPS、FTP、SMTP、POP3、RTSP、DICT 等)。

其作用主要是发送网络请求、接收响应、支持文件上传 / 下载、处理认证、代理、Cookie、重定向等复杂网络操作。

其以轻量简洁、跨平台(Linux、Windows、Mac)、脚本友好(适合自动化和 API 测试)等特点深受广大程序员的喜爱。

curl应用场景

  • API 调试:测试 RESTful 接口(GET/POST/PUT/DELETE 等)。
  • 文件传输:下载远程文件、上传文件到服务器(如 FTP/SCP)。
  • 网络诊断:检查服务器响应状态、分析请求头 / 响应头。
  • 数据采集:爬取网页内容(需注意网站 robots 协议)。
  • 脚本自动化:在 Shell/Python 脚本中集成网络请求。

curl的基本使用

安装

复制代码
# linux debian系列
apt install -y curl

# linux CentOS系列
yum install -y curl

curl的语法

复制代码
# 其中options是选项参数,url表示请求的路径
curl [options] [url]

常用选项参数

请求控制选项

  • -X,--request:指定请求方法(GET、POST、PUT、DELETE...)

    curl -X GET https://www.baidu.com

  • -H, --header:添加请求头,可以多次指定

    curl -H "content-type: application/json; charset=utf-8"
    -H "Authorization: Bearer TOKEN"
    https://api.example.com

  • -d:发送 POST 数据(表单数据,自动设置 Content-Type: application/x-www-form-urlencoded)

    curl -d "name=John&age=30" https://api.example.com/submit

  • -D, --dump-header:将响应头保存到文件

    curl -D headers.txt https://www.baidu.com

  • -L, --location:自动跟随重定向(301/302 状态码)

    curl -L http://www.baidu.com

  • -b, --cookie:发送 Cookie(格式:name=value 或文件路径)

    curl -b "sessionid=12345" https://example.com

  • -c, --cookie-jar:将服务器返回的cookie保存到本地文件,便于后续访问

    curl -c cookies.txt https://example.com/login

数据传输选项

输出与调试选项

  • -v, --verbose 显示详细调试信息(请求头、响应头、连接过程等)

    curl -v https://www.baidu.com

  • -s, --silent:静默模式(不显示进度条),但错误信息仍会显示。

    curl -s https://example.com > content.txt

  • -S, --show-error 在静默模式下显示错误信息(需配合 -s)

    curl -sS https://invalid-url.com

  • --trace:跟踪请求过程(更详细的调试日志)

    curl --trace trace.log https://example.com

其它高级选项

常用案例

常用案例持续更新中...