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, --fail | HTTP 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-body | HTTP 错误时返回失败,同时保留响应正文。 |
-C -, --continue-at - | 从已有文件大小处自动续传。 |
--data-urlencode DATA | 对表单数据进行 URL 编码后发送。 |