Linux 中的 cURL 命令及其 30 个实例

Linux 中的 cURL 命令是一个功能强大的工具,可使用各种协议(包括 HTTP、HTTPS、FTP 等)将数据传入或传出服务器。它通常用于自动执行 Web 请求、测试 API 以及从互联网下载文件。cURL 功能多样,可处理各种任务,从简单的文件下载到复杂的多部分表单提交。

在本指南中,我们将探讨在 Linux 中使用 cURL 命令的 30 个实际示例。这些示例将涵盖常见用例,例如下载文件、向 API 发送数据、处理身份验证等,展示 cURL 在各种任务中的灵活性和强大功能。

cURL 命令的语法

在我们继续使用 cURL 命令演示 30 个示例之前,最好先了解其语法:

curl [options] [URL]

在此语法中:

  • 选项:这些是修改 cURL 行为的参数。
  • URL:这是您想要交互的文件或资源的地址。

cURL 命令选项

cURL 提供了许多选项,可让您自定义其行为。以下是一些最常用的选项:

  • -O:从指定的 URL 下载文件。
  • -I:从服务器获取 HTTP 标头。
  • -u:指定服务器身份验证的用户凭据。
  • -d:以POST请求的方式向服务器发送指定的数据。
  • -x:指定用于请求的代理地址。

Linux 中 30 个 cURL 命令示例

现在,让我们深入研究一些使用 cURL 命令的实际示例。每个示例前面都会有说明,后面会演示输出。

示例 1:从 URL 获取数据

cURL 的最基本用途是获取网页内容。具体操作如下:

curl https://www.example.com

此命令获取 www.example.com 网页的 HTML 内容。

示例 2:下载文件

cURL 还可用于从互联网下载文件。以下是示例:

curl -O https://www.example.com/file.txt

此命令从 www.example.com 下载文件 file.txt 并将其保存在当前目录中。

示例 3:发送 POST 请求

您可以使用 cURL 向服务器发送 POST 请求。操作方法如下:

curl -d "param1=value1&param2=value2" -X POST http://www.example.com

此命令向 www.example.com 发送 HTTP POST 请求,数据为 param1=value1¶m2=value2。

示例 4:获取 HTTP 标头

如果要从服务器获取 HTTP 标头,可以使用 -I 选项。以下是示例:

curl -I https://www.example.com

此命令从 www.example.com 获取 HTTP 标头。

示例 5:使用代理

如果需要使用代理,请使用 -x 选项指定。操作方法如下:

curl -x http://proxy.example.com:8080 https://www.example.com

此命令通过代理 proxy.example.com:8080 将请求发送到 www.example.com。

示例 6:发送 Cookies

您可以使用 -b 选项随请求一起发送 cookie。以下是示例:

curl -b "name=value" https://www.example.com

此命令向www.example.com发送一个name=value的cookie。

示例 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

此命令向 www.example.com 发送包含 JSON 数据的 POST 请求。

示例 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

此命令向 www.example.com/resource 发送包含数据“data”的 PUT 请求。

示例 25:获取响应头

要仅获取响应头,请使用 -I 选项:

curl -I https://www.example.com

此命令仅从 www.example.com 获取响应标头。

示例 26:使用 Cookies 从网站获取内容

要从带有 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 为您的命令行工具包带来的多功能性和效率。

Joshua James
跟我来
Joshua James 的最新帖子 (查看全部)

发表评论