curl命令

Curl是一种支持多种协议(http、https,ftp)等,利用url规则在命令行下工作的文件传输工具,还支持POST、cookies、认证、从指定偏移处下载部分文件、用户代理字符串、限速、文件大小、进度条等特征

1.语法:

curl [options] [URL...]

2.参数:

-a/--append 用于上传文件时,指定附加到目标文件,文件存在则覆盖,不存在则创建

-A/--user-agent 指定客户端agent,即浏览器类型

-anyauth   可以使用“任何”身份验证方法

-b/--cookie <name=string/file>  cookie字符串或文件读取位置

--basic    使用HTTP基本验证

-B/--use-ascii    使用ASCII /文本传输

-c/--cookie-jar <file>   操作结束后把cookie写入到这个文件中

-C/--continue-at <offset>   断点续转

-d/--data <data>  HTTP POST方式传送数据

-D/--dump-header <file>  把header信息写入到该文件中

-e/--referer  来源网址

--create-dirs建立本地目录的目录层次结构

-F/--form <name=content>模拟http表单提交数据

-G/--get   以get的方式来发送数据

-H/--header <line>   自定义头信息传递给服务器

--ignore-content-length  忽略的HTTP头信息的长度

-i/--include  输出时包括protocol头信息

-I/--head  只显示请求头信息

--interface <interface>  使用指定网络接口/地址

-K/--config   指定的配置文件读取

-l/--list-only    列出ftp目录下的文件名称

--limit-rate <rate>  设置传输速度

-r/ --range 用于分段下载使用 单位为bytes

--local-port<NUM>强制使用本地端口号

-m/--max-time <seconds>  设置最大传输时间

-o/--output   把输出写到该文件中

-O/--remote-name  把输出写到该文件中,保留远程文件的文件名

-p/--proxytunnel  使用HTTP代理

-Q/--quote <cmd>  文件传输前,发送命令到服务器

-R/--remote-time  在本地生成文件时,保留远程文件时间

--retry <num>传输出现问题时,重试的次数

--retry-delay <seconds>  传输出现问题时,设置重试间隔时间

--retry-max-time <seconds>  传输出现问题时,设置最大重试时间

-s/--silent   静默模式。不输出任何东西

-S/--show-error   显示错误

--trace <file>    对指定文件进行debug

-T/--upload-file <file>  上传文件

--url <URL>   Spet URL to work with

-u/--user <user[:password]>设置服务器的用户和密码

-U/--proxy-user <user[:password]>  设置代理用户名和密码

-x/--proxy <host[:port]>在给定的端口上使用HTTP代理,默认1080

-X/--request <command>   指定什么命令

-w/--write-out [format]  指定输出变量格式,变量需按%{变量}的格式,如果要输出自己定义的名字,直接使用%%

 

3.具体用法

1)查看url的请求头信息

curl -I  http://club.xywy.com

 

HTTP/1.1 200 OK

Server: XT-server/0.0

Date: Mon, 28 Sep 2015 02:51:38 GMT

Content-Type: text/html

Connection: close

Vary: Accept-Encoding

XT_ID: cweb-4

2)自定义请求头信息,返回请求状态

curl -I -H "HOST:club.xywy.com"  http://115.182.211.132

 

HTTP/1.1 200 OK

Server: XT-server/0.0

Date: Mon, 28 Sep 2015 02:54:53 GMT

Content-Type: text/html

Connection: close

Vary: Accept-Encoding

XT_ID: cweb-4

 

-H 指定请求头信息,

curl -H "Connection:keep-alive \n User-Agent: Mozilla/5.0 \n Host:bbs.beyond.com"   http://192.168.1.1/index.php  -I

3)查看url的各类响应时间

curl -o /dev/null -s -w http_code:%{http_code}\\ntime_namelookup:%{time_namelookup}\\ntime_redirect:%{time_redirect}\\ntime_pretransfer:%{time_pretransfer}\\ntime_connect:%{time_connect}\\ntime_starttransfer:%{time_starttransfer}\\ntime_total:%{time_total}\\nspeed_download:%{speed_download}\\n  http://club.xywy.com  

 

http_code:200         //返回的状态吗

