在Linux中使用curl命令参数详解

栏目: 服务器 · 发布时间: 6年前

内容简介:早在20世纪90年代中期,当时互联网还处于萌芽阶段,瑞典程序员Daniel Stenberg开始了一个项目,这个项目最终发展成了我们今天所知道的curl。最初,他的目标是开发一种机器人,可以定期从网页上下载货币汇率,并向IRC用户提供等值的瑞典克朗美元。长话短说,这个项目蓬勃发展,在这个过程中添加了几个协议和特性——剩下的就是历史了。现在,让我们开始学习如何在Linux中使用curl传输数据和更多信息!

早在20世纪90年代中期,当时互联网还处于萌芽阶段,瑞典程序员Daniel Stenberg开始了一个项目,这个项目最终发展成了我们今天所知道的curl。

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

长话短说,这个项目蓬勃发展,在这个过程中添加了几个协议和特性——剩下的就是历史了。现在,让我们开始学习如何在 Linux 中使用curl传输数据和更多信息!

在Linux中使用curl命令参数详解

我们为您整理了以下13个curl命令。

1. 查看curl版本

版本选项不仅返回版本,还返回当前版本中支持的协议和特性。

linuxidc@linuxidc:~/www.linuxidc.com$ curl --version

curl 7.58.0 (x86_64-pc-linux-gnu) libcurl/7.58.0 OpenSSL/1.1.0g zlib/1.2.11 libidn2/2.0.4 libpsl/0.19.1 (+libidn2/2.0.4) nghttp2/1.30.0 librtmp/2.3

Release-Date: 2018-01-24

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 HTTP2 UnixSockets HTTPS-proxy PSL

在Linux中使用curl命令参数详解

2.下载文件

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

$ curl -O https://www.linuxidc.com/index.htm # 另存为index.htm

$ curl -o linuxidc.com.htm  https://www.linuxidc.com/index.htm # 另存为linuxidc.com.htm

实例如下:

linuxidc@linuxidc:~/www.linuxidc.com$ curl -O https://www.linuxidc.com/index.htm  % Total    % Received % Xferd  Average Speed  Time    Time    Time  Current

Dload  Upload  Total  Spent    Left  Speed

100 45530    0 45530    0    0  186k      0 --:--:-- --:--:-- --:--:--  186k

linuxidc@linuxidc:~/www.linuxidc.com$ curl -o linuxidc.com.htm  https://www.linuxidc.com/index.htm

% Total    % Received % Xferd  Average Speed  Time    Time    Time  Current

Dload  Upload  Total  Spent    Left  Speed

100 45607  100 45607    0    0  140k      0 --:--:-- --:--:-- --:--:--  139k

linuxidc@linuxidc:~/www.linuxidc.com$ ls

index.htm  linuxidc.com.htm

在Linux中使用curl命令参数详解

3.恢复中断下载

如果下载因某种原因而中断(例如,使用Ctrl + c),则可以非常轻松地恢复。 使用-C  - (破折号C,空格破折号)告诉curl从中断处继续下载。

$ curl -C - -O https://www.linuxidc.com/linuxidc.com.tar.gz

在Linux中使用curl命令参数详解

4.下载多个文件

使用以下命令,您将分别从https://www.linuxidc.com和https://m.linuxidc.com一起下载aboutus和info.htm。

$ curl -O https://www.linuxidc.com/aboutus -O https://m.linuxidc.com/info.htm

5.从文件下载URL

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

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

在Linux中使用curl命令参数详解

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

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

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

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

7.查询HTTP标头

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

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

$ curl -I https://www.linuxidc.com

在Linux中使用curl命令参数详解

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

8.使用参数发出POST请求

以下命令将firstName和lastName参数及其对应值发送到https://www.linuxidc.com/info.php。

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

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

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

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

$ curl -u username:password -O ftp://ftpserver/linuxidc.tar.gz

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

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

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

$ curl -u username:password -T wodewenjian.tar.gz ftp://ftpserver

11.存储网站Cookie

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

$ curl --cookie-jar linuxidcookies.txt https://www.linuxidc.com/index.htm -O

在Linux中使用curl命令参数详解

12.发送网站Cookie

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

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

13.限制下载率

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

$ curl --limit-rate 90K https://www.linuxidc.com/linuxidc.com.gz -O

总结

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

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

更多Linux命令相关信息见 Linux命令大全 专题页面 https://www.linuxidc.com/topicnews.aspx?tid=16

Linux公社的RSS地址https://www.linuxidc.com/rssFeed.aspx

本文永久更新链接地址: https://www.linuxidc.com/Linux/2019-01/156487.htm


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Eloquent JavaScript

Eloquent JavaScript

Marijn Haverbeke / No Starch Press / 2011-2-3 / USD 29.95

Eloquent JavaScript is a guide to JavaScript that focuses on good programming techniques rather than offering a mish-mash of cut-and-paste effects. The author teaches you how to leverage JavaScript's......一起来看看 《Eloquent JavaScript》 这本书的介绍吧!

在线进制转换器
在线进制转换器

各进制数互转换器

XML 在线格式化
XML 在线格式化

在线 XML 格式化压缩工具

RGB HSV 转换
RGB HSV 转换

RGB HSV 互转工具