curl

基本语法(Synopsis)

curl [OPTIONS] URL ...

[] 表示可选项,... 表示可重复;大写名称表示需要替换的参数。

基本功能与推荐用法

curl 通过 URL 传输数据,常用于下载文件、检查 HTTP 服务和调用 API。 它不是 GNU Coreutils,但属于 Linux 环境中最常用的基础命令。

curl -fsS https://example.com/                 # 失败时返回非零状态
curl -I https://example.com/                   # 只查看响应头
curl -L -o file.zip URL                        # 跟随重定向并指定文件名
curl -LO URL                                   # 使用远端文件名
curl --retry 3 --retry-all-errors -LO URL      # 下载重试
curl -H 'Accept: application/json' URL | jq .
curl -H 'Content-Type: application/json' \
  -d '{"name":"demo"}' https://example.com/api
curl -w '%{http_code}\n' -o /dev/null -sS URL  # 只打印状态码
curl --fail-with-body -sS URL                  # 保留错误响应体

推荐:

  • 脚本中优先使用 -f、-sS,让 HTTP 错误和网络错误可检测。
  • 下载地址可能重定向时使用 -L。
  • 大文件下载配合 --retry,必要时使用 -C - 续传。
  • 表单参数使用 --data-urlencode;JSON 使用明确的 Content-Type。

不要把令牌、密码直接写进命令行或文档。命令行可能进入 Shell 历史和进程列表。

示例中的选项、参数与子命令

本表解释本页示例实际出现的选项、参数、子命令及必要的辅助命令语法。

语法元素含义
-f, --failHTTP 4xx/5xx 时返回失败,且不输出响应正文。
-s, --silent静默模式,不显示进度和错误信息。
-S, --show-error与 —silent 合用时仍显示错误;-fsS 是常见组合。
-I, --head只获取响应头。
-L, --location跟随 HTTP 重定向。
-o FILE, --output FILE把响应写入指定文件。
-O, --remote-name使用远端文件名保存;-LO 表示跟随重定向并保留文件名。
--retry N失败时最多重试 N 次。
--retry-all-errors对更多类型的瞬时错误执行重试。
-H HEADER, --header HEADER添加请求头。
-d DATA, --data DATA发送请求体数据,通常会使用 POST。
-w FORMAT, --write-out FORMAT请求结束后按格式输出状态、耗时等信息。
--fail-with-bodyHTTP 错误时返回失败,同时保留响应正文。
-C -, --continue-at -从已有文件大小处自动续传。
--data-urlencode DATA对表单数据进行 URL 编码后发送。

官方资料