Linux 中的 cURL 命令是一个强大的工具,用于使用各种协议(包括 HTTP、HTTPS、FTP 等)向服务器传输数据或从服务器传输数据。它通常用于自动化 Web 请求、测试 API 以及从 Internet 下载文件。 cURL 用途广泛,可以处理各种任务,从简单的文件下载到复杂的多部分表单提交。
在本指南中,我们将探讨 30 个在 Linux 中使用 cURL 命令的实际示例。这些示例将涵盖常见的用例,例如下载文件、向 API 发送数据、处理身份验证等,展示 cURL 对于各种任务的灵活性和强大功能。
在我们继续使用 cURL 命令演示 30 个示例之前,最好先了解其语法:
curl [options] [URL]
在这个语法中:
- options:这些是修改 cURL 行为的参数。
- URL:这是您要与之交互的文件或资源的地址。
cURL 命令选项
cURL 提供了许多选项,允许您自定义其行为。以下是一些最常用的选项:
- -O:从指定的 URL 下载文件。
- -I:从服务器获取 HTTP 标头。
- -u:指定服务器身份验证的用户凭据。
- -d:将POST请求中指定的数据发送到服务器。
- -x:指定用于请求的代理地址。
Linux 中 cURL 命令的 30 个示例
现在,让我们深入研究一些使用 cURL 命令的实际示例。每个示例都会以解释开头,然后是输出演示。
示例 1:从 URL 获取数据
cURL 最基本的用途是获取网页内容。您可以这样做:
curl https://www.example.com
此命令获取 www.example.com 网页的 HTML 内容。
示例 2:下载文件
cURL 还可用于从 Internet 下载文件。这是一个例子:
curl -O https://www.example.com/file.txt
此命令从 www.example.com 下载文件 file.txt 并将其保存在当前目录中。
示例 3:发送 POST 请求
您可以使用 cURL 将 POST 请求发送到服务器。方法如下:
curl -d "param1=value1¶m2=value2" -X POST https://www.example.com
此命令使用数据 param1=value1¶m2=value2 向 www.example.com 发送 HTTP POST 请求。
示例 4:获取 HTTP 标头
如果要从服务器获取 HTTP 标头,可以使用 -I 选项。这是一个例子:
curl -I https://www.example.com
此命令从 www.example.com 获取 HTTP 标头。
示例 5:使用代理
如果需要使用代理,请使用 -x 选项指定。方法如下:
curl -x https://proxy.example.com:8080 https://www.example.com
此命令通过位于 proxy.example.com:8080 的代理将请求发送到 www.example.com。
示例 6:发送 Cookie
您可以使用 -b 选项将 cookie 与您的请求一起发送。这是一个例子:
curl -b "name=value" https://www.example.com
此命令将名称=值的 cookie 发送到 www.example.com。
示例 7:发送用户代理
网站通常使用用户代理来提供适合客户端浏览器的内容。要向用户代理发送您的请求,请使用 -A 选项:
curl -A "Mozilla/5.0" https://www.example.com
此命令向 www.example.com 发送请求,并将用户代理设置为 Mozilla/5.0。
示例 8:遵循重定向
某些 URL 重定向到其他 URL。要遵循这些重定向,请使用 -L 选项:
curl -L https://www.example.com
此命令遵循来自 www.example.com 的任何重定向。
示例 9:将输出保存到文件
要将 cURL 命令的输出保存到文件中,请使用 -o 选项:
curl -o output.html https://www.example.com
此命令将 www.example.com 的输出保存到 output.html。
示例10:使用FTP上传文件
cURL 可以使用 FTP 将文件上传到服务器。方法如下:
curl -T file.txt ftp://ftp.example.com --user username:password
此命令使用提供的用户名和密码将 file.txt 上传到 ftp.example.com。
示例 11:恢复下载
如果下载中断,您可以使用 -C – 选项恢复下载:
curl -C - -O https://www.example.com/file.txt
此命令恢复从 www.example.com 下载 file.txt。
示例 12:下载多个文件
要下载多个文件,请指定多个 URL:
curl -O https://www.example.com/file1.txt -O https://www.example.com/file2.txt
此命令从 www.example.com 下载 file1.txt 和 file2.txt。
示例 13:发送 DELETE 请求
要发送 DELETE 请求,请使用 -X DELETE 选项:
curl -X DELETE https://www.example.com/resource
此命令向 URL www.example.com/resource 发送 DELETE 请求。
示例 14:详细输出
有关请求和响应的详细信息,请使用 -v 选项:
curl -v https://www.example.com
此命令为 www.example.com 的请求提供详细输出。
示例 15:静默模式
要禁止显示进度表和错误消息,请使用 -s 选项:
curl -s https://www.example.com
此命令以静默模式获取 www.example.com 的内容。
示例 16:显示下载进度
要以更易读的格式显示下载进度,请使用 # 选项:
curl -# -O https://www.example.com/file.txt
此命令从 www.example.com 下载 file.txt 并将进度显示为进度条。
示例 17:发送 JSON 数据
要在 POST 请求中发送 JSON 数据,请使用 -H 选项设置内容类型:
curl -d '{"key1":"value1", "key2":"value2"}' -H "Content-Type: application/json" -X POST https://www.example.com
此命令将包含 JSON 数据的 POST 请求发送到 www.example.com。
示例 18:将 cURL 与 API 结合使用
cURL 通常用于与 API 交互。这是一个例子:
curl -H "Authorization: Bearer YOUR_TOKEN" https://api.example.com
此命令向 https://api.example.com 发送带有授权标头的请求。
示例 19:在后台下载文件
要在后台下载文件,请使用 -O 选项并在末尾添加“&”号:
curl -O https://www.example.com/file.txt &
此命令在后台从 www.example.com 下载 file.txt。
示例 20:从文件发送数据
要在 POST 请求中从文件发送数据,请使用 @ 符号:
curl -d @data.txt -X POST https://www.example.com
此命令将包含 data.txt 中的数据的 POST 请求发送到 www.example.com。
示例 21:从 FTP 服务器获取内容
cURL 可用于从 FTP 服务器获取内容。方法如下:
curl ftp://ftp.example.com/file.txt --user username:password
此命令使用提供的用户名和密码从 ftp.example.com 获取 file.txt。
示例 22:从受密码保护的网站获取内容
要从受密码保护的网站获取内容,请使用 -u 选项:
curl -u username:password https://www.example.com
此命令使用提供的用户名和密码从 www.example.com 获取内容。
示例 23:使用 SSL 从网站获取内容
要使用 SSL 从网站获取内容,请使用 -k 选项:
curl -k https://www.example.com
此命令从 www.example.com 获取内容,忽略任何 SSL 证书警告。
示例 24:发送 PUT 请求
要发送 PUT 请求,请使用 -X PUT 选项:
curl -X PUT -d "data" https://www.example.com/resource
此命令将带有数据“data”的 PUT 请求发送到 www.example.com/resource。
示例 25:获取响应标头
要仅获取响应标头,请使用 -I 选项:
curl -I https://www.example.com
此命令仅从 www.example.com 获取响应标头。
示例 26:使用 Cookie 从网站获取内容
要从带有 cookie 的网站获取内容,请使用 -b 选项:
curl -b cookies.txt https://www.example.com
此命令使用 cookies.txt 中存储的 cookie 从 www.example.com 获取内容。
示例 27:从具有自定义标头的网站获取内容
要从具有自定义标头的网站获取内容,请使用 -H 选项:
curl -H "Custom-Header: Value" https://www.example.com
示例 28:从超时的网站获取内容
要从超时的网站获取内容,请使用 -m 选项:
curl -m 10 https://www.example.com
此命令从 www.example.com 获取内容,超时时间为 10 秒。
示例 29:以详细模式从网站获取内容
要以详细模式从网站获取内容,请使用 -v 选项:
curl -v https://www.example.com
此命令以详细模式从 www.example.com 获取内容,显示有关请求和响应的详细信息。
示例 30:从网站获取内容并显示进度表
要从网站获取内容并显示进度表,请使用 -# 选项:
curl -# https://www.example.com
此命令从 www.example.com 获取内容并显示进度表。
结论
通过这些实际示例掌握 cURL 命令可以显着增强您与 Web 服务交互、自动化数据传输和解决网络问题的能力。定期练习不同的 cURL 选项和命令将加深您的理解,并使您能够在 Linux 工作流程中充分发挥其潜力。享受 cURL 为您的命令行工具包带来的多功能性和效率。