掌握 curl 命令:Linux 用户指南

2023年 7月 20日 70.5k 0

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

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

相关文章

服务器端口转发,带你了解服务器端口转发
服务器开放端口,服务器开放端口的步骤
产品推荐:7月受欢迎AI容器镜像来了,有Qwen系列大模型镜像
如何使用 WinGet 下载 Microsoft Store 应用
百度搜索:蓝易云 – 熟悉ubuntu apt-get命令详解
百度搜索:蓝易云 – 域名解析成功但ping不通解决方案

发布评论