Linux curl 命令教程:实用技巧大集合 🌐
curl
是一个非常强大的命令行工具,广泛用于与 URL 进行交互,支持各种协议,如 HTTP、HTTPS、FTP 等。无论是下载文件、测试 API,还是获取网页内容,curl
都是 Linux 系统中的必备工具之一。🚀
本教程将聚焦于一些实用的 curl
命令技巧,帮助你提升工作效率。快来学习吧!🤓
1. 基本语法
curl [options] [URL]
curl
命令通过指定不同的选项来控制如何与 URL 进行交互。最常见的用法是获取某个 URL 的内容。
示例:
curl https://www.example.com
这将会显示网页的 HTML 源代码。
2. 常见实用技巧 🎯
2.1 下载文件 🎉
通过 curl
下载文件非常简单。只需使用 -O
或 -o
选项指定文件名即可。
-O
:直接使用 URL 中的文件名保存文件。-o
:为下载的文件指定自定义文件名。
curl -O https://www.example.com/file.zip
下载后,文件名会与 URL 中的文件名相同。若要指定文件名:
curl -o myfile.zip https://www.example.com/file.zip
2.2 测试 API 请求 🔥
curl
是测试 REST API 请求的利器。你可以轻松地发送 GET
、POST
等请求,并查看响应内容。
GET
请求(默认):
curl https://api.example.com/resource
POST
请求:
curl -X POST https://api.example.com/resource -d '{"key":"value"}' -H "Content-Type: application/json"
- 添加自定义头部:
curl -H "Authorization: Bearer YOUR_TOKEN" https://api.example.com/resource
2.3 获取响应头部 🏷️
要查看 HTTP 响应头部,使用 -I
选项。
curl -I https://www.example.com
你将看到类似下面的 HTTP 响应头部信息:
HTTP/1.1 200 OK
Date: Thu, 14 Oct 2024 18:00:00 GMT
Server: Apache
Content-Type: text/html; charset=UTF-8
这对于调试和获取服 务器信息非常有用。
2.4 跟踪重定向 🌍
某些 URL 会将你重定向到另一个 URL。如果你想查看整个重定向过程,可以使用 -L
选项来跟踪重定向。
curl -L https://www.example.com
这样,curl
会自动遵循服务器的重定向指令,直到最终到达目标页面。
2.5 设置请求超时 ⏳
curl
默认会等待服务器的响应。如果你希望设置请求的超时时间,可以使用 --max-time
选项。
curl --max-time 10 https://www.example.com
这表示如果 10 秒内没有收到服务器响应,curl
会自动停止请求。
2.6 上传文件 📤
使用 curl
上传文件也非常简单。通过 -F
选项可以模拟表单上传。
curl -F "file=@/path/to/file" https://www.example.com/upload
这样就能将文件上传到指定的 URL。如果你需要模拟 multipart/form-data
表单上传,curl
会自动处理。
2.7 使用代理 🕵️♂️
如果你需要通过代理服务器发送请求,可以使用 -x
选项指定代理服务器。
curl -x http://proxy.example.com:8080 https://www.example.com
通过这种方式,你可以通过指定的 HTTP 或 SOCKS 代理发送请求。
2.8 验证 SSL 证书 🔒
如果你想忽略 SSL 证书验证(例如在开发环境中),可以使用 -k
或 --insecure
选项。
curl -k https://example.com
不过,注意:不要在生产环境中使用该选项,它会让你的连接不再安全。
2.9 下载多个文件 📥
如果你要下载多个文件,可以通过将多个 URL 放在一个文件中,然后通过 -K
选项来批量下载。
- 创建一个 URL 列表文件:
echo "https://www.example1.com/file1.zip" > urls.txt
echo "https://www.example2.com/file2.zip" >> urls.txt
- 使用
curl
下载:
curl -K urls.txt
2.10 显示进度条 🚧
curl
默认会显示下载进度条,但你也可以通过 -#
选项指定其他类型的进度显示。
curl -# -O https://www.example.com/file.zip
进度条会以 #
显示下载进度。