linux 之 curl 使用技巧
获取页面内容
显示 HTTP 头
同时显示 HTTP 头和文件内容,使用 -i 选项
将链接保存到文件
我们可以使用 > 符号将输出重定向到本地文件中。
也可以通过 curl 自带的 -o/-O 选项将内容保存到文件中。
-o(小写的 o):结果会被保存到命令行中提供的文件名
-O(大写的 O):URL 中的文件名会被用作保存输出的文件名
注意:使用 -O 选项时,必须确保链接末尾包含文件名,否则 curl 无法正确保存文件。如果遇到链接中无文件名的情况,应该使用 -o 选项手动指定文件名,或使用重定向符号
同时下载多个文件
我们可以使用
-o
或-O
选项来同时指定多个链接,按照以下格式编写命令:
使用 -L 跟随链接重定向
如果直接使用 curl 打开某些被重定向后的链接,这种情况下就无法获取我们想要的网页内容。例如:
而当我们通过浏览器打开该链接时,会自动跳转到
https://json.im
。此时我们想要 curl 做的,就是像浏览器一样跟随链接的跳转,获取最终的网页内容。我们可以在命令中添加 -L 选项来跟随链接重定向:
使用 -A 自定义 User-Agent
我们可以使用 -A 来自定义用户***,例如下面的命令将伪装成安卓火狐浏览器对网页进行请求:
使用 -H 自定义 header
当我们需要传递特定的 header 的时候,可以仿照以下命令来写:
header 中传递 Cookie
使用-c
保存Cookie
使用 cURL 访问页面的时候,默认是不会保存 Cookie 的
使用 -b 读取 Cookie
使用-d
发送POST
请求
有一个登录页面 https://json.im/login,只需要提交用户名和密码便可登录。我们可以使用 cURL 来完成这一 POST 请求,-d 用于指定发送的数据,-X 用于指定发送数据的方式
在使用 -d 的情况下,如果省略 -X,则默认为 POST 方式:
从文件中读取
data.txt
文本
恢复中断下载
从文件下载 URL
如果将 curl 与 xargs 结合使用,则可以从文件中的 URL 列表中下载文件。
CURL 设置代理
如果您的代理不需要身份验证,您可以跳过-U user:password 。
比如 Nginx 配置代理
上传文件到 ftp
修改名称解析
对
https://json.im
的查询将告诉curl
从127.0.0.1
请求该站点,而不是使用 DNS 或/etc/hosts
文件。
限制下载率
HTTP 认证
有些网域需要 HTTP 认证,这时 curl 需要用到--user 参数。
原文链接:https://rumenz.com/rumenbiji/linux-curl-skills.html
微信公众号:入门小站
版权声明: 本文为 InfoQ 作者【入门小站】的原创文章。
原文链接:【http://xie.infoq.cn/article/43c6920906bbf50b0f47dac1f】。文章转载请联系作者。
评论