time_namelookup:0.032     //dns解析域名的时间

time_redirect:0.000       //重定向时间 

time_pretransfer:0.037        //从开始到准备传输的时间

time_connect:0.037            //建立连接的总时间

time_starttransfer:0.044       //从发出请求之后,web返回第一个字节所用时间

time_total:0.463                  //client发出请求;到web的server发送会所有的相应数据的时间

speed_download:617565.000         //下载速度,单位 byte/s

 

 

 

size_upload          //上传文件大小

size_header          //响应头

size_request          //发送请求参数大小

speed_download      //传输速度

speed_upload         //平均上传速度

content_type 

 

 

 

建立tcp连接的时间:time_connect - time_namelookup

 

4)指定来源地址,指定浏览器类型

curl -I -A "Mozilla/5.0 Firefox/21.0"  -e "http://www.baidu.com" -H "Host:bbs.beyond.com"   http://192.168.1.1/index.php

 

5)保存输出到文件

curl -o baidu.html http://www.baidu.com

curl -O https://www.baidu.com/img/bd_logo1.png

 

-o 指定保存文件的位置,把输出重定向到一个文件

-O 下载url中文件,所以url中需指明到某个文件

6)分段下载,并限速

目标文件大小:900M

现在分三次下载,每次300M,并限速1M/s

[root@test01 ~]#  curl -r  0-300000000 -o test.sh.part1 --limit-rate 1024000 -H "HOST:bbs.beyond.com"  http://127.0.0.1/test.sh  -w speed_download:%{speed_download}\\ntime:%{time_total}\\n 

  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current

                                 Dload  Upload   Total   Spent    Left  Speed

100  286M  100  286M    0     0   998k      0  0:04:53  0:04:53 --:--:-- 1142k

speed_download:1022549.000

time:293.384

[root@test01 ~]# du -sh test.sh.part1 

287M    test.sh.part1

 

断点续传,使用#显示进度

curl -C -   -# -r 0-1024000000 -o test.sh.part1 --limit-rate 10M -H "HOST:bbs.beyond.com"  http://127.0.0.1/test.sh  -w speed_download:%{speed_download}\\ntime:%{time_total}\\n

7)使用代理及用户名密码

curl -x 1.1.1.1:80 http://www.baidu.com

curl -x 1.1.1.2:80 -U user:password http://www.baidu.com

 

当网站设置用户身份验证时,不加用户名密码是不行的

[root@test01 ~]#  curl  -I -H "HOST:bbs.beyond.com"  http://127.0.0.1/test.sh

HTTP/1.1 401 Unauthorized

Server: nginx

Date: Mon, 28 Sep 2015 07:05:52 GMT

Content-Type: text/html

Content-Length: 188

Connection: keep-alive

WWW-Authenticate: Basic realm="plese input your name and password"

现在使用-u参数指定用户名和密码

[root@test01 ~]#  curl  -I -H "HOST:bbs.beyond.com" -u fuzj:fuzj123  http://127.0.0.1/test.sh 

HTTP/1.1 200 OK

Server: nginx

Date: Mon, 28 Sep 2015 07:06:27 GMT

Content-Type: application/octet-stream

Content-Length: 943718400

Last-Modified: Mon, 28 Sep 2015 06:25:42 GMT

Connection: keep-alive

ETag: "5608dd66-38400000"

Accept-Ranges: bytes

 

注意:-u是指定的网站授权的用户名和密码,-U指定的是代理服务器授权的用户名密码

8)保留cookie信息到本地,并使用

curl  -c cookie.txt  -I -H "HOST:bbs.beyond.com" -u fuzj:fuzj123  http://127.0.0.1/forum.php

curl  -b cookie.txt  -I -H "HOST:bbs.beyond.com" -u fuzj:fuzj123  http://127.0.0.1/forum.php

 

9)curl 访问 302跳转后的页面

 

curl -s -L -w '%{url_effective}\n' dns.ip.cn

 

10)忽略url中的特殊符号:

抱错:curl: (3) [globbing] bad range specification in column 120"

Escape [ and ] or use -g or --globoff

An example URL that will cause the error is this:

curl "http://www.example.com/?test[]=123"

