Linux 系统 curl 命令详解

curl 是一个功能强大的命令行工具,用于与 Web 服务器进行数据通信。它支持多种协议,如 HTTP、HTTPS、FTP、SFTP、SMTP 等,并提供了丰富的选项和参数来执行各种操作,如发送请求、下载文件、上传文件等。下面我将详细介绍 curl 命令的用法。

基本语法:

复制代码
curl [选项] [URL]

常用选项:

  • -X, --request <METHOD>:指定请求方法,如 GET、POST、PUT、DELETE 等。
  • -H, --header <HEADER>:添加请求头信息。可以使用该选项多次添加多个请求头。
  • -d, --data <DATA>:发送 POST 请求时附带的数据。
  • -F, --form <KEY=VALUE>:以表单形式发送 POST 请求时提交数据。
  • -o, --output <FILE>:将响应保存到指定文件。
  • -O, --remote-name:将响应保存到当前目录下的文件,文件名使用 URL 的最后一部分。
  • -L, --location:如果服务器返回重定向,则跟随重定向。
  • -c, --cookie <COOKIE>:发送请求时携带的 Cookie。
  • -b, --cookie-jar <FILE>:将服务器返回的 Cookie 保存到指定文件。
  • -u, --user <USER:PASSWORD>:设置用户名和密码,用于进行身份验证。
  • -s, --silent:静默模式,不显示进度信息。
  • -v, --verbose:显示详细的调试信息。
  • -i, --include:在输出中包含响应头信息。
  • -A, --user-agent <USER_AGENT>:设置 User-Agent 头信息。
  • -e, --referer <URL>:设置 Referer 头信息。
  • -H, --host <HOSTNAME>:设置 Host 头信息。
  • -I, --head:只获取响应头信息,不下载内容。
  • -k, --insecure:忽略 SSL 证书验证。
  • -m, --max-time <SECONDS>:设置请求的最大执行时间。
  • -x, --proxy <PROXY>:设置代理服务器。
  • --data-urlencode <DATA>:URL 编码发送的数据。
  • --compressed:使用压缩传输。

常用命令

  1. 发送 GET 请求并显示响应内容:

    复制代码
    curl https://example.com
  2. 发送 POST 请求并附带 JSON 数据:

    复制代码
    curl -X POST -H "Content-Type: application/json" -d '{"key": "value"}' https://example.com/api
  3. 发送 PUT 请求并附带表单数据:

    复制代码
    curl -X PUT -F "name=John" -F "age=30" https://example.com/user/1
  4. 下载文件并保存到本地:

    复制代码
    curl -O https://example.com/file.ext
  5. 下载多个文件到指定目录:

    复制代码
    curl -O https://example.com/file1.ext -O https://example.com/file2.ext -O https://example.com/file3.ext
  6. 发送带有 Basic 认证的 GET 请求:

    复制代码
    curl -u username:password https://example.com
  7. 发送带有自定义请求头的 GET 请求:

    复制代码
    curl -H "Authorization: Bearer token" https://example.com/api
  8. 发送带有 Cookie 的请求:

    复制代码
    curl -b "cookie1=value1; cookie2=value2" https://example.com
  9. 发送带有 Referer 头信息的请求:

    复制代码
    curl -e "https://example.com/referer" https://example.com
  10. 跟随重定向并显示详细调试信息:

    复制代码
    curl -L -v https://example.com
  11. 发送 DELETE 请求:

    复制代码
    curl -X DELETE https://example.com/resource/1
  12. 发送带有自定义 User-Agent 的请求:

    复制代码
    curl -A "Custom User Agent" https://example.com
  13. 使用代理服务器发送请求:

    复制代码
    curl -x proxy_server:port https://example.com
  14. 显示响应头信息:

    复制代码
    curl -I https://example.com
  15. 发送并保存响应到文件:

    复制代码
    curl -o response.txt https://example.com
  16. 忽略 SSL 证书验证:

    复制代码
    curl -k https://example.com
  17. 发送 PATCH 请求并附带数据:

    复制代码
    curl -X PATCH -d '{"key": "value"}' https://example.com/api
  18. 发送带有 URL 编码数据的 POST 请求:

    复制代码
    curl --data-urlencode "name=John Doe" --data-urlencode "age=30" https://example.com/api
  19. 限制请求执行时间为 5 秒:

    复制代码
    curl -m 5 https://example.com
  20. 发送带有压缩传输的请求:

    复制代码
    curl --compressed https://example.com
相关推荐
九河云1 天前
数字化转型中的网络安全风险与零信任架构实践
运维·科技·安全·web安全·架构
七七七七071 天前
【计算机网络】深入理解ARP协议:工作原理、报文格式与安全防护
linux·服务器·网络·计算机网络·安全
守城小轩1 天前
轻量级HTTP&Socks代理GOST: Linux编译安装
运维·网络·网络协议
qq_5470261791 天前
Flowable 工作流引擎
java·服务器·前端
奋斗的蛋黄1 天前
网络卡顿运维排查方案:从客户端到服务器的全链路处理
运维·服务器·网络
wanhengidc1 天前
云手机搬砖 尤弥尔传奇自动化操作
运维·服务器·arm开发·安全·智能手机·自动化
图图图图爱睡觉1 天前
主机跟虚拟机ip一直Ping不通,并且虚拟机使用ifconfig命令时,ens33没有ipv4地址,只有ipv6地址
服务器·网络·tcp/ip
deephub1 天前
FastMCP 入门:用 Python 快速搭建 MCP 服务器接入 LLM
服务器·人工智能·python·大语言模型·mcp
lhxcc_fly1 天前
Linux网络--8、NAT,代理,网络穿透
linux·服务器·网络·nat
摇滚侠1 天前
Spring Boot3零基础教程,Spring Boot 应用打包成 exe 可执行文件,笔记91 笔记92 笔记93
linux·spring boot·笔记