Curl是一个命令行方式下传输数据的开源传输工具,支持多种协议包括:FTP,HTTP,HTTPS,IMAP,POP3,TELNET等。同样支持HTTP POST方法,PUT方法,FTP上传,cookie,用户名/密码认证,下载文件端点续传等,功能十分强大。

1. 先来试试

curl http://www.baidu.com ,回车之后,HTML内容就显示在屏幕上了。

2. 下载

curl –o baidu.html http://www.baidu.com ,执行后还可以看到下载进度提示,完成100%后会自动退出了,把网页保存到baidu.html中了。

它还有一个大写O的选项,是按照服务器上的文件名保存到本地,如果执行curl –O http://www.baidu.com ,是会报错的,提示找不到文件名,如果换成curl –O http://baike.baidu.com/view/1326315.htm , 就自动保存文件为1326315.html。

Windows下像flashget这样的工具还支持分块以及断点续传,curl也毫不示弱。

-C或--continue-at:断点续传,用法如下:

curl -C http://www.example.com

-r或--range:分块下载,用法:

curl -r 0-10240 -o "example.part1" http://www.example.com/example.zip &

curl -r 10241-20480 -o "example.part2"

http://www.example.com/example.zip

其中加&表示在后台执行,需要按CTRL+C才能退出。

不过下载完后需要自己把这些破碎的文件合并起来

如果你用UNIX或苹果,用 cat example.part* > example.zip就可以

如果用的是Windows,用copy /b example.part1+example.part2 example.zip来解决

3. 上传

-T/--upload-file:往服务器上传文件,用法:

curl -T "img[1-1000].png" ftp://example.com/upload/

或上传多个文件

curl -T "{file1,file2}" http://www.example.com

4. POST方法

-d或--data参数:post请求,用法为curl -d “id=1&name=test” http://example.com/example.php ,

需把请求的参数和URL分开,同时可以使用curl -d “id=1” -d “name=test” http://example.com/example.php ,相当于提交了两个参数。当提交的参数值中有特殊字符就需要先转义。如空格时,就需要转义成%20。

--data-urlencode参数:就可以自动转义特殊字符,无需人工事先转义。

-F或--form:将本地文件上传到服务器,用法为:curl -F “filename=@/home/test/test.pic” http://example.com/example.php 。千万不能漏掉@符号。

5. 设置referer

有时候我们如果直接请求某个URL不能成功,它需要判断referer是否正确,那就可以通过-e或--referer参数模拟

curl --referer http://www.example.com http://www.example.com

6. 指定User Agent

-A/--user-agent:伪装成指定的浏览器Chrome访问,用法:

curl -A “Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1650.63 Safari/537.36” http://www.example.com

7. 伪造cookie

-b或--cookie: 有两种用法,一是指定参数和值:curl --cookie "name=xxx" http://www.example.com ;二是从文件读取:curl -b /cookie.txt http://www.example.com

8. 保存cookie

-c/--cookie-jar:curl命令执行后保存操作时生成的cookie到文件:

curl -c ./cookie.txt -d username=aaaa -d pwd=****** http://www.example.com

9. 定义输出显示内容

现在为止对它的崇拜已经是犹如滔滔江水连绵不绝了,慢!还有一个powerful的选项.

-w/--write-out: 可以定义输出的内容,如常用的http码,tcp连接时间,域名解析的时间,握手时间及第一时间响应时间等,非常强大。

用法如:

curl -o /dev/null -s -w %{http_code} "http://www.baidu.com" 打印出返回的http码

curl -o /dev/null -s -w “time_total: %{time_total}\n" "http://www.baidu.com" 打印响应时间

如果你对curl还有更大的兴趣,其他更多的功能请找无所不能的男人帮忙吧!

