Linux中使用“Curl” 命令

curl命令 是一个利用URL规则在命令行下工作的文件传输工具。它支持文件的上传和下载,所以是综合传输工具,但按传统,习惯称curl为下载工具。作为一款强力工具,curl支持包括HTTP、HTTPS、ftp等众多协议,还支持POST、cookies、认证、从指定偏移处下载部分文件、用户代理字符串、限速、文件大小、进度条等功能,以下为大家一一演示具体的命令参数。

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

2.下载文件

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

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

3.恢复中断的下载

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

$ curl -C - -O http://域名.com/yourfile.tar.gz

4.下载多个文件

使用以下命令,您将从下载info.html和
about.htmlhttp://yoursite.com和http://mysite.com一次到位。

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

5.从文件下载URL

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

$ xargs -n 1 curl -O < listurls.txt

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

如果您在proxy.域名.com的8080端口上监听代理服务器,请执行。

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

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

7.查询HTTP头

HTTP头允许远程web服务器在发送实际请求的同时发送有关其自身的附加信息。这为客户端提供了有关如何处理请求的详细信息。要从网站查询HTTP标头,请执行以下操作:

$ curl -I www.abc.com

8.使用参数发出POST请求

以下命令将firstName和lastName参数及其相应的值发送到https://域名.com/info.php.

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

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

如果远程FTP服务器期望在ftp://yourftpserver,以下命令将在当前工作目录中下载您的file.tar.gz。

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

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

10.将文件上传到FTP服务器,无论是否进行身份验证

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

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

11.指定用户代理

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

$ curl -I http://localhost --user-agent "I am a new web browser"

12.商店网站Cookie

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

$ curl --cookie-jar cnncookies.txt https://www.cnn.com/index.html -O

13.发送网站Cookie

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

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

14.修改名称解析

如果你是一名网络开发人员,并且想在上线之前测试本地版本的域名.com,你可以做出curl解析http://www.域名.com 到您的本地主机,如下所示:

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

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

15.限制下载速率

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

$ curl --limit-rate 100K http://域名.com/yourfile.tar.gz -O
posted @ 2023-08-15 17:10  寻梦99  阅读(1047)  评论(0)    收藏  举报