欢迎来到Curl的世界,这是一个多功能的命令行工具,可让您轻松地将数据传输到服务器和从服务器传输数据。无论您是开发人员、系统管理员,还是只是好奇的用户,Curl 都是您武器库中必不可少的工具。使用 Curl,您可以执行各种任务,从下载文件到测试 API 等等
什么是卷曲命令?
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 的内容并将其显示在命令行上。options
URL
检索网页
要使用 curl 命令检索网页,只需提供页面的 URL 作为参数。例如,要检索 Google 的主页,您可以使用以下命令:
curl https://www.google.com
这将获取Google主页的HTML内容并将其显示在您的终端上。
将输出保存到文件
如果要将 curl 命令的输出保存到文件中,可以使用 or 选项,后跟输出文件的名称。例如,要将 Google 主页保存到名为 的文件中,可以使用以下命令:-o
--output
google.html
curl -o google.html https://www.google.com
这会将 Google 主页的 HTML 内容保存到名为 的文件中。google.html
向服务器发送数据
curl 还可用于使用各种 HTTP 方法(如 POST、PUT 和 DELETE)将数据发送到服务器。若要使用 POST 方法发送数据,可以使用 or 选项,后跟要发送的数据。例如,若要使用 POST 方法将数据发送到服务器,可以使用以下命令:-d
--data
username=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
--header
User-Agent
Mozilla/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
-d "name=Meilana&age=27"
https://example.com
我们还可以使用该选项在 POST 请求中设置标头。例如,要将标头设置为 ,我们可以使用以下命令:-H
Content-Type
application/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/upload
PUT
使用基本身份验证进行身份验证
Curl 支持 HTTP 基本身份验证,这是一种使用用户名和密码的简单身份验证方案。每个请求都会在 HTTP 标头中发送基本身份验证凭据。
若要使用基本身份验证进行身份验证,请使用后跟用冒号分隔的用户名和密码的选项:-u
curl -u username:password http://your-domain.com/protected
在此示例中,我们使用用户名和密码进行身份验证以访问 URL。username
password
http://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.com
http://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相关的任务。