curl命令介绍
01
简介
curl命令是一个利用URL规则在命令行下工作的文件传输工具。它支持文件的上传和下载,所以是综合传输工具,但按传统,习惯称curl为下载工具。作为一款强力工具,curl支持包括HTTP、HTTPS、ftp等众多协议,还支持POST、cookies、认证、从指定偏移处下载部分文件、用户代理字符串、限速、文件大小、进度条等特征。做网页处理流程和数据检索自动化,curl可以助一臂之力。下面简单介绍下该命令。
02
语法及参数
语法:
curl(选项)(参数)
常用选项:
-a/–append
上传文件时,附加到目标文件
-A/–user-agent <string>
设置用户代理发送给服务器
-b/–cookie <name=string/file>
cookie字符串或文件读取位置
–basic
使用HTTP基本验证
-c/–cookie-jar <file>
操作结束后把cookie写入到这个文件中
-C/–continue-at <offset>
断点续转
-d/–data <data>
HTTP POST方式传送数据
-D/–dump-header <file>
把header信息写入到该文件中
-o/–output
把输出写到该文件中
-O/–remote-name
把输出写到该文件中,保留远程文件的文件名
-R/–remote-time
在本地生成文件时,保留远程文件时间
-u/–user <user[:password]>
设置服务器的用户和密码
-U/–proxy-user <user[:password]>
设置代理用户名和密码
03
示例
1、文件下载及上传
curl可以通过不同的协议下载文件,通过设定特定的命令参数,可以实现灵活的控制下载输出。下面给出几个简单的示例:
- 下载单个文件
curl http://man.linuxde.net/text.iso
- 下载多个文件
curl –o http://man.linuxde.net/text1.iso –o http://man.linuxde.net/text.iso
- 下载文件后输出到指定文件,并显示进度条
curl http://man.linuxde.net/text.iso –o filename.iso –press
- 控制下载速度
curl http://man.linuxde.net/text.iso --limit-rate 50k- 控制下载配额
curl http://man.linuxde.net/text.iso –max-filesize 1000k
- 从ftp下载
curl -u ftpuser:ftppass -O ftp://ftp_server/public_html/xss.php- 断点续传
curl http://man.linuxde.net/text.iso -C 偏移量
#偏移量是以字节为单位的整数,如果让curl自动推断出正确的续传位置使用-C -:curl -C -http://man.linuxde.net/text.iso- 文件上传
curl --form “fileupload=@filename.txt” http://hostname/resource
2、网页流程处理
Curl可以向服务器传输数据,支持常用的http、https、ftp等协议,因此也可以用来对不同请求的正确性和返回数据格式进行验证。下面介绍常用的几个例子:
- 查看网页代码
curl www.so.com
- GET 请求
curl 360搜索,SO靠谱 POST 请求
curl -d “userId=28090443&premium=100” "http://www.so.com//addStrategyKeyword
- 显示头信息
curl –i http://www.so.com
- 显示通信过程
curl –v www.so.com
- Cookie使用
curl –cookie “type=xxx” www.so.com
- 增加头信息
curl --header “xxx:xxx” http://www.so.com
- http认证curl –user name:password www.so.com
04
总结
以上只是curl命令的常用方法,其中有不足的地方欢迎大家指正,想了解更详细的用法可以查看这个链接:http://man.linuxde.net/curl
Q