一句话定位
curl 是一个命令行工具,用来让电脑向互联网发送请求、下载文件或上传数据。它的名字来自"client URL",就是帮你在终端里跟网页打交道的。
它是什么
想象一下,浏览器(比如 Chrome)是你访问网页的图形界面。curl 则是浏览器的命令行版本——没有按钮、没有地址栏,全靠输入命令来工作。
它支持 HTTP、HTTPS、FTP、SFTP、SMTP 等几十种协议。几乎所有 Linux 发行版和 macOS 都预装了 curl,Windows 用户也能轻松安装。
curl 诞生于 1997 年,作者 Daniel Stenberg 至今仍在维护。它是开源项目,全球数百万开发者在使用。
有什么用
日常场景:
- 下载文件:
curl -O https://example.com/file.zip - 查看网页内容:
curl https://example.com - 测试 API 接口是否正常工作
- 上传文件到服务器
- 检查某个网站是否存活
开发者场景:
- 调试 REST API,替代 Postman
- 自动化脚本中发起网络请求
- 批量下载资源
- 模拟各种 HTTP 请求(GET、POST、PUT、DELETE)
说句实在话,会了 curl,你就不需要那么多 GUI 工具了。
怎么用
1. 最基本的 GET 请求
curl https://www.example.com
这行命令会把 example.com 的 HTML 页面内容打印到屏幕上。如果你只想看响应头(不包含页面内容),加 -I:
curl -I https://www.example.com
2. 保存下载的文件
curl -O https://example.com/photo.jpg
-O 表示"按原文件名保存到本地"。如果指定文件名用 -o:
curl -o my-photo.jpg https://example.com/photo.jpg
3. 发送 POST 请求
很多 API 需要你发 POST 请求,比如提交表单数据:
curl -X POST https://api.example.com/users \
-H "Content-Type: application/json" \
-d '{"name": "张三", "age": 25}'
-X POST 指定请求方法,-H 添加请求头,-d 发送数据体。
4. 带认证请求
curl -u username:password https://api.example.com/data
或者用 Bearer Token:
curl -H "Authorization: Bearer your-token-here" https://api.example.com/protected
5. 常用参数速查
| 参数 | 作用 |
|---|---|
-v | 显示详细请求过程,调试神器 |
-s | 静默模式,不显示进度条 |
-L | 自动跟随重定向 |
-w "%{http_code}" | 只显示 HTTP 状态码 |
--connect-timeout 10 | 连接超时 10 秒 |
-A "MyApp/1.0" | 自定义 User-Agent |
一个实用小技巧
很多人不知道 curl 可以直接格式化 JSON 输出。配合 Python 一行搞定:
curl -s https://api.example.com/data | python3 -m json.tool
这样返回的 JSON 就会 nicely 缩进排版,看起来舒服多了。
总结
curl 就像命令行的万能插头——不管你要下载文件、调 API、还是检查网站状态,它都能搞定。学会这几个常用命令,日常开发效率至少提升一倍。
下次调试接口的时候,试试关掉 Postman,直接用 curl。你会发现命令行其实没那么可怕。
你平时用 curl 最多的场景是什么?留言区聊聊。