# 什么是cURL命令以及如何使用它？

> 来源：梦飞idc云平台 | 原文：https://www.mfisp.com/18624.html | 发布：2023-03-20 | 更新：2023-03-20 | 分类：IDC云库

cURL 命令是一个重要的 Linux 工具，常用于数据传输和连接故障排除。cURL 由 libcurl 提供支持，这是一个免费的客户端 URL 传输库。

cURL 命令是一个重要的 Linux 工具，常用于数据传输和连接故障排除。cURL 由 libcurl 提供支持，这是一个免费的客户端 URL 传输库。让我们深入研究并学习如何使用它。

 

![什么是cURL命令以及如何使用它？](https://www.mfisp.com/wp-content/uploads/2022/01/2022012902430963.png)

 

## 什么是 cURL 命令？

 

cURL（客户端 URL）是一个命令行工具，它允许使用支持的 libcurl 库在没有用户交互的情况下将数据传输到服务器或从服务器传输数据。cURL 还可用于解决连接问题。

 

## 检查卷曲版本

 

就像任何Linux 命令一样，在我们开始使用 cURL 之前，我们需要登录到我们的 VPS。如果您需要帮助，请查看有关SSH 的教程。

 

首先，让我们使用以下命令检查可用的 cURL 版本：

 

```
卷曲--版本
```

 

输出将显示 cURL 版本支持的协议列表。现在我们可以看一些 cURL 命令示例

 

## 基本 cURL 命令语法

 

让我们学习如何使用 cURL 命令。cURL 的基本语法如下所示：

 

```
卷曲 [选项] [URL]
```

 

cURL 最简单的用途是显示页面内容。下面的示例将呈现testdomain.com的主页。

 

```
curl 测试域名.com
```

 

这将呈现域主页​​的完整源代码。如果没有指定协议，curl 会将其解释为 HTTP。

 

## cURL 命令文件选项

 

cURL 命令可以从远程位置下载文件。您可以通过两种不同的方式进行操作：

 
 
- -O将文件保存在当前工作目录中，文件名与远程相同。 
- -o允许您指定不同的文件名或位置 

 

一个例子如下所示：

 

```
curl -O http://testdomain.com/testfile.tar.gz
```

 

上面的命令会将其保存为testfile.tar.gz。

 

```
curl -o newtestfile.tar.gz http://testdomain.com/testfile.tar.gz
```

 

上面的命令会将其保存为newtestfile.tar.gz。

 

如果由于某种原因，下载中断，您可以使用 cURL 恢复下载。您可以使用以下命令执行此操作：

 

```
curl -C - -O http://testdomain.com/testfile.tar.gz
```

 

使用 cURL，我们还可以下载多个文件，如下所示：

 

```
curl -O http://testdomain.com/testfile.tar.gz -O http://mydomain.com/myfile.tar.gz
```

 

如果要从多个 URL 下载多个文件，请将所有文件列在一个文件中。cURL 命令可以与 xargs 结合使用以下载不同的 URL。

 

例如，如果我们有一个文件allUrls.txt，其中包含要下载的所有 URL 的列表，那么下面的示例可用于下载所有文件。

 

```
xargs –n 1 curl -O < allUrls.txt
```

 

## HTTP 的 cURL 命令

 

有代理服务器时也可以使用cURL。如果您位于 sampleproxy.com 上侦听端口 8090 的代理服务器后面，请下载如下所示的文件：

 

```
curl -x sampleproxy.com:8090 -U 用户名:密码 -O http://testdomain.com/testfile.tar.gz
```

 

在上面的示例中，如果代理不需要身份验证方法，则可以跳过-U 用户名:密码。

 

一个典型的 HTTP 请求总是包含一个标头。HTTP 标头连同实际请求一起发送有关远程 Web 服务器的附加信息。虽然您可以通过浏览器的开发人员工具检查标头信息，但您可以使用 cURL 命令对其进行验证。

 

下面是如何从网站检索标头信息的示例。

 

```
curl -I www.testdomain.com
```

 

使用 cURL，您可以发出GET和POST请求。GET请求将如下所示：

 

```
卷曲 http://mydomain.com
```

 

POST请求的示例如下所示：

 

```
curl –data “text=Hello” https://myDomain.com/firstPage.jsp
```

 

这里的text=Hello是POST请求参数。此行为类似于 HTML 表单。

 

您还可以在单​​个 cURL 命令中指定多个 HTTP 方法。通过使用–next选项来执行此操作，如下所示：

 

```
curl –data “text=Hello” https://myDomain.com/firstPage.jsp --next https://myDomain.com/displayResult.jsp
```

 

这包含一个 POST 请求，后跟一个 GET 请求。

 

每个 HTTP 请求都会有一个作为请求的一部分发送的用户代理。这表示客户端的 Web 浏览器详细信息。默认情况下，cURL 请求包含 curl 和版本号作为用户代理详细信息。示例输出如下所示：

 

```
“GET / HTTP/1.1” 200 “_” “curl/7/29/0”
```

 

您可以使用以下命令更改此默认用户代理信息：

 

```
curl -I http://mydomain.com –-user-agent “我的新浏览器”
```

 

现在更改后的输出将是：

 

```
“GET / HTTP/1.1” 200 “_” “我的新浏览器”
```

 

## Cookie 的卷曲

 

cURL 命令可用于检查在任何 URL 上下载了哪些 cookie。因此，如果您正在访问https://www.samplewebsite.com，那么您可以输出到一个文件，保存 cookie 并使用 cat 或 VIM 编辑器访问它们。

 

以下是此类命令的示例：

 

```
curl --cookie-jar Mycookies.txt https://www.samplewebsite.com /index.html -O
```

 

同样，如果您在文件中有 cookie，则可以将其发送到网站。此类命令的示例如下所示：

 

```
curl --cookie Mycookies.txt https://www. 示例网站.com
```

 

## 用于 FTP 的 cURL

 

cURL 命令支持 FTP！您可以使用它们从远程服务器下载文件。

 

```
curl -u 用户名:密码 -O ftp://sampleftpserver/testfile.tar.gz
```

 

在上面的命令中，ftp://sampleftpserver是一个接受连接的 FTP 服务器。对于匿名 FTP 连接，可以跳过用户名和密码。输入命令并观察进度条填满。

 

您也可以使用以下命令上传文件：

 

```
curl -u 用户名:密码 -T testfile.tar.gz ftp://sampleftpserver
```

 

同样，我们可以跳过匿名 FTP 连接的用户名和密码。

 

## 限制 cURL 输出

 

使用 cURL 时，您无法知道输出有多大。您可以限制带宽，以确保它不受 cURL 限制。

 

以下命令将带宽限制为 100K：

 

```
curl --limit-rate 100K http://testdomain.com/samplefile.tar.gz -O
```

 

## 结论

 

cURL 是一个功能强大且使用广泛的命令。当您依赖命令行时它很有用。它有多种选择并支持多种协议。这是学习这个命令的一个很好的理由！

---
本页由 梦飞idc云平台（https://www.mfisp.com）提供。站点导航见 https://www.mfisp.com/llms.txt
