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

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

内容简介:早在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


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

查看所有标签

猜你喜欢:

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

Java程序设计

Java程序设计

宋中山 严千钧 等编 / 清华大学出版社 / 2005-8 / 27.00元

本书全面、系统地介绍了Java语言的基本概念、基本语法和编程方法。主要内容包括:Java语言概述、数据类型与运算符、流程控制语句、类与对象、继承与多态、异常处理、工具类和算法、Applet小应用程序、图形用户界面、输入和输出、Java多线程以及Java高级编程。每章后面附有习题,读者可参考使用。 本书内容丰富,结构合理,语言简洁,深入浅出,通俗易懂。基础知识与程序实例相结合,示例典型......一起来看看 《Java程序设计》 这本书的介绍吧!

HTML 编码/解码
HTML 编码/解码

HTML 编码/解码

UNIX 时间戳转换
UNIX 时间戳转换

UNIX 时间戳转换

HEX CMYK 转换工具
HEX CMYK 转换工具

HEX CMYK 互转工具