亚马逊云科技

广告

安信SSL证书

广告

什么是Curl命令?Linux Curl命令详解

美国云服务器推荐

什么是Curl命令?Curl 是命令行实用程序,用于将数据从服务器传输到服务器,以便在没有用户交互的情况下工作。使用Curl,您可以使用支持的协议之一下载或上传数据,包括HTTP,HTTPS,SCP,SFTP和FTP。Curl提供了许多选项,允许您恢复传输,限制带宽,代理支持,用户身份验证等等,本文为大家整理汇总了Linux Curl命令详解。

一、安装Curl

Curl软件包已预先安装在大多数Linux发行版上。

要检查系统上是否安装了Curl,请打开控制台,键入Curl,然后按Enter键。如果你安装了Curl,系统会打印Curl: try 'Curl --help' or 'Curl --manual' for more information,否则你会看到类似的东西Curl command not found

如果没有安装Curl,您可以使用发行版的软件包管理器轻松安装它。

1、在Ubuntu和Debian上安装Curl

sudo apt install Curl

2、在CentOS和Fedora上安装Curl

sudo yum install Curl

二、如何使用卷曲

Curl命令的语法如下:

Curl [options] [URL...]
  • options– 以一个或两个破折号开头的Curl选项。
  • URL – 远程服务器的URL

在没有任何选项的情况下使用时,Curl将以最简单的形式显示[url]中指定的资源到标准输出。

在以下示例中,我们将检索example.com主页:

Curl example.com

上面的命令将example.com在终端窗口中打印主页的源代码。如果你没有指定协议Curl将尝试猜测你想要使用的协议,它将默认为HTTP。

三、如何将Curl输出保存到文件

要保存Curl命令的结果,可以使用-o-O选项。

小写-o使用预定义的文件名保存文件,在下面的示例中为vue-v2.5.16.js

Curl -o vue-v2.5.16.js https://cdn.jsdelivr.net/npm/vue/dist/vue.js

大写-O将使用其原始文件名保存文件:

Curl -O https://cdn.jsdelivr.net/npm/vue/dist/vue.js

四、如何使用Curl下载多个文件

要一次下载多个文件,请使用多个-O标志,然后使用要下载的文件的URL。在以下示例中,我们将下载Arch Linux和Debian iso文件:

Curl -O http://mirrors.edge.kernel.org/archlinux/iso/2018.06.01/archlinux-2018.06.01-x86_64.iso  \
-O https://cdimage.debian.org/debian-cd/current/amd64/iso-cd/debian-9.4.0-amd64-netinst.iso

五、如何使用Curl实现继续下载

您可以使用该-C -选项继续下载。如果您的连接在下载大文件时丢失,而不是从头开始下载,则可以继续前一个。

例如,如果使用以下命令下载Ubuntu 18.04 iso文件:

Curl -O http://releases.ubuntu.com/18.04/ubuntu-18.04-live-server-amd64.iso
Curl -C -O http://releases.ubuntu.com/18.04/ubuntu-18.04-live-server-amd64.iso

六、使用Curl获取URL的HTTP标头

HTTP标头是冒号分隔的键值对,包含用户代理,内容类型和编码等信息。使用请求或响应在客户端和服务器之间传递标头。

-I选项允许您仅获取指定资源的HTTP标头:

Curl -I --http2 https://www.baidu.com/

输出:

HTTP/1.1 200 OK
Accept-Ranges: bytes
Cache-Control: private, no-cache, no-store, proxy-revalidate, no-transform
Connection: keep-alive
Content-Length: 277
Content-Type: text/html
Date: Sat, 14 Sep 2019 04:14:07 GMT
Etag: "575e1f60-115"
Last-Modified: Mon, 13 Jun 2016 02:50:08 GMT
Pragma: no-cache
Server: bfe/1.0.8.18

七、如何测试网站是否支持带Curl的HTTP/2

要检查特定URL是否支持新的

HTTP/2

协议,请-I使用以下--http2选项获取HTTP标头:

Curl -I --http2 -s https://linuxize.com/ | grep HTTP

-s选项告诉Curl在静默(安静)中运行并隐藏进度表和错误消息。

如果远程服务器支持HTTP/2,则会打印Curl HTTP/2.0 200

输出:

HTTP/2 200

否则响应将为HTTP/1.1 200L.

HTTP/1.1 200 OK

如果您有Curl版本7.47.0或更新版本,则不需要使用该--http2选项,因为默认情况下为所有HTTPS连接启用HTTP/2

八、如何使用Curl跟踪重定向

如果您尝试检索baidu.com主页,则不会www发现以下情况:

<html>
<meta http-equiv="refresh" content="0;url=http://www.baidu.com/">
</html>

正如您从上面的输出中看到的baidu.com重定向到www版本,并且因为默认情况下Curl不遵循HTTP Location标头,因此您无法获得Baidu主页的来源。

-L其指示Curl的选择遵循任何重定向,直到到达最终目的地:

Curl -L baidu.com

九、如何更改Curl User-Agent

有时在下载文件时,可以将远程服务器设置为阻止Curl User-Agent,或者页面根据访问者设备和浏览器提供完全不同的内容。

在这种情况下,您可以使用-A如下所示的选项模拟其他浏览器:

Curl -A "Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Firefox/60.0" https://getfedora.org/

上面的命令将模拟Firefox 60请求页面 getfedora.org

十、如何指定最大传输速率

--limit-rate选项允许您限制数据传输速率。该值可以用字节表示,带k后缀的千字节,带后缀的兆字节和带m后缀的千兆字节g

在以下示例中,Curl将下载Go二进制文件并将下载速度限制为1mb:

Curl --limit-rate 1m -O https://dl.google.com/go/go1.10.3.linux-amd64.tar.gz

当您不希望Curl占用所有可用带宽时,此选项很有用。

十一、如何通过FTP使用Curl传输文件

要使用该Curl命令访问受保护的FTP服务器,请使用该-u选项并指定用户名和密码,如下所示:

Curl -u FTP_USERNAME:FTP_PASSWORD ftp://ftp.example.com/

该命令将列出用户主目录中的所有文件和目录。

您可以从FTP服务器下载文件:

Curl -u FTP_USERNAME:FTP_PASSWORD ftp://ftp.example.com/file.tar.gz

要将文件上载到FTP服务器,请使用-T后跟要上载的文件的名称:

Curl -T newfile.tar.gz -u FTP_USERNAME:FTP_PASSWORD ftp://ftp.example.com/

十二、如何发送Curl cookie

使用Curl发出请求时,默认情况下不会发送或存储任何cookie。有时,您可能需要使用特定cookie发出HTTP请求以访问远程资源或调试问题。

要将cookie发送到服务器,请使用-b开关,后跟包含cookie或字符串的文件名。

例如,要下载Oracle Java JDK rpm文件, jdk-10.0.2_linux-x64_bin.rpm您需要传递一个名为oraclelicensevalue 的 cookie:

Curl -L -b "oraclelicense=a" -O http://download.oracle.com/otn-pub/java/jdk/10.0.2+13/19aef61b3812

(本文由美国主机侦探原创,转载请注明出处“美国主机侦探”和原文地址!)

主机侦探企业微信

微信扫码加好友进群

主机优惠码及时掌握

主机侦探QQ群

QQ群号:938255063

主机优惠发布与交流

温馨提示:

1、本站部分图片来源于互联网,如有侵权请联系删除。邮箱:2942802716#qq.com(#改为@)

2、本文评论没有专人回复,如果您有问题请到美国主机侦探论坛提问!

3、美国主机侦探免费为您提供美国主机购买咨询。

RAKsmart美国服务器
返回顶部