linux系统 之 curl命令
1,curl命令
在Linux中curl是一个利用URL规则在命令行下工作的文件传输工具,可以说是一款很强大的http命令行工具。它支持文件的上传和下载,是综合传输工具,但按传统,习惯称url为下载工具。
2,基本格式
语法:# 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 进度条显示当前的传送状态
3,实例
安装curl命令:>sudo apt-get install curl
使用curl命令:>curl http://www.baidu.com #访问的是百度首页的html源码。
把内容保存在本地文档中用o参数:>curl -o baidu.html www.baidu.com
从服务器上下载一张图,保存到本地:>curl -o 1.jpg http://ocs628urt.bkt.clouddn.com/table_1.1.png #命名为1.jpg,如果-o参数后面没有指定名字,那就默认为服务器上的名字
访问一个页面的html代码并且显示response信息:>curl -i http://www.baidu.com #response的基本信息如下:HTTP/1.1 200 OK Server: bfe/1.0.8.18 Date: Wed, 02 Nov 2016 09:38:06 GMT Content-Type: text/html Content-Length: 277 Last-Modified: Mon, 13 Jun 2016 02:50:00 GMT Connection: Keep-Alive ETag: "575e1f58-115" Cache-Control: private, no-cache, no-store, proxy-revalidate, no-transform Pragma: no-cache Accept-Ranges: bytes
访问一个url但是只显示response信息:curl -I(大写的i) url
显示和服务器的通信过程:>curl -v www.baidu.com
自己设置请求头部:>curl --header "Content-Type:application/json" www.baidu.com
支持重定向请求:curl -L url #重定向是什么?从WEB服务器接收一个响应请求的HTTP数据流。该数据流包含状态码,状态码的值由HTTP协议所决定。这里所说的“HTTP数据流”信息也叫“头信息(Header)”。头信息中包括了日期,服务器类型,通常还会有一条“200 OK”信息。如果一切良好,那么网络服务器就会将“200 OK”信息以及请求页面发送出去。如果网站在这时候已经建立了重定向,那么服务器就会在头信息中包含一个“302 Moved Temporarily”或“301 Moved Permanent”之类的响应信息。搜索引擎会根据服务器头信息中的内容作出决定。
4,参考教程和详细curl命令信息:
https://blog.csdn.net/quincuntial/article/details/53014650