<code id='0zgdl'><strong id='0zgdl'></strong></code>
<acronym id='0zgdl'><em id='0zgdl'></em><td id='0zgdl'><div id='0zgdl'></div></td></acronym><address id='0zgdl'><big id='0zgdl'><big id='0zgdl'></big><legend id='0zgdl'></legend></big></address>

<fieldset id='0zgdl'></fieldset>

  1. <dl id='0zgdl'></dl>

      1. <span id='0zgdl'></span>

          <i id='0zgdl'><div id='0zgdl'><ins id='0zgdl'></ins></div></i>
        1. <tr id='0zgdl'><strong id='0zgdl'></strong><small id='0zgdl'></small><button id='0zgdl'></button><li id='0zgdl'><noscript id='0zgdl'><big id='0zgdl'></big><dt id='0zgdl'></dt></noscript></li></tr><ol id='0zgdl'><table id='0zgdl'><blockquote id='0zgdl'><tbody id='0zgdl'></tbody></blockquote></table></ol><u id='0zgdl'></u><kbd id='0zgdl'><kbd id='0zgdl'></kbd></kbd>
        2. <i id='0zgdl'></i>

          <ins id='0zgdl'></ins>

          Linux系统中的curl命令使用教程

          • 时间:
          • 浏览:15
          • 来源:124软件资讯网

              下令:curl

              在Linux中curl是一个使用URL规则在下令行下事情的文件传输工具  ,可以说是一款很强盛的http下令行工具 。它支持文件的上传和下载  ,是综合传输工具 ,但按传统  ,习惯称url为下载工具  。

              语法:# curl [option] [url]

              常见参数:

              -A/--user-agent 设置用户署理发送给服务器

              -b/--cookie

              -c/--cookie-jar 操作竣事后把cookie写入到这个文件中

              -C/--continue-at 断点续转

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

              -e/--referer 泉源网址

              -f/--fail 毗连失败时不显示http错误

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

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

              -r/--range 检索来自HTTP/1.1或FTP服务器字节规模

              -s/--silent 静音模式 。不输出任何工具

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

              -u/--user

              -w/--write-out [format] 什么输出完成后

              -x/--proxy

              -#/--progress-bar 进度条显示当前的传送状态

              例子:

              1、基本用法

              代码如下:

              # curl http://www.linux.com

              执行后 ,www.linux.com 的html就会显示在屏幕上了

              Ps:由于安装linux的时间许多时间是没有安装桌面的 ,也意味着没有浏览器  ,因此这个要领也经常用于测试一台服务器是否可以到达一个网站

              2、生存会见的网页

              2.1:使用linux的重定向功效生存

              代码如下:

              # curl http://www.linux.com >> linux.html

              2.2:可以使用curl的内置option:-o(小写)生存网页

              代码如下:

              $ curl -o linux.html http://www.linux.com

              执行完成后会显示如下界面 ,显示100%则表现生存乐成

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

              Dload Upload Total Spent Left Speed

              100 79684 0 79684 0 0 3437k 0 --:--:-- --:--:-- --:--:-- 7781k

              2.3:可以使用curl的内置option:-O(大写)生存网页中的文件

              要注重这里后面的url要详细到某个文件  ,否则抓不下来

              代码如下:

              # curl -O http://www.linux.com/hello.sh

              3、测试网页返回值

              代码如下:

              # curl -o /dev/null -s -w %{http_code} www.linux.com

              Ps:在剧本中  ,这是很常见的测试网站是否正常的用法

              4、指定proxy服务器以及其端口

              许多时间上网需要用到署理服务器(好比是使用署理服务器上网或者由于使用curl别人网站而被别人屏障IP地址的时间)  ,幸运的是curl通过使用内置option:-x来支持设置署理

              代码如下:

              # curl -x 192.168.100.100:1080 http://www.linux.com

              5、cookie

              有些网站是使用cookie来记载session信息  。对于chrome这样的浏览器  ,可以容易处置惩罚cookie信息 ,但在curl中只要增添相关参数也是可以很容易的处置惩罚cookie

              5.1:生存http的response内里的cookie信息  。内置option:-c(小写)

              代码如下:

              # curl -c cookiec.txt http://www.linux.com

              执行后cookie信息就被存到了cookiec.txt内里了

              5.2:生存http的response内里的header信息 。内置option: -D

              代码如下:

              # curl -D cookied.txt http://www.linux.com

              执行后cookie信息就被存到了cookied.txt内里了

              注重:-c(小写)发生的cookie和-D内里的cookie是纷歧样的  。

              5.3:使用cookie

              许多网站都是通过监视你的cookie信息来判断你是否按规则会见他们的网站的  ,因此我们需要使用生存的cookie信息  。内置option: -b

              代码如下:

              # curl -b cookiec.txt http://www.linux.com

              6、模拟浏览器

              有些网站需要使用特定的浏览器去会见他们 ,有些还需要使用某些特定的版本  。curl内置option:-A可以让我们指定浏览器去会见网站

              代码如下:

              # curl -A "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.0)" http://www.linux.com

              这样服务器端就会以为是使用IE8.0去会见的

              7、伪造referer(盗链)

              许多服务器会检查http会见的referer从而来控制会见  。好比:你是先会见首页 ,然后再会见首页中的邮箱页面  ,这里会见邮箱的referer地址就是会见首页乐成后的页面地址 ,若是服务器发现对邮箱页面会见的referer地址不是首页的地址  ,就断定那是个盗连了

              curl中内置option:-e可以让我们设定referer

              代码如下:

              # curl -e "www.linux.com" http://mail.linux.com

              这样就会让服务器其以为你是从www.linux.com点击某个链接过来的

              8、下载文件

              8.1:使用curl下载文件  。

              代码如下:

              #使用内置option:-o(小写)

              # curl -o dodo1.jpg http:www.linux.com/dodo1.JPG

              #使用内置option:-O(大写)

              # curl -O http://www.linux.com/dodo1.JPG

              这样就会以服务器上的名称生存文件到当地

              8.2:循环下载

              有时间下载图片可以能是前面的部门名称是一样的  ,就最后的尾椎名纷歧样

              代码如下:

              # curl -O http://www.linux.com/dodo[1-5].JPG

              这样就会把dodo1  ,dodo2 ,dodo3  ,dodo4 ,dodo5所有生存下来

              8.3:下载重命名

              代码如下:

              # curl -O http://www.linux.com/{hello,bb}/dodo[1-5].JPG

              由于下载的hello与bb中的文件名都是dodo1  ,dodo2  ,dodo3 ,dodo4 ,dodo5  。因此第二次下载的会把第一次下载的笼罩  ,这样就需要对文件举行重命名 。

              代码如下:

              # curl -o #1_#2.JPG http://www.linux.com/{hello,bb}/dodo[1-5].JPG

              这样在hello/dodo1.JPG的文件下载下来就会酿成hello_dodo1.JPG,其他文件依此类推 ,从而有用的制止了文件被笼罩

              8.4:分块下载

              有时间下载的工具会比力大  ,这个时间我们可以分段下载  。使用内置option:-r

              复制代码

              代码如下:

              # curl -r 0-100 -o dodo1_part1.JPG http://www.linux.com/dodo1.JPG

              # curl -r 100-200 -o dodo1_part2.JPG http://www.linux.com/dodo1.JPG

              # curl -r 200- -o dodo1_part3.JPG http://www.linux.com/dodo1.JPG

              # cat dodo1_part* > dodo1.JPG

              这样就可以检察dodo1.JPG的内容了

              8.5:通过ftp下载文件

              curl可以通过ftp下载文件  ,curl提供两种从ftp中下载的语法

              代码如下:

              # curl -O -u 用户名:密码 ftp://www.linux.com/dodo1.JPG

              # curl -O ftp://用户名:密码@www.linux.com/dodo1.JPG

              8.6:显示下载进度条

              代码如下:

              # curl -# -O http://www.linux.com/dodo1.JPG

              8.7:不会显示下载进度信息

              代码如下:

              # curl -s -O http://www.linux.com/dodo1.JPG

              9、断点续传

              在windows中  ,我们可以使用迅雷这样的软件举行断点续传  。curl可以通过内置option:-C同样可以到达相同的效果

              若是在下载dodo1.JPG的历程中突然掉线了 ,可以使用以下的方式续传

              复制代码

              代码如下:

              # curl -C -O http://www.linux.com/dodo1.JPG

              10、上传文件

              curl不仅仅可以下载文件  ,还可以上传文件  。通过内置option:-T来实现

              复制代码

              代码如下:

              # curl -T dodo1.JPG -u 用户名:密码 ftp://www.linux.com/img/

              这样就向ftp服务器上传了文件dodo1.JPG

              11、显示抓取错误

              复制代码

              代码如下:

              # curl -f http://www.linux.com/error

              其他参数(此处翻译为转载):

              -a/--append 上传文件时  ,附加到目的文件

              --anyauth 可以使用“任何”身份验证要领

              --basic 使用HTTP基本验证

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

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

              --data-ascii 以ascii的方式post数据

              --data-binary 二进制的方式post数据

              --negotiate 使用HTTP身份验证

              --digest 使用数字身份验证

              --disable-eprt 克制使用EPRT或LPRT

              --disable-epsv 克制使用EPSV

              --egd-file 为随机数据(SSL)设置EGD socket路径

              --tcp-nodelay 使用TCP_NODELAY选项

              -E/--cert

              --cert-type 证书文件类型 (DER/PEM/ENG) (SSL)

              --key 私钥文件名 (SSL)

              --key-type 私钥文件类型 (DER/PEM/ENG) (SSL)

              --pass 私钥密码 (SSL)

              --engine 加密引擎使用 (SSL). "--engine list" for list

              --cacert CA证书 (SSL)

              --capath CA目 (made using c_rehash) to verify peer against (SSL)

              --ciphers SSL密码

              --compressed 要求返回是压缩的形势 (using deflate or gzip)

              --connect-timeout 设置最大请求时间

              --create-dirs 建设当地目录的目录条理结构

              --crlf 上传是把LF转酿成CRLF

              --ftp-create-dirs 若是远程目录不存在 ,建立远程目录

              --ftp-method [multicwd/nocwd/singlecwd] 控制CWD的使用

              --ftp-pasv 使用 PASV/EPSV 取代端口

              --ftp-skip-pasv-ip 使用PASV的时间,忽略该IP地址

              --ftp-ssl 实验用 SSL/TLS 来举行ftp数据传输

              --ftp-ssl-reqd 要求用 SSL/TLS 来举行ftp数据传输

              -F/--form

              -form-string

              -g/--globoff 禁用网址序列和规模使用{}和[]

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

              -h/--help 资助

              -H/--header 自界说头信息通报给服务器

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

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

              -I/--head 只显示文档信息

              -j/--junk-session-cookies 读取文件时忽略session cookie

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

              --krb4 使用指定宁静级此外krb4

              -k/--insecure 允许不使用证书到SSL站点

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

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

              --limit-rate 设置传输速率

              --local-port 强制使用当地端口号

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

              --max-redirs 设置最大读取的目录数

              --max-filesize 设置最大下载的文件总量

              -M/--manual 显示全手动

              -n/--netrc 从netrc文件中读取用户名和密码

              --netrc-optional 使用 .netrc 或者 URL来笼罩-n

              --ntlm 使用 HTTP NTLM 身份验证

              -N/--no-buffer 禁用缓冲输出

              -p/--proxytunnel 使用HTTP署理

              --proxy-anyauth 选择任一署理身份验证要领

              --proxy-basic 在署理上使用基自己份验证

              --proxy-digest 在署理上使用数字身份验证

              --proxy-ntlm 在署理上使用ntlm身份验证

              -P/--ftp-port

            使用端口地址 ,而不是使用PASV

              -Q/--quote 文件传输前  ,发送死令到服务器

              --range-file 读取(SSL)的随机文件

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

              --retry 传输泛起问题时  ,重试的次数

              --retry-delay 传输泛起问题时 ,设置重试距离时间

              --retry-max-time 传输泛起问题时  ,设置最大重试时间

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

              --socks4

              --socks5

              -t/--telnet-option

              --trace 对指定文件举行debug

              --trace-ascii Like --跟踪但没有hex输出

              --trace-time 跟踪/详细输出时  ,添加时间戳

              --url Spet URL to work with

              -U/--proxy-user

              -V/--version 显示版本信息

              -X/--request 指定什么下令

              -y/--speed-time 放弃限速所要的时间 。默以为30

              -Y/--speed-limit 制止传输速率的限制 ,速率时间'秒

              -z/--time-cond 传送时间设置

              -0/--http1.0 使用HTTP 1.0

              -1/--tlsv1 使用TLSv1(SSL)

              -2/--sslv2 使用SSLv2的(SSL)

              -3/--sslv3 使用的SSLv3(SSL)

              --3p-quote like -Q for the source URL for 3rd party transfer

              --3p-url 使用url  ,举行第三方传送

              --3p-user 使用用户名和密码  ,举行第三方传送

              -4/--ipv4 使用IP4

              -6/--ipv6 使用IP6

              使用curl下令获取文件下载速率

              使用curl可以下载网络内容 ,那怎样获取curl下载时的下载速率呢  ,使用下面的下令即可:

              复制代码

              代码如下:

              # curl -Lo /dev/null -skw "%{speed_download}\n" http://mirrors.163.com/ubuntu/ls-lR.gz

              226493.000

              固然  ,还可以获取毗连时间、重定向时间等更多的数据:

              复制代码

              代码如下:

              # curl -Lo /dev/null -skw "time_connect: %{time_connect} s\ntime_namelookup: %{time_namelookup} s\ntime_pretransfer: %{time_pretransfer} s\ntime_starttransfer: %{time_starttransfer} s\ntime_redirect: %{time_redirect} s\nspeed_download: %{speed_download} B/s\ntime_total: %{time_total} s\n\n" http://www.sina.com

              time_connect: 0.154 s

              time_namelookup: 0.150 s

              time_pretransfer: 0.154 s

              time_starttransfer: 0.163 s

              time_redirect: 0.157 s

              speed_download: 324679.000 B/s

              time_total: 1.692 s