Linux下强大的curl 命令行工具

image.png


文章目录



curl

curl是linux系统中一个利用URL规则在命令行下工作的文件传输工具.


语法

curl  [option]  [url]

参数

-A/--user-agent <string>              设置用户代理发送给服务器
-b/--cookie <name=string/file>    cookie字符串或文件读取位置
-c/--cookie-jar <file>                    操作结束后把cookie写入到这个文件中
-C/--continue-at <offset>            断点续转
-D/--dump-header <file>              把header信息写入到该文件中
-e/--referer                                  来源网址
-f/--fail                                          连接失败时不显示http错误
-o/--output                                  把输出写到该文件中
-O/--remote-name                      把输出写到该文件中,保留远程文件的文件名
-r/--range <range>                      检索来自HTTP/1.1或FTP服务器字节范围
-s/--silent                                    静音模式。不输出任何东西
-T/--upload-file <file>                  上传文件
-u/--user <user[:password]>      设置服务器的用户和密码
-w/--write-out [format]                什么输出完成后
-x/--proxy <host[:port]>              在给定的端口上使用HTTP代理
-#/--progress-bar                        进度条显示当前的传送状态

用法


浏览器加载页面

curl https://yijiebuyi.com

因为安装linux的时候没有安装桌面,也就没有浏览器,
因此这个方法也经常用于测试一台服务器是否访问一个网站.


保存页面


重定向保存功能

利用linux下的重定向符号 >>

curl https://yijiebuyi.com >> linux.html

curl内置保存功能

option:-o(小写)

curl -o linux.html https://yijiebuyi.com

curl的内置另一种保存功能

option:-O(大写)

curl -O https://yijiebuyi.com/logo.png

注意使用 -O 时,链接一定要指向具体资源文件


测试页面请求返回值

curl -o /dev/null -s -w %{http_code} yijiebuyi.com

image.png
由于我的站点对http请求全部做了重定向,跳转到了https
所以上面的截图显示前俩次请求状态 301 跳转
最后一次请求返回页面状态 200


指定代理服务器地址

很多时候有些资源是我们无法达到的.....(悲剧)
你需要一个跳板,你懂的!

option:-x

curl -x 192.168.99.86:888 https://google.com

处理cookie

有些时候,某些站点在你请求资源时,会监测你的cookie,所以你往往需要先把cookie保存,然后请求时再把保存的cookie带着去访问资源


保存cookie到文件

option:-c(小写)

curl -c cookie.md  https://yijiebuyi.com

执行后cookie就保存到了 cookie.md 文件中


保存header中的cookie

option: -D

curl -D header.md https://yijiebuyi.com

上面 -c 和 -D 保存的cookie是不一样的


使用cookie

option: -b

curl -b cookie.md https://yijiebuyi.com

刚才保存下来的cookie信息就会跟随请求带到服务器


模拟浏览器

有些站点资源是需要指定特定浏览器或者版本才可以访问的
option:-A

curl -A "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.0)" https://yijiebuyi.com

伪造referer

我们常见到的情景就是图片防盗链,
防盗链主要就是检查图片的 referer
option:-e

curl -e "https://yijiebuyi.com" https://yijiebuyi.com/logo.png

下载文件


利用保存文件的方法下载

option:-o(小写)

curl -o logo.jpg https://yijiebuyi.com/logo.png

利用下载文件的方法

option:-O(大写)

curl -O https://yijiebuyi.com/logo.png

循环下载

当你想要的资源有相同的命名规则时,这个方法可以让你很方便的批量下载
比如你喜欢的一系列电影名称如下:
上帝也疯狂1.mkv
上帝也疯狂2.mkv
.....
上帝也疯狂5.mkv

curl -O https://yijiebuyi.com/film/上帝也疯狂[1-5].mkv

这样就会批量把五个文件依次下载下来


分块下载

当你需要的资源比较大的时候,可以使用分块下载
option:-r

 curl -r 0-100 -o logo_part1.JPG https://yijiebuyi.com/logo.JPG
 curl -r 100-200 -o logo_part2.JPG https://yijiebuyi.com/logo.JPG
 curl -r 200- -o logo_part3.JPG https://yijiebuyi.com/logo.JPG
 cat logo_part* > logo.JPG

最后一步合并分块内容,即可得到完整资源.


显示下载进度

option: -#

curl -# -O https://yijiebuyi.com/logo.JPG

断点续传

在下载资源时,偶尔遇到掉线断网或者卡顿,导致资源停滞,需要换另一个时段继续下载
option:-C

curl -C -O https://yijiebuyi.com/logo.JPG

上传文件

option:-T

curl -T logo.png -u 用户名:密码 ftp://yijiebuyi.com/static/

出自:Linux下强大的curl 命令行工具

回到顶部