Linux命令CURL用法

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 “[email protected]/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还有更大的兴趣,其他更多的功能请找无所不能的男人帮忙吧!

时间: 2024-11-08 07:38:51

Linux命令CURL用法的相关文章

linux的curl用法【转】

每分钟访问云签到任务执行页面.顺便记录了下curl的用法.以下内容摘自阮一峰博客. 一.查看网页源码 直接在curl命令后加上网址,就可以看到网页源码.我们以网址www.sina.com为例(选择该网址,主要因为它的网页代码较短): $ curl www.sina.com <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN"><html><head><title>301 Moved Perma

linux命令sort用法

sort是在Linux里非常常用的一个命令,管排序的通过man sort查看sort用法 -b, --ignore-leading-blanks              ignore leading blanks -d, --dictionary-order              consider only blanks and alphanumeric characters -f, --ignore-case              fold lower case to upper c

Ubuntu命令--CURL用法

curl命令是个功能强大的网络工具,支持通过http.ftp等方式下载文件.上传文件.还可以用来抓取网页.网络监控等方面的开发,解决开发过程中遇到的问题. 常用参数curl命令参数很多,这里只列出我曾经用过.特别是在shell脚本中用到过的那些.-v/--verbose 小写的v参数,用于打印更多信息,包括发送的请求信息,这在调试脚本是特别有用.-m/--max-time <seconds> 指定处理的最大时长-H/--header <header> 指定请求头参数-s/--sli

linux 命令cut用法

cut命令        cut [OPTION]... [FILE]...            -d DELIMITER: 指明分隔符            -f FILEDS:                #: 第#个字段                #,#[,#]离散的多个字段例如1,3,6                #-#连续的多个字段, 例如1-6 混合使用1-3,7            --output-delimiter=STRING             [[ema

linux命令cut用法

--按文件大小排序 显示前100行 显示后五列 ll -Sh|head -n 100|cut -d ' ' -f 5- 一.基本语法cut是一个选取命令,以行为单位,用指定分隔符将行切分为若干字段,选取所需要的字段.1.语法格式cut [option] filesoption常用参数如下: -d:用来定义分隔符,默认为tab键,一般与-f配合使用(如果分隔符是空格,必须是两个单引号之间确实有一个空格,是一个哦,不是支持多个)-f:需要选取的字段,根据-d切分的字段集选取,下标从1开始-s:表示不

我所接触到的一些常用Linux命令和用法(初学者献丑了)每日更新.......

命令                    作用 shutdown -h now      立刻关机命令 startx               进入图形界面(如果你的redhat安装了桌面的话),X就是X-window桌面 shutdown -r now      立刻重启(或者用reboot) vi编辑器的使用(其实vi非常强大,快捷键也很多,这里只说一些常用的vi命令) vi HelloWorld.java    创建一个HelloWorld.java文件,同时用vi打开 按i(插入模式

Linux 命令 indent 用法

此命令用于调整C源码的格式. 在LKD中的例子: indent -kr -i8 -ts8 -sob -l80 -ss -bs -psl filename 参数解释如下: -i :设置缩进的格数 -ts :设置tab的长度 -sob: 删除多余的空白行 -l:  设置缩排的格数 -ss: 若for或while部分(含条件与执行语句)仅有一行时,在分号前加上空格 -bs : 在sizeof之后空一格 -psl :程序类型置于程序名称的前一行 修改格式之后,最好使用 ./scripts/checkpa

linux命令find用法

文件查找:    在文件系统上查找符合条件的文件: 文件查找:locate, find        非实时查找(数据库查找):locate        实时查找:find yum provides */locate  [[email protected] ~]# locate aa.txt /root/aa.txt locate:        依赖于事先构建的索引:索引的构建是在系统较为空闲时自动进行(周期性任务):手动更新数据库(updatedb): 索引构建过程需要遍历整个根文件系统,

Linux命令screen用法小计

简介Screen是一款由GNU计划开发的用于命令行终端切换的自由软件.用户可以通过该软件同时连接多个本地或远程的命令行会话,并在其间自由切换.GNU Screen可以看作是窗口管理器的命令行界面版本.它提供了统一的管理多个会话的界面和相应的功能.只要Screen本身没有终止,在其内部运行的会话都可以恢复.这一点对于远程登录的用户特别有用--即使网络连接中断,用户也不会失去对已经打开的命令行会话的控制.只要再次登录到主机上执行screen -r就可以恢复会话的运行.同样在暂时离开的时候,也可以执行