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. sparkStreaming结合sparkSql进行日志分析

    package testimport java.util.Propertiesimport org.apache.spark.SparkConfimport org.apache.spark.Spar ...

  2. thinkone无法重新创建数据库的问题 newsy

    错误描述: 无法加载数据库驱动: Think\Db\Driver\    前后装了OneThink1.0和OneThink1.1都没成功,都是卡在了安装页面的三个step,读者们你们也遇到一样的情况吗 ...

  3. bind()的模拟实现

    上一篇对call和apply的模拟实现做了一个梳理,可参见:模拟实现call.apply,下面将具体研究一下bind啦啦啦 1. bind和call/apply的差别 bind方法会创建一个新函数,返 ...

  4. css---4表单相关伪类

    input:enabled{ color:red;} input:disabled{ color:blue;} enabled or disable 表单的状态 input:checked{ widt ...

  5. LoadRunner内部结构(2)

    LoadRunner内部结构(2) 接着(1)的内容: 17.默认的LRReport文件夹创建在本地分析机器的My Documents文件夹下来存储分析会话文件. 18.可以使用HTML格式 19.格 ...

  6. 解决Spring Boot Configuration Annotation Processor not found in classpath

    问题截图: 解决方式: 在pom.xml文件中添加这些依赖 <dependency> <groupId>org.springframework.boot</groupId ...

  7. csps模拟测试707172部分题解myc

    题面:https://www.cnblogs.com/Juve/articles/11678524.html 骆驼:构造题,留坑 根据5×5的矩形构造成大矩形 毛一琛: mid in the midd ...

  8. SSM项目实现连接两个mysql数据库

    最近做项目需要用到另一个数据库的内容,多方查找终于实现了功能. 我们都知道,在SSM框架中,我们在applicationContext.xml配置文件中添加数据源就可以实现数据库增删改查,但是只能连接 ...

  9. Android之divider分割线的使用

    1.divider分割线 三种实现方式:(1)添加一个view,(2)通过shape实现,(3)通过设置图片实现 相关属性:设置分割线,分割线位置(none(无),begining(开始),end(结 ...

  10. JDK源码阅读--Hashtable

    public class Hashtable<K,V> extends Dictionary<K,V> implements Map<K,V>, Cloneable ...