掌握 curl 命令:Linux 用户指南

欢迎来到Curl的世界,这是一个多功能的命令行工具,可让您轻松地将数据传输到服务器和从服务器传输数据。无论您是开发人员、系统管理员,还是只是好奇的用户,Curl 都是您武器库中必不可少的工具。使用 Curl,您可以执行各种任务,从下载文件到测试 API 等等

terminal-linux-logo-42

什么是卷曲命令?

Curl 是一个命令行工具,用于通过各种协议将数据传输到服务器或从服务器传输数据。它是一种多功能工具,可用于通过互联网发送和接收数据,并广泛用于Linux和其他类Unix操作系统。

Curl支持多种协议,包括HTTP,HTTPS,FTP,SMTP,POP3,IMAP等。它旨在与 URL 一起使用,并可用于对它们执行各种操作,包括发送 GET 和 POST 请求、设置标头以及上传和下载文件。

安装 curl

Curl通常预装在大多数Linux发行版中,但如果没有,您可以使用发行版的包管理器安装它。例如,要在基于 Debian 的发行版(如 Ubuntu)中安装 Curl,您可以运行以下命令:

sudo apt install curl

同样,对于基于 Red Hat 的发行版(如 CentOS),您可以运行以下命令:

sudo dnf install curl

安装后,您可以开始使用 Curl 通过互联网发送和接收数据。

基本语法

curl 命令的基本语法如下:

curl [options] [URL]

下面是可用于修改 curl 命令行为的各种命令行选项,它们是要连接到的服务器的 URL。如果未指定任何选项,curl 将仅获取 URL 的内容并将其显示在命令行上。optionsURL

检索网页

要使用 curl 命令检索网页,只需提供页面的 URL 作为参数。例如,要检索 Google 的主页,您可以使用以下命令:

curl https://www.google.com

这将获取Google主页的HTML内容并将其显示在您的终端上。

将输出保存到文件

如果要将 curl 命令的输出保存到文件中,可以使用 or 选项,后跟输出文件的名称。例如,要将 Google 主页保存到名为 的文件中,可以使用以下命令:-o--outputgoogle.html

curl -o google.html https://www.google.com

这会将 Google 主页的 HTML 内容保存到名为 的文件中。google.html

向服务器发送数据

curl 还可用于使用各种 HTTP 方法(如 POST、PUT 和 DELETE)将数据发送到服务器。若要使用 POST 方法发送数据,可以使用 or 选项,后跟要发送的数据。例如,若要使用 POST 方法将数据发送到服务器,可以使用以下命令:-d--datausername=admin&password=admin12345

curl -d "username=admin&password=admin12345" https://example.com/login

这将使用 POST 方法将数据发送到 URL 处的服务器。https://your-domain.com/login

设置 HTTP 标头

您可以使用 curl 命令设置各种 HTTP 标头来修改请求的行为。若要设置 HTTP 标头,可以使用 or 选项,后跟标头名称和值。例如,若要在请求中将标头设置为 ,可以使用以下命令:-H--headerUser-AgentMozilla/5.0

curl -H "User-Agent: Mozilla/5.0" https://www.your-domain.com

以下重定向

如果服务器返回重定向响应(状态代码 3xx),则默认情况下 curl 不会遵循重定向。要启用重定向的自动跟踪,您可以使用 or 选项。例如,要在检索网页时跟踪重定向,可以使用以下命令:-L--location

curl -L https://www.your-domain.com

使用 curl 发送开机自检请求

curl 还可用于向远程服务器发送 POST 请求。下面是向远程服务器发送 POST 请求的示例命令:

curl -X POST -d "name=Meilana&age=27" https://example.com

此命令指定我们正在使用 HTTP POST 方法。 指定我们要在 POST 请求中发送的数据。 是我们向其发送 POST 请求的服务器的 URL。-X POST-"name=Meilana&age=27"https://example.com

我们还可以使用该选项在 POST 请求中设置标头。例如,要将标头设置为 ,我们可以使用以下命令:-HContent-Typeapplication/json

curl -X POST -H "Content-Type: application/json" -d '{"name": "Meilana", "age": 27}' https://example.com

使用 PUT 上传文件

