shell中curl 用法详解 (二)
2017-07-27 18:28
281 查看
shell中curl 用法详解 (二)
1. 基本用法
##基本用法(配合sed/awk/grep) $curl http: //bpsky.net ##下载保存 $curl http://bpsky.net > index.html $curl -o index.html http://bpsky.net $curl -O http://bpsky.net/target.tar.gz ##通过代理 $curl -x 123.45.67.89:1080 -o page.html http://bpsky.net ##保存cookie $curl -x 123.45.67.89:1080 -o page1.html -D cookie0001.txt http://bpsky.net ##使用cookie $curl -x 123.45.67.89:1080 -o page1.html -D cookie0002.txt -b cookie0001.txt http://bpsky.net ##模仿浏览器 $curl -A "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)" -x123.45.67.89:1080 -o page.html -D cookie0001.txt http://bpsky.net ##伪造referer $curl -A "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)" -x123.45.67.89:1080 -e"mail.yahoo.com" -o page.html -D cookie0001.txt http://bpsky.net ##循环下载 $curl -O http://cgi2.tky.3web.ne.jp/~zzh/screen[1-10].JPG ##循环(匹配)下载 $curl -O http://cgi2.tky.3web.ne.jp/~{zzh,nick}/[001-201].JPG # >like zzh/001.JPG ##循环(引用)下载 $curl -o #2_#1.jpg http://cgi2.tky.3web.ne.jp/~{zzh,nick}/[001-201].JPG # like >001_zzh.jpg ##断点续传 $curl -c -O http://cgi2.tky.3wb.ne.jp/~zzh/screen1.JPG ##分块下载 $curl -r 0 -10240 -o "zhao.part1" http://cgi2.tky.3web.ne.jp/~zzh/zhao1.mp3 &\ $curl -r 10241 -20480 -o "zhao.part1" http://cgi2.tky.3web.ne.jp/~zzh/zhao1.mp3 &\ $curl -r 20481 -40960 -o "zhao.part1" http://cgi2.tky.3web.ne.jp/~zzh/zhao1.mp3 &\ $curl -r 40961 - -o "zhao.part1" http://cgi2.tky.3web.ne.jp/~zzh/zhao1.mp3 ... $cat zhao.part* > zhao.mp3 ##GET 上传 $curl http://www.yahoo.com/login.cgi?user=nickwolfe&password=12345 ##POST 上传 $curl -d "user=nickwolfe&password=12345" http://www.yahoo.com/login.cgi ##POST 文件上传 $curl -F upload= $localfile -F $btn_name=$btn_value http://cgi2.tky.3web.ne.jp/~zzh/up_file.cgi[/code]2. 参数详解
3. 常用curl实例
1,抓取页面内容到一个文件中 [root@10.10.90.97 ~]# curl -o home.html http://www.sina.com.cn 2,用-O(大写的),后面的url要具体到某个文件,不然抓不下来。我们还可以用正则来抓取东西 [root@10.10.90.97 ~]# curl -O http://www.it415.com/czxt/linux/25002_3.html 3,模拟表单信息,模拟登录,保存cookie信息 [root@10.10.90.97 ~]# curl -c ./cookie_c.txt -F log=aaaa -F pwd=** http://blog.51yip.com/wp-login.php 4,模拟表单信息,模拟登录,保存头信息 [root@10.10.90.97 ~]# curl -D ./cookie_D.txt -F log=aaaa -F pwd=** http://blog.51yip.com/wp-login.php -c(小写)产生的cookie和-D里面的cookie是不一样的。 5,使用cookie文件 [root@10.10.90.97 ~]# curl -b ./cookie_c.txt http://blog.51yip.com/wp-admin 6,断点续传,-C(大写的) [root@10.10.90.97 ~]# curl -C -O http://www.sina.com.cn 7,传送数据,最好用登录页面测试,因为你传值过去后,curl回抓数据,你可以看到你传值有没有成功 [root@10.10.90.97 ~]# curl -d log=aaaa http://blog.51yip.com/wp-login.php 8,显示抓取错误 [root@10.10.90.97 ~]# curl -f http://www.sina.com.cn/asdf curl: (22) The requested URL returned error: 404 [root@10.10.90.97 ~]# curl http://www.sina.com.cn/asdf <HTML><HEAD><TITLE>404,not found</TITLE> 。。。。。。。。。。。。 9,伪造来源地址,有的网站会判断,请求来源地址 [root@10.10.90.97 ~]# curl -e http://localhost http://www.sina.com.cn 10,当我们经常用curl去搞人家东西的时候,人家会把你的IP给屏蔽掉的,这个时候,我们可以用代理 [root@10.10.90.97 ~]# curl -x 10.10.90.83:80 -o home.html http://www.sina.com.cn 11,比较大的东西,我们可以分段下载 [root@10.10.90.97 ~]# curl -r 0-100 -o img.part1 http://i2.f.itc.cn/thumb/180/bj/6018/b_60178154.jpg % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 100 101 100 101 0 0 1926 0 –:–:– –:–:– –:–:– 0 [root@10.10.90.97 ~]# curl -r 100-200 -o img.part2 http://i2.f.itc.cn/thumb/180/bj/6018/b_60178154.jpg % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 100 101 100 101 0 0 3498 0 –:–:– –:–:– –:–:– 98k [root@10.10.90.97 ~]# curl -r 200- -o img.part3 http://i2.f.itc.cn/thumb/180/bj/6018/b_60178154.jpg % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 100 13515 100 13515 0 0 154k 0 –:–:– –:–:– –:–:– 280k [root@10.10.90.97 ~]# ll |grep img.part -rw-r–r– 1 root root 101 Jan 24 10:59 img.part1 -rw-r–r– 1 root root 101 Jan 24 11:00 img.part2 -rw-r–r– 1 root root 13515 Jan 24 11:00 img.part3 用的时候,把他们cat一下就OK了,cat img.part* >img.jpg 12,不显示下载进度信息 [root@10.10.90.97 ~]# curl -s -o aaa.jpg 13,显示下载进度条 [root@10.10.90.97 ~]# curl -# -O http://www.it415.com/czxt/linux/25002_3.html |
14,通过ftp下载文件
[root@10.10.90.97 ~]# curl -u 用户名:密码 -O http://blog.51yip.com/demo/curtain/bbstudy_files/style.css
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
101 1934 101 1934 0 0 3184 0 –:–:– –:–:– –:–:– 7136
或者用下面的方式
[root@10.10.90.97 ~]# curl -O ftp://xukai:test@192.168.242.144:21/www/focus/enhouse/index.php
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 87518 100 87518 0 0 2312k 0 –:–:– –:–:– –:–:– 11.5M
15,通过ftp上传
[root@10.10.90.97 ~]# curl -T xukai.php ftp://xukai:test@192.168.242.144:21/www/focus/enhouse/
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 87518 0 0 100 87518 0 2040k –:–:– –:–:– –:–:– 8901k
4. 使用事例
使用事例: #!/bin/bash 2 while read LINE 3 do 4 curl="$LINE" 5 echo -n "$LINE " 6 /usr/bin/curl -s -o /dev/null -w %{http_code}"\\n" $curl 7 if [ "$http_code" == "200" ];then 8 echo "$LINE 请求失败" 9 fi 10 done < a.log a.log的内容如下: 1 http://10.10.10.30:51002/clearUserCache4Redis?userId=121 2 http://10.10.10.30:51002/clearUserCache4Redis?userId=123123 3 http://10.10.10.30:51002/clearUserCache4Redis?userId=12312312 4 http://10.10.10.30:51002/clearUserCache4Redis?userId=12312312 5 http://10.10.10.30:51002/clearUserCache4Redis?userId=123123
相关文章推荐
- shell神器curl用法笔记
- shell中test命令用法详解
- Shell脚本中倒计时 4000 应用 – echo用法详解
- shell中test命令用法详解
- Shell用法和技巧详解
- shell中curl 用户详解
- shell awk用法详解
- builtin命令_Linux builtin 命令用法详解:执行shell内部命令
- curl命令_Linux curl 命令用法详解:利用URL规则在命令行下工作的文件传输工具
- PHP扩展CURL的用法详解
- shell常用命令之curl: -w,–write-out参数详解
- Curl高级用法详解
- shopt命令_Linux shopt 命令用法详解:显示和设置shell操作选项
- chsh命令_Linux chsh 命令用法详解:用来更换登录系统时使用的shell
- 学习笔记之 curl 命令用法详解
- 详解Shell cut用法
- shell中test命令用法详解
- linux curl用法详解
- shell神器curl用法笔记
- exit命令_Linux exit 命令用法详解:退出当前的shell