linux中curl命令怎么使用,linux curl命令详解,Linux下命令行cURL的10种常见用法示例

linux中curl命令怎么使用,linux curl命令详解,Linux下命令行cURL的10种常见用法示例

CURL的命令行工具非常强大,这些数据交互的功能基本都是通过URL进行的。下面这篇文章主要分享了Linux中命令行curl的10个常见用法示例,通过示例代码非常详细的介绍。有需要的人来看看吧。

前言

在Linux中,curl是一个文件传输工具,它通过使用url规则在命令行下工作。可以说是非常强大的http命令行工具。它支持文件的上传和下载,是一个综合性的传输工具,但传统上习惯把url称为下载工具。

语法:# curl[选项] [url]

本文主要和大家分享Linux命令行cURL的10种常见用法,供大家参考。我们来看看详细介绍:

1. 获取页面内容

当我们在没有任何选项的情况下使用curl时,默认情况下我们会发送一个GET请求来将链接的内容输出到标准输出。

科尔http://www.codebelief.com

2. 显示 HTTP 头

如果我们只想显示HTTP头,而不是文件内容,我们可以使用-I选项:

http://www.codebelief.com卷一

输出是:

HTTP/1.1 200没问题

服务器:nginx/1.10.3

日期:2017年5月11日星期四08:24:45 GMT

内容类型:文本/html;charset=utf-8

内容长度:24206

连接:保持活动

x-power-By:Express

Cache-Control: public,max-age=0

ETag:W/' 5e8e-yw5zdnvvly 9/aenmx 7 fvxq '

变化:接受-编码

还可以同时显示HTTP头和文件内容。使用-i选项:

http://www.codebelief.com卷一

输出是:

HTTP/1.1 200没问题

服务器:nginx/1.10.3

日期:2017年5月11日星期四08:25:46 GMT

内容类型:文本/html;charset=utf-8

内容长度:24206

连接:保持活动

x-power-By:Express

Cache-Control: public,max-age=0

ETag:W/' 5e8e-yw5zdnvvly 9/aenmx 7 fvxq '

变化:接受-编码

!文档类型html

html lang='en '

.

/html

3. 将链接保存到文件

我们可以使用符号将输出重定向到本地文件。

科尔http://www.codebelief.com index.html

还可以通过curl自带的-o/-O选项将内容保存到文件中。

-o(小写o):结果将保存到命令行中提供的文件名。

-O(大写O):URL中的文件名将用作保存输出的文件名。

科尔-奥index.htmlhttp://www.codebelief.com

科尔-奥http://www.codebelief.com/page/2/

注意:使用-O选项时,必须确保文件名包含在链接的末尾,否则curl无法正确保存文件。如果链接中没有文件名,您应该

使用-o选项手动指定文件名,或者使用重定向符号。

4. 同时下载多个文件

我们可以使用-o或-O选项同时指定多个链接,并按以下格式编写命令:

科尔-http://www.codebelief.com/page/2/-http://www.codebelief.com/page/3/

或者:

科尔-page1.htmlhttp://www.codebelief.com/page/1/-page2.htmlhttp://www.codebelief.com/page/2/

5. 使用 -L 跟随链接重定向

如果直接用curl打开一些重定向的链接,这种情况下我们无法获得想要的网页内容。例如:

科尔http://codebelief.com

您将得到以下提示:

超文本标记语言

标题301永久移动/标题/标题

body bgcolor='white '

中心h1301永久移动/h1/中心

hrcenternginx/1.10.3/center

/body

/html

当我们通过浏览器打开链接时,我们会自动跳转到http://www.codebelief.com。此时,我们要curl做的就是像浏览器一样跟随链接跳转,得到最终的网页内容。我们可以在命令中添加-L选项,以遵循链接重定向:

科尔-L http://codebelief.com

这样,我们就可以获得重定向的web内容。

6. 使用 -A 自定义 User-Agent

我们可以使用-A来定制用户代理。例如,下面的命令将伪装成Android Firefox浏览器来请求网页:

curl -A 'Mozilla/5.0(安卓;移动;rv:35.0)壁虎/35.0火狐/35.0 ' http://www.baidu.com

我们将在下面使用-H来达到同样的目的。

7. 使用 -H 自定义 header

当我们需要传递一个特定的头时,我们可以像下面这样写:

curl-H ' Referer:www . example . com '-H '用户代理:自定义用户代理' http://www.baidu.com

如你所见,当我们使用-H定制用户代理时,我们需要使用'用户代理:xxx '的格式。

我们可以直接在头中传递Cookie,格式和上面的例子一样:

curl-H ' Cookie:JSESSIONID=d 0112 a 5063d 938586 b 659 ef 8 f 939 be 24 ' http://www.example.com

另一种方式将在下面介绍。

8. 使用 -c 保存 Cookie

当我们使用cURL访问一个页面时,默认情况下不会保存Cookie。在某些情况下,我们希望为下次访问保存Cookie。例如,如果您登录了一个网站,我们希望在您再次访问该网站时保留登录状态,这样您可以在登录时保存Cookie,并在下次访问时阅读它们。

-c后跟要保存的文件名。

curl -c '饼干-例子' http://www.example.com

9. 使用 -b 读取 Cookie

前面我们讲过使用-H发送cookie的方法,就是直接在命令中写入cookie字符串。如果使用-b来自定义Cookie,命令如下:

curl-b ' JSESSIONID=d 0112 a 5063d 938586 b 659 ef 8 f 939 be 24 ' http://www.example.com

如果你想从一个文件中读取Cookie,-H对此无能为力。此时,您可以使用-b来完成此操作:

http://www.example.com的curl -b“饼干示例”

也就是说,-b后面可以跟Cookie字符串或保存Cookie的文件名。

10. 使用 -d 发送 POST 请求

让我们以登陆页面为例来说明使用cURL发送POST请求的方法。假设有一个登录页面www.example.com/login,你只需要提交你的用户名和密码登录。我们可以用cURL来完成这个POST请求,-d用来指定要发送的数据,-X用来指定发送数据的方式:

curl -d '用户名=tompasswd=123456' -X邮政http://www.example.com/login

在使用-d的情况下,如果省略-X,默认模式是POST:

curl-d ' userName=tompasswd=123456 ' http://www.example.com/login

强制使用 GET 方式

发送数据时,不仅可以使用POST方法,还可以使用GET方法,例如:

获取http://www.example.com/api

或者使用-G选项:

科尔-德' somedata '-G http://www.example.com/api

从文件中读取数据

curl-d ' @ data . txt ' http://www.example.com/login

使用Cookie登录

当然,如果我们再次访问该网站,我们仍将处于未注册状态。我们可以通过前面提到的方法保存Cookie,每次访问网站的时候带上,以保持登录状态。

curl-c ' cookie-log in '-d ' userName=tompasswd=123456 ' http://www.example.com/login

再次访问该网站时,请使用以下命令:

curl-b“cookie登录”http://www.example.com/login

这样就可以一直访问登录的页面。

总结

这就是本文的全部内容。希望这篇文章的内容能给你的学习或者工作带来一些帮助。有问题可以留言交流。谢谢你的支持。

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: