linux curl
简介:
curl是一个非常实用的、用来与服务器之间传输数据的工具;支持的协议包括 (DICT, FILE, FTP, FTPS, GOPHER, HTTP, HTTPS, IMAP, IMAPS, LDAP, LDAPS, POP3, POP3S, RTMP, RTSP, SCP, SFTP, SMTP, SMTPS, TELNET and TFTP),curl设计为无用户交互下完成工作;
curl提供了一大堆非常有用的功能,包括代理访问、用户认证、ftp上传下载、HTTP POST、SSL连接、cookie支持、断点续传...。
1.语法:
curl [options] [URL...]
2.curl 命令参数详解:
由于linux curl功能十分强大,所以命令参数十分多,下表只是部分参数,更多参数请运行“man curl”命令查看。
调试类
-v, --verbose 输出信息
-q, --disable 在第一个参数位置设置后 .curlrc 的设置直接失效,这个参数会影响到 -K, --config -A, --user-agent -e, --referer
-K, --config FILE 指定配置文件
-L, --location 跟踪重定向 (H)
CLI显示设置
数据传输类
-X, --request [GET|POST|PUT|DELETE|…] 使用指定的 http method 例如 -X POST
-H, --header <header> 设定 request里的header 例如 -H "Content-Type: application/json"
-e, --referer 设定 referer (H)
-d, --data <data> 设定 http body 默认使用 content-type application/x-www-form-urlencoded (H)
--data-raw <data> ASCII 编码 HTTP POST 数据 (H)
--data-binary <data> binary 编码 HTTP POST 数据 (H)
--data-urlencode <data> url 编码 HTTP POST 数据 (H)
-G, --get 使用 HTTP GET 方法发送 -d 数据 (H)
-F, --form <name=string> 模拟 HTTP 表单数据提交 multipart POST (H)
--form-string <name=string> 模拟 HTTP 表单数据提交 (H)
-u, --user <user:password> 使用帐户,密码 例如 admin:password
-b, --cookie <data> cookie 文件 (H)
-j, --junk-session-cookies 读取文件中但忽略会话cookie (H)
-A, --user-agent user-agent设置 (H)
传输设置
-C, --continue-at OFFSET 断点续转
-x, --proxy [PROTOCOL://]HOST[:PORT] 在指定的端口上使用代理
-U, --proxy-user USER[:PASSWORD] 代理用户名及密码
文件操作
-C, --continue-at OFFSET 断点续转
-x, --proxy [PROTOCOL://]HOST[:PORT] 在指定的端口上使用代理
-U, --proxy-user USER[:PASSWORD] 代理用户名及密码
输出设置
-o, --output <file> 将输出写入文件,而非 stdout
-O, --remote-name 将输出写入远程文件
-D, --dump-header <file> 将头信息写入指定的文件
-c, --cookie-jar <file> 操作结束后,要写入 Cookies 的文件位置文件位置
3.常用实例:
访问一个网页并输出详细信息:
curl -v http://www.baidu.com
抓取页秒到一个为文件中
curl -o home.html http://www.baidu.com
用 -O(大写的),后面的url要具体到某个文件,不然抓不下来。我们还可以用正则来抓取东西
curl -O http://www.mydomain.com/linux/index.html
模拟用户登录
curl -v --user Admin:zabbix http://172.16.18.204/zabbix/index.php

断点续传
curl -C -O http://www.sina.com.cn
伪造来源地址,有的网站会判断,请求来源地址-e
curl -e http://localhost http://www.sina.com.cn
当我们经常用curl去搞人家东西的时候,人家会把你的IP给屏蔽掉的,这个时候,我们可以用代理
curl -x 10.10.90.83:80 -o home.html http://www.sina.com.cn

用的时候,把他们cat一下就OK了,cat img.part* >img.jpg
不显示下载进度信息 -s
curl -s -o aaa.jpg
显示下载进度条
curl -# -O http://www.mydomain.com/linux/25002_3.html
通过ftp下载文件;上传



浙公网安备 33010602011771号