Either escape the square brackets like this:

curl "http://www.example.com/?test\[\]=123"

or use --globoff like this:

curl --globoff "http://www.example.com/?test[]=123"

or the shorter -g like this:

curl --g "http://www.example.com/?test[]=123"

 

转载于:https://www.cnblogs.com/pycode/p/8734265.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/252011.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

单目视觉标定:世界坐标系、相机坐标系、图像坐标系、像素坐标系——简单粗暴,粗暴

转&#xff1a;https://blog.csdn.net/chentravelling/article/details/53558096 1.正文 图像处理、立体视觉等等方向常常涉及到四个坐标系&#xff1a;世界坐标系、相机坐标系、图像坐标系、像素坐标系。例如下图&#xff1a; 构建世界坐标系只是为了更好的描述相机的位置在哪…

Python基础知识-05-数据类型总结字典

python其他知识目录 1、一道题&#xff0c;选择商品的序号。程序员和用户各自面对的序号起始值 如有变量 googs [汽车,飞机,火箭] 提示用户可供选择的商品&#xff1a; 0,汽车1,飞机2,火箭用户输入索引后&#xff0c;将指定商品的内容拼接打印&#xff0c;如&#xff1a;用户输…

Python学习笔记之异常

Python用异常对象来表示异常情况&#xff0c;如果异常对象未被处理或捕捉&#xff0c;程序就会回溯&#xff08;traceback&#xff09;中止执行。 异常可以在出错时自动引发&#xff0c;也可以主动引发。 异常被引发后如果不被处理就会传播至程序调用的地方&#xff0c;直到主程…

VSFTP的使用

一、基本安装 1.安装服务 yum -y install vsftpd //centos Redhat apt-get install vsftpd //debian ubuntu 2.开启服务 service vsftpd status //查看状态&#xff0c;默认是关闭的 service vsftpd start 3.开机随操作系统启动 chkconfig vsftpd on4.添加账号 useradd -d /…

OC Swift混编-Swift.h File not found

https://www.jianshu.com/p/f860fe1718ca 2016.09.13 11:53* 字数 266 阅读 1935评论 1喜欢 1今天碰到个神坑,本人项目是OC项目,最近开始使用Swift开始替代.但是,在替代的已开始就出现问题了:新建swift文件,然后提示创建bridging-Hearder文件,然后swift可以使用OC代码了.这些都…

视觉标定,再来一波!!更简单粗暴!!!!!!

继续&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;&#xff01; 一、四个坐标系简介和转换 相机模型为以后一切标定算法的关键&#xff0c;只有这边有相当透彻的理解&#xff0c;对以后的标定算法才能有更好的理解。本人研究了好长时间&#xff0c;几乎每天…

深入浅出NIO之Selector实现原理

2019独角兽企业重金招聘Python工程师标准>>> 前言 Java NIO 由以下几个核心部分组成&#xff1a; 1、Buffer 2、Channel 3、Selector Buffer和Channel在深入浅出NIO之Channel、Buffer一文中已经介绍过&#xff0c;本文主要讲解NIO的Selector实现原理。 之前进行sock…

介绍一下画图小能手matplotlib。

我们在做完数据分析的时候需要把分析出来的结果&#xff0c;做一个图形化的形象表达&#xff0c;这里我们就需要用到画图小能手matplotlib&#xff0c;下面就演示一下常用的条形图和折线图 散点图 散点图的做大的作用是研究两个变量的相关性&#xff08;正相关&#xff0c;负相…

立体视觉标定源代码C++,简单粗暴!粗暴·······

疑点解答&#xff1a; 摄像机矩阵由内参矩阵和外参矩阵组成&#xff0c;对摄像机矩阵进行QR分解可以得到内参矩阵和外参矩阵。 内参包括焦距、主点、倾斜系数、畸变系数 &#xff08;1&#xff09; 其中&#xff0c;fx&#xff0c;fy为焦距&#xff0c;一般情况下&#xff…

11. 临时表

-- 查询5大洲国家总数 SELECT continent,COUNT(*) FROM country GROUP BY continent;-- 演示临时表 CREATE TEMPORARY TABLE tmp_table ( continent VARCHAR(20), COUNT INT );INSERT INTO tmp_table SELECT Asia AS continent,COUNT(*) FROM country WHERE continent Asia;…