Linux命令CURL用法的更多相关文章

  1. [Linux命令]curl命令参数详解——转载

    linux curl是通过url语法在命令行下上传或下载文件的工具软件,它支持http,https,ftp,ftps,telnet等多种协议,常被用来抓取网页和监控Web服务器状态.curl命令参数介 ...

  2. linux的curl用法【转】

    每分钟访问云签到任务执行页面.顺便记录了下curl的用法.以下内容摘自阮一峰博客. 一.查看网页源码 直接在curl命令后加上网址,就可以看到网页源码.我们以网址www.sina.com为例(选择该网 ...

  3. 每天一个linux命令---curl

    linux curl是一个利用URL规则在命令行下工作的文件传输工具.详细请参考:http://www.codesky.net/article/201010/170043.html 例如:curl ' ...

  4. Ubuntu命令--CURL用法

    curl命令是个功能强大的网络工具,支持通过http.ftp等方式下载文件.上传文件.还可以用来抓取网页.网络监控等方面的开发,解决开发过程中遇到的问题. 常用参数curl命令参数很多,这里只列出我曾 ...

  5. 快速查看linux命令的用法----------TLDR

    之前我们如果用一个命令,但是忘了具体的参数是什么的时候,通常会用man,比如 man tar 但是man有时候特别的冗长,你要找到想要的例子非常困难,所以tldr命令就是一个很好的补充,里边会有经常用 ...

  6. Linux 命令 - curl: transfer a URL

    命令格式 curl [options] [URL...] 命令参数 -0, --http1.0 强制使用 HTTP/1.0 发送请求 -A, --user-agent 指定用户代理 -b/--cook ...

  7. 每天一个linux命令-curl命令

    下载文件 如果我们想要下载文件,而不是查看,那么可以使用如下命令: curl -O http://mif.polimercolor.ru/mifsoft/MDict.zip 以上命令会下载文件并以原名 ...

  8. Linux 命令 indent 用法

    此命令用于调整C源码的格式. 在LKD中的例子: indent -kr -i8 -ts8 -sob -l80 -ss -bs -psl filename   参数解释如下: -i :设置缩进的格数 - ...

  9. linux命令及用法

随机推荐

  1. C# EF去除重复列DistinctBy

    在网上看了LinQ有DistinctBy方法,实际在用的时候并没有找到,后来参照了该网站才发现写的是拓展方法 https://blog.csdn.net/c1113072394/article/det ...

  2. csp-s模拟测试10.1(b)X 国的军队,排列组合, 回文题解

    题面:https://www.cnblogs.com/Juve/articles/11615883.html X 国的军队: 好像有O(T*N)的直接贪心做法 其实多带一个log的二分也可以过 先对所 ...

  3. 0823NOIP模拟测试赛后总结

    考了两场感觉虚了... NOIP模拟测试30 分着考的. 就只有T2的美妙的暴力拿分了,60分rank10,挂了. T1是一道sb题,爆零了十分遗憾. 许多人都掉进了输出格式的坑里,C没大写.少个空格 ...

  4. Python-面向对象之封装与多态

    目录 组合 什么是组合 使用组合的目的 如何使用组合 封装 什么是封装 为什么要封装 如何封装 访问限制机制 什么是访问限制机制 访问限制机制的目的 如何使用访问限制 property 什么是prop ...

  5. 使用UUID和int自增主键的区别

    知其然,知其所以然.在看到生成UUID的代码,后带给我的百度结合自己的经验再写下来的区别 一.UUID做主键: 优点: .保证数据在表和库都是独立的,有利于后续的分库 .合并表的时候主键不会重复 .有 ...

  6. git difff

    Generate patch through git diff http://stackoverflow.com/questions/1191282/how-to-see-the-changes-be ...

  7. 关于前端调用后端php数据跨域的问题

    https://blog.csdn.net/qq_21386275/article/details/87269979 js前端 <!DOCTYPE html><html>< ...

  8. 用区块链技术做一个 不可被修改的 恋爱记录 app 我叫<<誓言>>

    区块链技术 具有不可篡改,去中心化,共识机制等优秀的特性, 都用来做 代币钱包什么的.我觉得完全是浪费. 我的想法是用哪个区块做一个dapp 1 里面写着每个人的恋爱记录,爱情宣言. 2 一个人一生 ...

  9. atoi和itoa函数的实现方法

    atoi的实现: #include<iostream> using namespace std; int atio1(char *s) { int sign=1,num=0; if(*s= ...

  10. 如何应用AxureRP做原型设计

    什么是原型呢?这个在之前介绍为什么需要进行原型设计当中有提到,原型是产品的最初形态,确认用户对产品界面和操作功能可用性的需求,高保真的原型接近于产品的最终形态,但仍只是原型.产品原型简单的说就是产品设 ...