一个用于传输数据的命令行工具,常用于通过 URL 从服务器下载或上传数据。本文是curl的几个常用命令行用法。

下载文件

  • 指定保存的文件名称下载文件
    curl https://www.baidu.com -o baidu.txt
  • 用 URL 指定的资源文件名保存下载文件(URL 必须指向具体的文件名)
    curl https://www.baidu.com/index.html -O
  • 指定 Usaer-Agent 和 Referer 请求头的值, 下载文件
    curl -A "Mozilla/5.0 Chrome/70.0.3538.110 Safari/537.36" -e "https://www.baidu.com/" https://www.baidu.com/index.html -O
  • 指定Authorization请求头的值, 下载文件
    参数格式: -H “NAME: VALUE”
    curl -H "Authorization: a112121dada" https://www.baidu.com/index.html -O

curl -fsSL

这是一个在 Linux/macOS 系统中非常常见的命令组合,通常用于下载和执行远程安装脚本。

  • -f 或 –fail:
    在服务器返回错误时(如 HTTP 404 未找到)静默失败,不显示 HTML 错误页面。
    这使得脚本在出错时能够更好地处理,而不是继续处理错误的页面内容。
  • -s 或 –silent:
    静默模式。不显示进度条或错误信息。
    这使得输出更干净,只返回实际内容,适合在脚本中使用。
  • -S 或 –show-error:
    与 -s 结合使用时,在失败时显示错误信息。
    这样既保持了静默模式,又能在出现问题时看到错误详情。
  • -L 或 –location:
    如果服务器返回重定向(如 301、302),自动跟随重定向到新的 URL。
    这对于下载经常被重定向的安装脚本非常重要。

curl -fsSL 的意思是:”安静地下载这个文件,如果服务器报错就失败并显示错误信息,如果遇到重定向就自动跟随。”
这个组合最常见于各种软件的安装脚本,例如 Docker 的安装:

1
2
curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh