cURL 命令是一个重要的 Linux 工具,常用于数据传输和连接故障排除。cURL 由 libcurl 提供支持,这是一个免费的客户端 URL 传输库。让我们深入研究并学习如何使用它。
检查卷曲版本
就像任何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 是一个功能强大且使用广泛的命令。当您依赖命令行时它很有用。它有多种选择并支持多种协议。这是学习这个命令的一个很好的理由!