MongoDB负载信息一目了然 阿里云HDM重磅发布MongoDB监控和诊断功

2019独角兽企业重金招聘Python工程师标准>>> 混合云数据库管理&#xff08;HDM&#xff09;的统一监控、告警、诊断功能新增了对MongoDB的支持。 通过直观的方式将MongoDB多个维度的负载信息统一整合&#xff0c;不仅可以清晰的查看实时负载信息&#xff0c;也可以方…

在iview的Table中添加Select(render)

首先对Render进行分析&#xff0c;在iview官方的文档中&#xff0c;找到了table插入Button的例子&#xff1a; [javascript] view plaincopy { title: Action, key: action, width: 150, align: center, render: (h, params) > { return h(div, [ h(Butt…

JavaScript中call和apply方法

1 /*2 在js中 call和apply常用于绑定作用域3 */4 //1 简单的绑定5 function sum(a,b){6 return ab;7 }8 //将sum的功能绑定给test2来执行9 function test2(a,b){ 10 return sum.call(this,a,b); 11 } 12 // call 和apply的区别是 apply接收数组作为参数…

工业机械人运动学正逆解,简单粗暴!!!!!!

ur机械臂是六自由度机械臂&#xff0c;由D-H参数法确定它的运动学模型&#xff0c;连杆坐标系的建立如上图所示。 转动关节θi是关节变量&#xff0c;连杆偏移di是常数。 关节编号 α&#xff08;绕x轴&#xff09; a&#xff08;沿x轴&#xff09; θ&#xff08;绕z轴&am…

python opencv立体测距 立体匹配BM算法

立体标定应用标定数据转换成深度图标定 在开始之前&#xff0c;需要准备的当然是两个摄相头&#xff0c;根据你的需求将两个摄像头进行相对位置的固定&#xff0c;我是按平行来进行固定的&#xff08;如果为了追求两个双目图像更高的生命度&#xff0c;也可以将其按一定钝角固…

对于python 作用域新的理解

今天看Python习题&#xff0c;看到如下题目 def num():return [lambda x: i*x for i in range(4)] print([m(2) for m in num()])  # 求输出结果是什么 我看了半天才明白这应该是一个列表生成式&#xff0c;列表中的元素为四个匿名函数&#xff0c;我本以为每个匿名函数应该是…

Vue基础学习(一)------内部指令

一.v-if v-else v-show 指令 1.v-if v-if:是vue 的一个内部指令&#xff0c;指令用在我们的html中,用来判断是否加载html的DOM 现在举个栗子&#xff0c;判断用户的登录操作&#xff0c;用isLogin作为一个判断字段&#xff0c;登录成功&#xff0c;就显示用户的名称 代码&…

【bzoj3555】[Ctsc2014]企鹅QQ 简单哈希

传送门 题目分析 题意即求有多少对字符串只相差一个字符&#xff0c;枚举删除每个字符后的哈希&#xff0c; 看有多少相等即可。 比如有如下字符串&#xff1a;$Sd123$&#xff0c;其中S部分的哈希值为H&#xff0c;删除的是d&#xff0c;则原字符串的哈希值为$$(((H * T d) *…

StereoRectify()函数定义及用法畸变矫正与立体校正

畸变矫正是上一篇博文的遗留问题&#xff0c;当畸变系数和内外参数矩阵标定完成后&#xff0c;就应该进行畸变的矫正&#xff0c;以达到消除畸变的目的&#xff0c;此其一。 在该系列第一部分的博文中介绍的立体成像原理中提到&#xff0c;要通过两幅图像估计物点的深度信息&a…

死磕 java集合之TreeMap源码分析(三)- 内含红黑树分析全过程

2019独角兽企业重金招聘Python工程师标准>>> 欢迎关注我的公众号“彤哥读源码”&#xff0c;查看更多源码系列文章, 与彤哥一起畅游源码的海洋。 删除元素 删除元素本身比较简单&#xff0c;就是采用二叉树的删除规则。 &#xff08;1&#xff09;如果删除的位置有两…