Linux下强大的curl 命令行工具
文章目录
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
由于我的站点对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/