curl 还可用于上传带有 HTTP PUT 请求的文件。这对于将文件传输到服务器(例如上载图像或文档)非常有用。

要使用 curl 上传文件,请使用后跟文件路径的选项:-T

curl -X PUT http://your-domain.com/upload -T ~/Documents/file.pdf

在此示例中,我们使用该方法将位于目录中的 URL 上传到 URL。file.pdf~/Documents/http://your-domain.com/uploadPUT

使用基本身份验证进行身份验证

Curl 支持 HTTP 基本身份验证,这是一种使用用户名和密码的简单身份验证方案。每个请求都会在 HTTP 标头中发送基本身份验证凭据。

若要使用基本身份验证进行身份验证,请使用后跟用冒号分隔的用户名和密码的选项:-u

curl -u username:password http://your-domain.com/protected

在此示例中,我们使用用户名和密码进行身份验证以访问 URL。usernamepasswordhttp://your-domain.com/protected

使用 SSL/TLS

curl 也可以与 SSL/TLS 加密连接一起使用。默认情况下,curl 使用系统的受信任证书颁发机构验证服务器的证书。但是,也可以使用该选项禁用证书验证(不建议用于生产用途)。-k

要使用 SSL/TLS,只需使用 URL 方案而不是 :https://http://

curl https://example.com

使用代理

curl 可以与代理服务器一起使用,方法是指定后跟代理服务器 URL 的选项:--proxy

curl --proxy http://proxy.example.com http://example.com

在此示例中,我们使用代理服务器 at 来访问 URL。http://proxy.example.comhttp://example.com

卷曲命令选项

以下是 Curl 命令选项及其说明的详细表:

选择 描述
-A, –user-agent <string> 设置自定义用户代理字符串
-b, –cookie <名称=数据> 从字符串/文件发送饼干
-c, –cookie-jar <文件名> 操作后将 cookie 写入文件
-d, –data <data> HTTP POST 数据
-e, –referer <URL> 引荐来源网址
-F, –form <名称=内容> HTTP 多部分开机自检数据
-H, –标头<标头> 要包含在请求中的额外标头
-i, –include 在输出中包含协议标头
-I, –head 仅提取标头
-k, –不安全 使用 SSL 时允许不安全的服务器连接
-L, –位置 关注重定向
-o, –输出<文件名> 将输出写入文件而不是标准输出
-o, –远程名称 将输出写入与远程文件同名的文件
-s, –silent 静音模式,不输出任何内容
-T, –上传文件<文件名> 文件中的 HTTP PUT 数据
-u, –user <user:password> 设置服务器身份验证的用户名和密码
-v, –verbose 详细模式,输出更多信息
-w, –写出<格式> 自定义输出格式
-x, –proxy <[protocol://]host[:p ort]> 使用指定的代理服务器
–证书<证书[:p assword]> 客户端证书文件和密码
–压缩 启用压缩
–连接超时<秒> 等待连接的最长时间
–消化 使用 HTTP 摘要式身份验证
–不安全的 使用 SSL 时允许不安全的服务器连接
–IPv4 仅使用 IPv4
–IPv6 仅使用 IPv6
–保持连接时间 <秒> 是时候保持连接了
–最大文件大小 <字节> 下载文件的最大大小
–最大红度 <数字> 要关注的最大重定向数
–网络 使用 .netrc 文件中的凭据
–不保持活动状态 禁用保持连接
–NTLM 使用 NTLM 身份验证
–重试 <> 失败时的重试次数
–拼接 使用安全识别系统
–TLSv1.0, –TLSv1.1, –TLSv1.2 使用指定的 TLS 版本
–用户代理<字符串> 设置自定义用户代理字符串

请务必注意,这些选项可以单独使用,也可以组合使用,以自定义和微调 Curl 命令以满足特定需求。通过掌握这些选项,用户可以在命令行上执行各种HTTP / HTTPS请求并自动执行各种与Web相关的任务。

原创文章,作者:校长,如若转载,请注明出处:https://www.yundongfang.com/Yun224660.html

(0)
打赏 微信扫一扫不于多少! 微信扫一扫不于多少! 支付宝扫一扫礼轻情意重 支付宝扫一扫礼轻情意重
上一篇 2023年3月29日
下一篇 2023年3月30日