关于如何在Linux中使用'Curl'命令的15个技巧

在本文中,我们解释了curl起源的简要历史,并解释了如何通过Linux中的15个实际示例使用curl命令。

早在1990年代中期互联网仍处于起步阶段时,一位名叫Daniel Stenberg的瑞典程序员开始了一个项目,最终成长为我们今天所知的Curl

最初,他的目标是开发一种机器人 ,可以定期从网页上下载货币汇率,并为IRC用户提供美元的瑞典克朗等价物。

长话短说,项目蓬勃发展,沿途增加了几个协议和功能 - 其余的都是历史。 现在让我们双脚深入了解如何使用curl在Linux中传输数据等等!

我们为您准备了以下15个Curl命令列表。

1.查看Curl版本

-V--version选项不仅会返回版本,还会返回当前版本中支持的协议和功能。

$ curl --version
curl 7.47.0 (x86_64-pc-linux-gnu) libcurl/7.47.0 GnuTLS/3.4.10 zlib/1.2.8 libidn/1.32 librtmp/2.3
Protocols: dict file ftp ftps gopher http https imap imaps ldap ldaps pop3 pop3s rtmp rtsp smb smbs smtp smtps telnet tftp 
Features: AsynchDNS IDN IPv6 Largefile GSS-API Kerberos SPNEGO NTLM NTLM_WB SSL libz TLS-SRP UnixSockets 

2.下载文件

如果要下载文件,可以将curl-O-o选项一起使用。 前者将使用与远程位置相同的名称将文件保存在当前工作目录中,而后者允许您指定不同的文件名和/或位置。

$ curl -O http://yourdomain.com/yourfile.tar.gz # Save as yourfile.tar.gz
$ curl -o newfile.tar.gz http://yourdomain.com/yourfile.tar.gz # Save as newfile.tar.gz

3.恢复中断下载

如果由于某种原因(例如,使用Ctrl + c )中断下载,您可以非常轻松地恢复下载。 使用-C - (破折号C,空格破折号)告诉curl从停止的地方开始继续下载。

$ curl -C - -O http://yourdomain.com/yourfile.tar.gz
使用Curl命令下载文件

使用Curl命令下载文件

4.下载多个文件

使用以下命令,您将分别从http://yoursite.comhttp://mysite.com一起下载info.htmlabout.html

$ curl -O http://yoursite.com/info.html -O http://mysite.com/about.html 

5.从文件下载URL

如果将curlxargs结合使用,则可以从文件中的URL列表中下载文件。

$ xargs -n 1 curl -O < listurls.txt
使用Curl下载多个文件

使用Curl下载多个文件

6.使用具有或不具有身份验证的代理

如果您是在proxy.yourdomain.com上监听端口8080的代理服务器,请执行此操作。

$ curl -x proxy.yourdomain.com:8080 -U user:password -O http://yourdomain.com/yourfile.tar.gz

如果您的代理不需要身份验证,您可以跳过-U user:password

7.查询HTTP标头

HTTP标头允许远程Web服务器发送有关自身的其他信息以及实际请求。 这为客户提供了有关如何处理请求的详细信息。

要查询网站的HTTP标头,请执行以下操作:

$ curl -I www.howtoing.com
Curl查询HTTP标头

Curl查询HTTP标头

您可以在浏览器的开发人员工具中找到此信息。

8.使用参数发出POST请求

以下命令将firstNamelastName参数及其对应值发送到https://yourdomain.com/info.php

$ curl --data "firstName=John&lastName=Doe" https://yourdomain.com/info.php

您可以使用此提示来模拟常规HTML表单的行为。

9.使用或不使用身份验证从FTP服务器下载文件

如果远程FTP服务器需要在ftp:// yourftpserver上进行连接,则以下命令将在当前工作目录中下载yourfile.tar.gz

$ curl -u username:password -O ftp://yourftpserver/yourfile.tar.gz 

如果FTP服务器允许匿名登录 ,您可以跳过-u username:password

10.使用或不使用身份验证将文件上载到FTP服务器

要使用curl将名为mylocalfile.tar.gz的本地文件上载ftp:// yourftpserver ,请执行以下操作:

$ curl -u username:password -T mylocalfile.tar.gz ftp://yourftpserver

11.指定用户代理

用户代理是与HTTP请求一起发送的信息的一部分。 这表示客户端用于发出请求的浏览器。 让我们看看我们当前的curl版本默认使用什么,让我们稍后将其更改为“ 我是一个新的Web浏览器 ”:

$ curl -I http://localhost --user-agent "I am a new web browser"
Curl检查用户代理

Curl检查用户代理

12.存储网站Cookie

当您浏览到https://www.cnn.com时,想要查看哪些cookie下载到您的计算机? 使用以下命令将它们保存到cnncookies.txt 然后,您可以使用cat命令查看该文件。

$ curl --cookie-jar cnncookies.txt https://www.cnn.com/index.html -O
Curl商店网站Cookie

Curl商店网站Cookie

13.发送网站Cookie

您可以在后续请求中使用上一个提示中检索到的cookie到同一站点。

$ curl --cookie cnncookies.txt https://www.cnn.com

14.修改名称解析

如果您是一名Web开发人员,并希望在推送它之前测试本地版本的yourdomain.com ,您可以将curl解析为http://www.yourdomain.com到您的localhost,如下所示:

$ curl --resolve www.yourdomain.com:80:localhost http://www.yourdomain.com/

因此,对http://www.yourdomain.com的查询将告诉curl从localhost请求该站点,而不是使用DNS或/ etc / hosts文件。

15.限制下载率

为防止Curl占用带宽,您可以将下载速率限制为100 KB / s ,如下所示。

$ curl --limit-rate 100K http://yourdomain.com/yourfile.tar.gz -O
概要

在本文中,我们分享了Curl起源的简要历史,并通过15个实际例子解释了如何使用它。

你知道我们在本文中可能遗漏的任何其他Curl命令吗? 欢迎在评论中与我们的社区分享! 此外,如果您有任何问题,请随时告诉我们。 我们期待您的回音!