分享

安装cloudera 中curl -s url | sudo apt-key add -的含义

pig2 发表于 2014-9-10 23:56:11 [显示全部楼层] 回帖奖励 阅读模式 关闭右栏 0 71376
本帖最后由 nettman 于 2014-9-11 22:54 编辑

问题导读:
阅读本文只要弄懂下面问题即可
1.curl -s的含义是什么?
2. sudo apt-key add -的含义是什么?





  1. curl -s http://archive.cloudera.com/cm5/ubuntu/precise/amd64/cm/archive.key | sudo apt-key add -
复制代码
curl -s表示下载的意思
apt-key add keyname
把下载的key添加到本地trusted数据库中。
('-' for stdin)翻译为:-表示标准输入


更多内容:
  apt-key add <file>          - add the key contained in <file> ('-' for stdin)
  apt-key del <keyid>         - remove the key <keyid>
  apt-key export <keyid>      - output the key <keyid>
  apt-key exportall           - output all trusted keys
  apt-key update              - update keys using the keyring package
  apt-key net-update          - update keys using the network
  apt-key list                - list keys







apt-file
apt-file是一个软件包查找工具,可以查到软件包所含的文件和安装的位置。
apt-file update
更新软件包的文件库,第一次使用或apt-get update后都需运行一次。
apt-file search file_name
查找该文件存在于哪些软件包中。
apt-file list package_name
显示该软件包的文件。
apt-key
apt-key是Debian软件包的安全管理工具。每个发布的deb包,都是通过密钥认证的,apt-key用来管理密钥。
apt-key list
列出已保存在系统中key。
apt-key add keyname
把下载的key添加到本地trusted数据库中。
apt-key del keyname
从本地trusted数据库删除key。
apt-key update
更新本地trusted数据库,删除过期没用的key。




curl命令详解


可以看作命令行浏览器

  1. 可以看作命令行浏览器
  2. 1、开启gzip请求
  3. curl -I http://www.sina.com.cn/ -H Accept-Encoding:gzip,defalte
  4. 2、监控网页的响应时间
  5. curl -o /dev/null -s -w "time_connect: %{time_connect}\ntime_starttransfer: %{time_starttransfer}\ntime_total: %{time_total}\n" "http://www.kklinux.com"
  6. 3. 监控站点可用性
  7. curl -o /dev/null -s -w %{http_code} "http://www.kklinux.com"
  8. 4、以http1.0协议请求(默认为http1.1)
  9. curl -0 ..............
  10.       1)读取网页
  11.   $ curl linuxidc.com">http://www.linuxidc.com
  12.   2)保存网页
  13.   $ curl http://www.linuxidc.com > page.html $ curl -o page.html http://www.linuxidc.com
  14.   3)使用的proxy服务器及其端口:-x
  15.   $ curl -x 123.45.67.89:1080 -o page.html http://www.linuxidc.com
  16.   4)使用cookie来记录session信息
  17.   $ curl -x 123.45.67.89:1080 -o page.html -D cookie0001.txt http://www.linuxidc.com
  18. option: -D 是把http的response里面的cookie信息存到一个特别的文件中去,这样,当页面被存到page.html的同时,cookie信息也被存到了cookie0001.txt里面了
  19.     5)那么,下一次访问的时候,如何继续使用上次留下的cookie信息呢?
  20.   使用option来把上次的cookie信息追加到http request里面去:-b
  21.   $ curl -x 123.45.67.89:1080 -o page1.html -D cookie0002.txt -b cookie0001.txt http://www.linuxidc.com
  22. 6)浏览器信息~~~~
  23. 随意指定自己这次访问所宣称的自己的浏览器信息: -A
  24. curl -A "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)" -x 123.45.67.89:1080 -o page.html -D cookie0001.txt http://www.yahoo.com
  25. 这样,服务器端接到访问的要求,会认为你是一个运行在Windows 2000上的IE6.0,嘿嘿嘿,其实也许你用的是苹果机呢!
  26. 而"Mozilla/4.73 [en] (X11; U; Linux 2.2; 15 i686"则可以告诉对方你是一台PC上跑着的Linux,用的是Netscape 4.73,呵呵呵
  27. 7)
  28. 另外一个服务器端常用的限制方法,就是检查http访问的referer。比如你先访问首页,再访问里面所指定的下载页,这第二次访问的referer地址就是第一次访问成功后的页面地
  29. 址。这样,服务器端只要发现对下载页面某次访问的referer地址不 是首页的地址,就可以断定那是个盗连了~~~~~
  30. 讨厌讨厌~~~我就是要盗连~~~~~!!
  31. 幸好curl给我们提供了设定referer的option: -e
  32. curl -A "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)" -x 123.45.67.89:1080 -e "mail.yahoo.com" -o page.html -D cookie0001.txt http://www.yahoo.com
  33. 这样,就可以骗对方的服务器,你是从mail.yahoo.com点击某个链接过来的了,呵呵呵
  34. 8)curl 下载文件
  35. 刚才讲过了,下载页面到一个文件里,可以使用 -o ,下载文件也是一样。
  36. 比如, curl -o 1.jpg http://cgi2.tky.3web.ne.jp/~zzh/screen1.JPG
  37. 这里教大家一个新的option: -O
  38. 大写的O,这么用: curl -O http://cgi2.tky.3web.ne.jp/~zzh/screen1.JPG
  39. 这样,就可以按照服务器上的文件名,自动存在本地了!
  40. 再来一个更好用的。
  41. 如果screen1.JPG以外还有screen2.JPG、screen3.JPG、....、screen10.JPG需要下载,难不成还要让我们写一个script来完成这些操作?
  42. 不干!
  43. 在curl里面,这么写就可以了:
  44. curl -O http://cgi2.tky.3web.ne.jp/~zzh/screen[1-10].JPG
  45. 呵呵呵,厉害吧?!~~~
  46. 9)
  47. 再来,我们继续讲解下载!
  48. curl -O http://cgi2.tky.3web.ne.jp/~{zzh,nick}/[001-201].JPG
  49. 这样产生的下载,就是
  50. ~zzh/001.JPG
  51. ~zzh/002.JPG
  52. ...
  53. ~zzh/201.JPG
  54. ~nick/001.JPG
  55. ~nick/002.JPG
  56. ...
  57. ~nick/201.JPG
  58. 够方便的了吧?哈哈哈
  59. 咦?高兴得太早了。
  60. 由于zzh/nick下的文件名都是001,002...,201,下载下来的文件重名,后面的把前面的文件都给覆盖掉了~~~
  61. 没关系,我们还有更狠的!
  62. curl -o #2_#1.jpg http://cgi2.tky.3web.ne.jp/~{zzh,nick}/[001-201].JPG
  63. --这是.....自定义文件名的下载?
  64. --对头,呵呵!
  65. #1是变量,指的是{zzh,nick}这部分,第一次取值zzh,第二次取值nick
  66. #2代表的变量,则是第二段可变部分---[001-201],取值从001逐一加到201
  67. 这样,自定义出来下载下来的文件名,就变成了这样:
  68. 原来: ~zzh/001.JPG ---> 下载后: 001-zzh.JPG
  69. 原来: ~nick/001.JPG ---> 下载后: 001-nick.JPG
  70. 这样一来,就不怕文件重名啦,呵呵
  71. 9)
  72. 继续讲下载
  73. 我们平时在windows平台上,flashget这样的工具可以帮我们分块并行下载,还可以断线续传。
  74. curl在这些方面也不输给谁,嘿嘿
  75. 比如我们下载screen1.JPG中,突然掉线了,我们就可以这样开始续传
  76. curl -c -O http://cgi2.tky.3wb.ne.jp/~zzh/screen1.JPG
  77. 当然,你不要拿个flashget下载了一半的文件来糊弄我~~~~别的下载软件的半截文件可不一定能用哦~~~
  78. 分块下载,我们使用这个option就可以了: -r
  79. 举例说明
  80. 比如我们有一个http://cgi2.tky.3web.ne.jp/~zzh/zhao1.mp3 要下载(赵老师的电话朗诵 :D )
  81. 我们就可以用这样的命令:
  82. curl -r 0-10240 -o "zhao.part1" http:/cgi2.tky.3web.ne.jp/~zzh/zhao1.mp3 &\
  83. curl -r 10241-20480 -o "zhao.part1" http:/cgi2.tky.3web.ne.jp/~zzh/zhao1.mp3 &\
  84. curl -r 20481-40960 -o "zhao.part1" http:/cgi2.tky.3web.ne.jp/~zzh/zhao1.mp3 &\
  85. curl -r 40961- -o "zhao.part1" http:/cgi2.tky.3web.ne.jp/~zzh/zhao1.mp3
  86. 这样就可以分块下载啦。
  87. 不过你需要自己把这些破碎的文件合并起来
  88. 如果你用UNIX或苹果,用 cat zhao.part* > zhao.mp3就可以
  89. 如果用的是Windows,用copy /b 来解决吧,呵呵
  90. 上面讲的都是http协议的下载,其实ftp也一样可以用。
  91. 用法嘛,
  92. curl -u name:passwd ftp://ip:port/path/file
  93. 或者大家熟悉的
  94. curl ftp://name:passwd@ip:port/path/file
  95.   
  96. 10)上传的option是 -T
  97. 比如我们向ftp传一个文件: curl -T localfile -u name:passwd ftp://upload_site:port/path/
  98. 当然,向http服务器上传文件也可以
  99. 比如 curl -T localfile http://cgi2.tky.3web.ne.jp/~zzh/abc.cgi
  100. 注意,这时候,使用的协议是HTTP的PUT method
  101. 刚才说到PUT,嘿嘿,自然让老服想起来了其他几种methos还没讲呢!
  102. GET和POST都不能忘哦。
  103. http提交一个表单,比较常用的是POST模式和GET模式
  104. GET模式什么option都不用,只需要把变量写在url里面就可以了
  105. 比如:
  106. curl http://www.yahoo.com/login.cgi?user=nickwolfe&password=12345
  107. 而POST模式的option则是 -d
  108. 比如,curl -d "user=nickwolfe&password=12345" http://www.yahoo.com/login.cgi
  109. 就相当于向这个站点发出一次登陆申请~~~~~
  110. 到底该用GET模式还是POST模式,要看对面服务器的程序设定。
  111. 一点需要注意的是,POST模式下的文件上的文件上传,比如
  112. <form method="POST" enctype="multipar/form-data" action="http://cgi2.tky.3web.ne.jp/~zzh/up_file.cgi">
  113. <input type=file name=upload>
  114. <input type=submit name=nick value="go">
  115. </form>
  116. 这样一个HTTP表单,我们要用curl进行模拟,就该是这样的语法:
  117. curl -F upload=@localfile -F nick=go http://cgi2.tky.3web.ne.jp/~zzh/up_file.cgi
  118. 罗罗嗦嗦讲了这么多,其实curl还有很多很多技巧和用法
  119. 比如 https的时候使用本地证书,就可以这样
  120. curl -E localcert.pem https://remote_server
  121. 再比如,你还可以用curl通过dict协议去查字典~~~~~
  122. curl dict://dict.org/d:computer
  123. 今天为了检查所有刺猬主机上所有域名是否有备案.在使用wget不爽的情况下,找到了curl这个命令行流量器命令.发现其对post的调用还是蛮好的.特别有利于对提交信息及变
  124. 更参数进行较验.对于我想将几十万域名到miibeian.gov.cn进行验证是否有备案信息非常有用.发现这篇文章很不错,特为转贴.
  125. 我的目标:
  126. curl -d "cxfs=1&ym=xieyy.cn" http://www.miibeian.gov.cn/baxx_cx_servlet
  127. 在出来的信息中进行过滤,提取备案号信息,并设置一个标识位.将域名,备案号及标识位入库
  128. 用curl命令,post提交带空格的数据
  129. 今天偶然遇到一个情况,我想用curl登入一个网页,无意间发现要post的数据里带空格。比如用户名为"abcdef",密码为"abc def",其中有一个空格,按照我以前的方式提交:
  130. curl -D cookie -d "username=abcdef&password=abc def" http://login.xxx.com/提示登入失败。
  131. 于是查看curl手册man curl。找到:
  132. d/--data (HTTP) Sends the speci?ed data in a POST request to the HTTP server, in a way that can emulate as if a user has ?lled in a HTML form and pressed the
  133. submit button. Note that the data is sent exactly as speci?ed with no extra processing (with all newlines cut off). The data is expected to be "url-encoded".
  134. This will cause curl to pass the data to the server using the content-type application/x-www-form-urlencoded. Compare to -F/--form. If this option is used
  135. more than once on the same command line, the data pieces speci?ed will be merged together with a separating &-letter. Thus, using ’-d name=daniel -d
  136. skill=lousy’ would generate a post chunk that looks like ’name=daniel&skill=lousy’.
  137. 于是改用:
  138. curl -D cookie -d "username=abcdef" -d "password=abc efg" http://login.xxx.com/这样就能成功登入了。
  139. (责任编辑:飘飞的夜)
  140. Curl是Linux下一个很强大的http命令行工具,其功能十分强大。
  141. 1) 二话不说,先从这里开始吧!
  142. $ curl http://www.linuxidc.com
  143. 回车之后,www.linuxidc.com 的html就稀里哗啦地显示在屏幕上了    ~
  144. 2) 嗯,要想把读过来页面存下来,是不是要这样呢?
  145. $ curl http://www.linuxidc.com > page.html
  146. 当然可以,但不用这么麻烦的!
  147. 用curl的内置option就好,存下http的结果,用这个option: -o
  148. $ curl -o page.html http://www.linuxidc.com
  149. 这样,你就可以看到屏幕上出现一个下载页面进度指示。等进展到100%,自然就 OK咯
  150. 3) 什么什么?!访问不到?肯定是你的proxy没有设定了。
  151. 使用curl的时候,用这个option可以指定http访问所使用的proxy服务器及其端口: -x
  152. $ curl -x 123.45.67.89:1080 -o page.html http://www.linuxidc.com
  153. 4) 访问有些网站的时候比较讨厌,他使用cookie来记录session信息。
  154. 像IE/NN这样的浏览器,当然可以轻易处理cookie信息,但我们的curl呢?.....
  155. 我们来学习这个option: -D <— 这个是把http的response里面的cookie信息存到一个特别的文件中去
  156. $ curl -x 123.45.67.89:1080 -o page.html -D cookie0001.txt http://www.linuxidc.com
  157. 这样,当页面被存到page.html的同时,cookie信息也被存到了cookie0001.txt里面了
  158. 5)那么,下一次访问的时候,如何继续使用上次留下的cookie信息呢?要知道,很多网站都是靠监视你的cookie信息,来判断你是不是不按规矩访问他们的网站的。
  159. 这次我们使用这个option来把上次的cookie信息追加到http request里面去: -b
  160. $ curl -x 123.45.67.89:1080 -o page1.html -D cookie0002.txt -b cookie0001.txt http://www.linuxidc.com
  161. 这样,我们就可以几乎模拟所有的IE操作,去访问网页了!
  162. 6)稍微等等    ~我好像忘记什么了    ~
  163. 对了!是浏览器信息
  164. 有些讨厌的网站总要我们使用某些特定的浏览器去访问他们,有时候更过分的是,还要使用某些特定的版本    NND,哪里有时间为了它去找这些怪异的浏览器呢!?
  165. 好在curl给我们提供了一个有用的option,可以让我们随意指定自己这次访问所宣称的自己的浏览器信息: -A
  166. $ curl -A "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)" -x 123.45.67.89:1080 -o page.html -D cookie0001.txt http://www.linuxidc.com
  167. 这样,服务器端接到访问的要求,会认为你是一个运行在Windows 2000上的 IE6.0,嘿嘿嘿,其实也许你用的是苹果机呢!
  168. 而"Mozilla/4.73 [en] (X11; U; Linux 2.2; 15 i686"则可以告诉对方你是一台 PC上跑着的Linux,用的是Netscape 4.73,呵呵呵
  169. 7)另外一个服务器端常用的限制方法,就是检查http访问的referer。比如你先访问首页,再访问里面所指定的下载页,这第二次访问的 referer地址就是第一次访问成功后的页面地址。这样,服务器端只要发现对下载页面某次访问的referer地址不是首页的地址,就可以断定那是个盗 连了    ~
  170. 讨厌讨厌 ~我就是要盗连    ~!!
  171. 幸好curl给我们提供了设定referer的option: -e
  172. $ curl -A "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)" -x 123.45.67.89:1080 -e "mail.linuxidc.com" -o page.html -D cookie0001.txt http://www.linuxidc.com
  173. 这样,就可以骗对方的服务器,你是从mail.linuxidc.com点击某个链接过来的了,呵呵呵
  174. 8)写着写着发现漏掉什么重要的东西了!——- 利用curl 下载文件
  175. 刚才讲过了,下载页面到一个文件里,可以使用 -o ,下载文件也是一样。比如,
  176. $ curl -o 1.jpg http://cgi2.tky.3web.ne.jp/~zzh/screen1.JPG
  177. 这里教大家一个新的option: -O 大写的O,这么用:
  178. $ curl -O http://cgi2.tky.3web.ne.jp/~zzh/screen1.JPG
  179. 这样,就可以按照服务器上的文件名,自动存在本地了!
  180. 再来一个更好用的。
  181. 如果screen1.JPG以外还有screen2.JPG、screen3.JPG、....、screen10.JPG需要下载,难不成还要让我们写一个script来完成这些操作?
  182. 不干!
  183. 在curl里面,这么写就可以了:
  184. $ curl -O http://cgi2.tky.3web.ne.jp/~zzh/screen[1-10].JPG
  185. 呵呵呵,厉害吧?! ~
  186. 9)再来,我们继续讲解下载!
  187. $ curl -O http://cgi2.tky.3web.ne.jp/~{zzh,nick}/[001-201].JPG
  188. 这样产生的下载,就是
  189. ~zzh/001.JPG
  190. ~zzh/002.JPG
  191. ...
  192. ~zzh/201.JPG
  193. ~nick/001.JPG
  194. ~nick/002.JPG
  195. ...
  196. ~nick/201.JPG
  197. 够方便的了吧?哈哈哈
  198. 咦?高兴得太早了。
  199. 由于zzh/nick下的文件名都是001,002...,201,下载下来的文件重名,后面的把前面的文件都给覆盖掉了 ~
  200. 没关系,我们还有更狠的!
  201. $ curl -o #2_#1.jpg http://cgi2.tky.3web.ne.jp/~{zzh,nick}/[001-201].JPG
  202. —这是.....自定义文件名的下载? —对头,呵呵!
  203. 这样,自定义出来下载下来的文件名,就变成了这样:原来: ~zzh/001.JPG —-> 下载后: 001-zzh.JPG 原来: ~nick/001.JPG —-> 下载后: 001-nick.JPG
  204. 这样一来,就不怕文件重名啦,呵呵
  205. 对于windows用户如果用Cygwin模拟unix环境的话,里面没有带curl命令,要自己装,所以建议用Gow来模拟,它已经自带了curl工具,安装后直接在cmd环境中用curl命令就可,因为路径已经自动给你配置好了。
  206.     linux curl是一个利用URL规则在命令行下工作的文件传输工具。它支持文件的上传和下载,所以是综合传输工具,但按传统,习惯称url为下载工具。
  207.   一,curl命令参数,有好多我没有用过,也不知道翻译的对不对,如果有误的地方,还请指正。
  208.   -a/--append 上传文件时,附加到目标文件
  209.   -A/--user-agent <string>  设置用户代理发送给服务器
  210.   - anyauth   可以使用“任何”身份验证方法
  211.   -b/--cookie <name=string/file> cookie字符串或文件读取位置
  212.   - basic 使用HTTP基本验证
  213.   -B/--use-ascii 使用ASCII /文本传输
  214.   -c/--cookie-jar <file> 操作结束后把cookie写入到这个文件中
  215.   -C/--continue-at <offset>  断点续转
  216.   -d/--data <data>   HTTP POST方式传送数据
  217.   --data-ascii <data>  以ascii的方式post数据
  218.   --data-binary <data> 以二进制的方式post数据
  219.   --negotiate     使用HTTP身份验证
  220.   --digest        使用数字身份验证
  221.   --disable-eprt  禁止使用EPRT或LPRT
  222.   --disable-epsv  禁止使用EPSV
  223.   -D/--dump-header <file> 把header信息写入到该文件中
  224.   --egd-file <file> 为随机数据(SSL)设置EGD socket路径
  225.   --tcp-nodelay   使用TCP_NODELAY选项
  226.   -e/--referer 来源网址
  227.   -E/--cert <cert[:passwd]> 客户端证书文件和密码 (SSL)
  228.   --cert-type <type> 证书文件类型 (DER/PEM/ENG) (SSL)
  229.   --key <key>     私钥文件名 (SSL)
  230.   --key-type <type> 私钥文件类型 (DER/PEM/ENG) (SSL)
  231.   --pass  <pass>  私钥密码 (SSL)
  232.   --engine <eng>  加密引擎使用 (SSL). "--engine list" for list
  233.   --cacert <file> CA证书 (SSL)
  234.   --capath <directory> CA目录 (made using c_rehash) to verify peer against (SSL)
  235.   --ciphers <list>  SSL密码
  236.   --compressed    要求返回是压缩的形势 (using deflate or gzip)
  237.   --connect-timeout <seconds> 设置最大请求时间
  238.   --create-dirs   建立本地目录的目录层次结构
  239.   --crlf          上传是把LF转变成CRLF
  240.   -f/--fail          连接失败时不显示http错误
  241.   --ftp-create-dirs 如果远程目录不存在,创建远程目录
  242.   --ftp-method [multicwd/nocwd/singlecwd] 控制CWD的使用
  243.   --ftp-pasv      使用 PASV/EPSV 代替端口
  244.   --ftp-skip-pasv-ip 使用PASV的时候,忽略该IP地址
  245.   --ftp-ssl       尝试用 SSL/TLS 来进行ftp数据传输
  246.   --ftp-ssl-reqd  要求用 SSL/TLS 来进行ftp数据传输
  247.   -F/--form <name=content> 模拟http表单提交数据
  248.   -form-string <name=string> 模拟http表单提交数据
  249.   -g/--globoff 禁用网址序列和范围使用{}和[]
  250.   -G/--get 以get的方式来发送数据
  251.   -h/--help 帮助
  252.   -H/--header <line>自定义头信息传递给服务器
  253.   --ignore-content-length  忽略的HTTP头信息的长度
  254.   -i/--include 输出时包括protocol头信息
  255.   -I/--head  只显示文档信息
  256.   从文件中读取-j/--junk-session-cookies忽略会话Cookie
  257.   - 界面<interface>指定网络接口/地址使用
  258.   - krb4 <级别>启用与指定的安全级别krb4
  259.   -j/--junk-session-cookies 读取文件进忽略session cookie
  260.   --interface <interface> 使用指定网络接口/地址
  261.   --krb4 <level>  使用指定安全级别的krb4
  262.   -k/--insecure 允许不使用证书到SSL站点
  263.   -K/--config  指定的配置文件读取
  264.   -l/--list-only 列出ftp目录下的文件名称
  265.   --limit-rate <rate> 设置传输速度
  266.   --local-port<NUM> 强制使用本地端口号
  267.   -m/--max-time <seconds> 设置最大传输时间
  268.   --max-redirs <num> 设置最大读取的目录数
  269.   --max-filesize <bytes> 设置最大下载的文件总量
  270.   -M/--manual  显示全手动
  271.   -n/--netrc 从netrc文件中读取用户名和密码
  272.   --netrc-optional 使用 .netrc 或者 URL来覆盖-n
  273.   --ntlm          使用 HTTP NTLM 身份验证
  274.   -N/--no-buffer 禁用缓冲输出
  275.   -o/--output 把输出写到该文件中
  276.   -O/--remote-name 把输出写到该文件中,保留远程文件的文件名
  277.   -p/--proxytunnel   使用HTTP代理
  278.   --proxy-anyauth 选择任一代理身份验证方法
  279.   --proxy-basic   在代理上使用基本身份验证
  280.   --proxy-digest  在代理上使用数字身份验证
  281.   --proxy-ntlm    在代理上使用ntlm身份验证
  282.   -P/--ftp-port <address> 使用端口地址,而不是使用PASV
  283.   -Q/--quote <cmd>文件传输前,发送命令到服务器
  284.   -r/--range <range>检索来自HTTP/1.1或FTP服务器字节范围
  285.   --range-file 读取(SSL)的随机文件
  286.   -R/--remote-time   在本地生成文件时,保留远程文件时间
  287.   --retry <num>   传输出现问题时,重试的次数
  288.   --retry-delay <seconds>  传输出现问题时,设置重试间隔时间
  289.   --retry-max-time <seconds> 传输出现问题时,设置最大重试时间
  290.   -s/--silent静音模式。不输出任何东西
  291.   -S/--show-error   显示错误
  292.   --socks4 <host[:port]> 用socks4代理给定主机和端口
  293.   --socks5 <host[:port]> 用socks5代理给定主机和端口
  294.   --stderr <file>
  295. -t/--telnet-option <OPT=val> Telnet选项设置
  296.   --trace <file>  对指定文件进行debug
  297.   --trace-ascii <file> Like --跟踪但没有hex输出
  298.   --trace-time    跟踪/详细输出时,添加时间戳
  299.   -T/--upload-file <file> 上传文件
  300.   --url <URL>     Spet URL to work with
  301.   -u/--user <user[:password]>设置服务器的用户和密码
  302.   -U/--proxy-user <user[:password]>设置代理用户名和密码
  303.   -v/--verbose
  304.   -V/--version 显示版本信息
  305.   -w/--write-out [format]什么输出完成后
  306.   -x/--proxy <host[:port]>在给定的端口上使用HTTP代理
  307.   -X/--request <command>指定什么命令
  308.   -y/--speed-time 放弃限速所要的时间。默认为30
  309.   -Y/--speed-limit 停止传输速度的限制,速度时间'秒
  310.   -z/--time-cond  传送时间设置
  311.   -0/--http1.0  使用HTTP 1.0
  312.   -1/--tlsv1  使用TLSv1(SSL)
  313.   -2/--sslv2 使用SSLv2的(SSL)
  314.   -3/--sslv3         使用的SSLv3(SSL)
  315.   --3p-quote      like -Q for the source URL for 3rd party transfer
  316.   --3p-url        使用url,进行第三方传送
  317.   --3p-user       使用用户名和密码,进行第三方传送
  318.   -4/--ipv4   使用IP4
  319.   -6/--ipv6   使用IP6
  320.   -#/--progress-bar 用进度条显示当前的传送状态
  321.   -a/--append 上传文件时,附加到目标文件
  322.   -A/--user-agent <string>  设置用户代理发送给服务器
  323.   - anyauth   可以使用“任何”身份验证方法
  324.   -b/--cookie <name=string/file> cookie字符串或文件读取位置
  325.   - basic 使用HTTP基本验证
  326.   -B/--use-ascii 使用ASCII /文本传输
  327.   -c/--cookie-jar <file> 操作结束后把cookie写入到这个文件中
  328.   -C/--continue-at <offset>  断点续转
  329.   -d/--data <data>   HTTP POST方式传送数据
  330.   --data-ascii <data>  以ascii的方式post数据
  331.   --data-binary <data> 以二进制的方式post数据
  332.   --negotiate     使用HTTP身份验证
  333.   --digest        使用数字身份验证
  334.   --disable-eprt  禁止使用EPRT或LPRT
  335.   --disable-epsv  禁止使用EPSV
  336.   -D/--dump-header <file> 把header信息写入到该文件中
  337.   --egd-file <file> 为随机数据(SSL)设置EGD socket路径
  338.   --tcp-nodelay   使用TCP_NODELAY选项
  339.   -e/--referer 来源网址
  340.   -E/--cert <cert[:passwd]> 客户端证书文件和密码 (SSL)
  341.   --cert-type <type> 证书文件类型 (DER/PEM/ENG) (SSL)
  342.   --key <key>     私钥文件名 (SSL)
  343.   --key-type <type> 私钥文件类型 (DER/PEM/ENG) (SSL)
  344.   --pass  <pass>  私钥密码 (SSL)
  345.   --engine <eng>  加密引擎使用 (SSL). "--engine list" for list
  346.   --cacert <file> CA证书 (SSL)
  347.   --capath <directory> CA目录 (made using c_rehash) to verify peer against (SSL)
  348.   --ciphers <list>  SSL密码
  349.   --compressed    要求返回是压缩的形势 (using deflate or gzip)
  350.   --connect-timeout <seconds> 设置最大请求时间
  351.   --create-dirs   建立本地目录的目录层次结构
  352.   --crlf          上传是把LF转变成CRLF
  353.   -f/--fail          连接失败时不显示http错误
  354.   --ftp-create-dirs 如果远程目录不存在,创建远程目录
  355.   --ftp-method [multicwd/nocwd/singlecwd] 控制CWD的使用
  356.   --ftp-pasv      使用 PASV/EPSV 代替端口
  357.   --ftp-skip-pasv-ip 使用PASV的时候,忽略该IP地址
  358.   --ftp-ssl       尝试用 SSL/TLS 来进行ftp数据传输
  359.   --ftp-ssl-reqd  要求用 SSL/TLS 来进行ftp数据传输
  360.   -F/--form <name=content> 模拟http表单提交数据
  361.   -form-string <name=string> 模拟http表单提交数据
  362.   -g/--globoff 禁用网址序列和范围使用{}和[]
  363.   -G/--get 以get的方式来发送数据
  364.   -h/--help 帮助
  365.   -H/--header <line>自定义头信息传递给服务器
  366.   --ignore-content-length  忽略的HTTP头信息的长度
  367.   -i/--include 输出时包括protocol头信息
  368.   -I/--head  只显示文档信息
  369.   从文件中读取-j/--junk-session-cookies忽略会话Cookie
  370.   - 界面<interface>指定网络接口/地址使用
  371.   - krb4 <级别>启用与指定的安全级别krb4
  372.   -j/--junk-session-cookies 读取文件进忽略session cookie
  373.   --interface <interface> 使用指定网络接口/地址
  374.   --krb4 <level>  使用指定安全级别的krb4
  375.   -k/--insecure 允许不使用证书到SSL站点
  376.   -K/--config  指定的配置文件读取
  377.   -l/--list-only 列出ftp目录下的文件名称
  378.   --limit-rate <rate> 设置传输速度
  379.   --local-port<NUM> 强制使用本地端口号
  380.   -m/--max-time <seconds> 设置最大传输时间
  381.   --max-redirs <num> 设置最大读取的目录数
  382.   --max-filesize <bytes> 设置最大下载的文件总量
  383. -M/--manual  显示全手动
  384.   -n/--netrc 从netrc文件中读取用户名和密码
  385.   --netrc-optional 使用 .netrc 或者 URL来覆盖-n
  386.   --ntlm          使用 HTTP NTLM 身份验证
  387.   -N/--no-buffer 禁用缓冲输出
  388.   -o/--output 把输出写到该文件中
  389.   -O/--remote-name 把输出写到该文件中,保留远程文件的文件名
  390.   -p/--proxytunnel   使用HTTP代理
  391.   --proxy-anyauth 选择任一代理身份验证方法
  392.   --proxy-basic   在代理上使用基本身份验证
  393.   --proxy-digest  在代理上使用数字身份验证
  394.   --proxy-ntlm    在代理上使用ntlm身份验证
  395.   -P/--ftp-port <address> 使用端口地址,而不是使用PASV
  396.   -Q/--quote <cmd>文件传输前,发送命令到服务器
  397.   -r/--range <range>检索来自HTTP/1.1或FTP服务器字节范围
  398.   --range-file 读取(SSL)的随机文件
  399.   -R/--remote-time   在本地生成文件时,保留远程文件时间
  400.   --retry <num>   传输出现问题时,重试的次数
  401.   --retry-delay <seconds>  传输出现问题时,设置重试间隔时间
  402.   --retry-max-time <seconds> 传输出现问题时,设置最大重试时间
  403.   -s/--silent静音模式。不输出任何东西
  404.   -S/--show-error   显示错误
  405.   --socks4 <host[:port]> 用socks4代理给定主机和端口
  406.   --socks5 <host[:port]> 用socks5代理给定主机和端口
  407.   --stderr <file>
  408.   -t/--telnet-option <OPT=val> Telnet选项设置
  409.   --trace <file>  对指定文件进行debug
  410.   --trace-ascii <file> Like --跟踪但没有hex输出
  411.   --trace-time    跟踪/详细输出时,添加时间戳
  412.   -T/--upload-file <file> 上传文件
  413.   --url <URL>     Spet URL to work with
  414.   -u/--user <user[:password]>设置服务器的用户和密码
  415.   -U/--proxy-user <user[:password]>设置代理用户名和密码
  416.   -v/--verbose
  417.   -V/--version 显示版本信息
  418.   -w/--write-out [format]什么输出完成后
  419.   -x/--proxy <host[:port]>在给定的端口上使用HTTP代理
  420.   -X/--request <command>指定什么命令
  421.   -y/--speed-time 放弃限速所要的时间。默认为30
  422.   -Y/--speed-limit 停止传输速度的限制,速度时间'秒
  423.   -z/--time-cond  传送时间设置
  424.   -0/--http1.0  使用HTTP 1.0
  425.   -1/--tlsv1  使用TLSv1(SSL)
  426.   -2/--sslv2 使用SSLv2的(SSL)
  427.   -3/--sslv3         使用的SSLv3(SSL)
  428.   --3p-quote      like -Q for the source URL for 3rd party transfer
  429.   --3p-url        使用url,进行第三方传送
  430.   --3p-user       使用用户名和密码,进行第三方传送
  431.   -4/--ipv4   使用IP4
  432.   -6/--ipv6   使用IP6
  433.   -#/--progress-bar 用进度条显示当前的传送状态
  434.   二,常用curl实例
  435.   1,抓取页面内容到一个文件中
  436.   [root@krlcgcms01 mytest]# curl -o home.html  http://blog.51yip.com
  437.   [root@krlcgcms01 mytest]# curl -o home.html  http://blog.51yip.com
  438.   2,用-O(大写的),后面的url要具体到某个文件,不然抓不下来。我们还可以用正则来抓取东西
  439.   [root@krlcgcms01 mytest]# curl -O
  440.   [root@krlcgcms01 mytest]# curl -O
  441.   3,模拟表单信息,模拟登录,保存cookie信息
  442.   [root@krlcgcms01 mytest]# curl -c ./cookie_c.txt -F log=aaaa -F pwd=****** http://blog.51yip.com/wp-login.php
  443.   [root@krlcgcms01 mytest]# curl -c ./cookie_c.txt -F log=aaaa -F pwd=****** http://blog.51yip.com/wp-login.php
  444.   4,模拟表单信息,模拟登录,保存头信息
  445.   [root@krlcgcms01 mytest]# curl -D ./cookie_D.txt -F log=aaaa -F pwd=****** http://blog.51yip.com/wp-login.php
  446.   [root@krlcgcms01 mytest]# curl -D ./cookie_D.txt -F log=aaaa -F pwd=****** http://blog.51yip.com/wp-login.php
  447.   -c(小写)产生的cookie和-D里面的cookie是不一样的。
  448.   5,使用cookie文件
  449.   [root@krlcgcms01 mytest]# curl -b ./cookie_c.txt  http://blog.51yip.com/wp-admin
  450.   [root@krlcgcms01 mytest]# curl -b ./cookie_c.txt  http://blog.51yip.com/wp-admin
  451.   6,断点续传,-C(大写的)
  452.   [root@krlcgcms01 mytest]# curl -C -O
  453.   7,传送数据,最好用登录页面测试,因为你传值过去后,curl回抓数据,你可以看到你传值有没有成功
  454.   [root@krlcgcms01 mytest]# curl -d log=aaaa  http://blog.51yip.com/wp-login.php
  455.   [root@krlcgcms01 mytest]# curl -d log=aaaa  http://blog.51yip.com/wp-login.php
  456.   8,显示抓取错误,下面这个例子,很清楚的表明了。
  457.   [root@krlcgcms01 mytest]# curl -f http://blog.51yip.com/asdf
  458.   curl: (22) The requested URL returned error: 404
  459.   [root@krlcgcms01 mytest]# curl http://blog.51yip.com/asdf
  460.   <HTML><HEAD><TITLE>404,not found</TITLE>
  461.   。。。。。。。。。。。。
  462.   [root@krlcgcms01 mytest]# curl -f http://blog.51yip.com/asdf
  463.   curl: (22) The requested URL returned error: 404
  464.   [root@krlcgcms01 mytest]# curl http://blog.51yip.com/asdf
  465.   <HTML><HEAD><TITLE>404,not found</TITLE>
  466.   。。。。。。。。。。。。
  467.   9,伪造来源地址,有的网站会判断,请求来源地址。
  468.   [root@krlcgcms01 mytest]# curl -e http://localhost http://blog.51yip.com/wp-login.php
  469.   [root@krlcgcms01 mytest]# curl -e http://localhost http://blog.51yip.com/wp-login.php
  470.   10,当我们经常用curl去搞人家东西的时候,人家会把你的IP给屏蔽掉的,这个时候,我们可以用代理
  471.   [root@krlcgcms01 mytest]# curl -x 24.10.28.84:32779 -o home.html http://blog.51yip.com
  472.   [root@krlcgcms01 mytest]# curl -x 24.10.28.84:32779 -o home.html http://blog.51yip.com
  473. 11,比较大的东西,我们可以分段下载
  474.   [root@krlcgcms01 mytest]# curl -r 0-100 -o img.part1 http://blog.51yip.com/wp-
  475.   content/uploads/2010/09/compare_varnish.jpg
  476.   % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
  477.   Dload  Upload   Total   Spent    Left  Speed
  478.   100   101  100   101    0     0    105      0 --:--:-- --:--:-- --:--:--     0
  479.   [root@krlcgcms01 mytest]# curl -r 100-200 -o img.part2 http://blog.51yip.com/wp-
  480.   content/uploads/2010/09/compare_varnish.jpg
  481.   % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
  482.   Dload  Upload   Total   Spent    Left  Speed
  483.   100   101  100   101    0     0     57      0  0:00:01  0:00:01 --:--:--     0
  484.   [root@krlcgcms01 mytest]# curl -r 200- -o img.part3 http://blog.51yip.com/wp-
  485.   content/uploads/2010/09/compare_varnish.jpg
  486.   % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
  487.   Dload  Upload   Total   Spent    Left  Speed
  488.   100  104k  100  104k    0     0  52793      0  0:00:02  0:00:02 --:--:-- 88961
  489.   [root@krlcgcms01 mytest]# ls |grep part | xargs du -sh
  490.   4.0K    one.part1
  491.   112K    three.part3
  492.   4.0K    two.part2
  493.   [root@krlcgcms01 mytest]# curl -r 0-100 -o img.part1 http://blog.51yip.com/wp-
  494.   content/uploads/2010/09/compare_varnish.jpg
  495.   % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
  496.   Dload  Upload   Total   Spent    Left  Speed
  497.   100   101  100   101    0     0    105      0 --:--:-- --:--:-- --:--:--     0
  498.   [root@krlcgcms01 mytest]# curl -r 100-200 -o img.part2 http://blog.51yip.com/wp-
  499.   content/uploads/2010/09/compare_varnish.jpg
  500.   % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
  501.   Dload  Upload   Total   Spent    Left  Speed
  502.   100   101  100   101    0     0     57      0  0:00:01  0:00:01 --:--:--     0
  503.   [root@krlcgcms01 mytest]# curl -r 200- -o img.part3 http://blog.51yip.com/wp-
  504.   content/uploads/2010/09/compare_varnish.jpg
  505.   % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
  506.   Dload  Upload   Total   Spent    Left  Speed
  507.   100  104k  100  104k    0     0  52793      0  0:00:02  0:00:02 --:--:-- 88961
  508.   [root@krlcgcms01 mytest]# ls |grep part | xargs du -sh
  509.   4.0K    one.part1
  510.   112K    three.part3
  511.   4.0K    two.part2
  512.   用的时候,把他们cat一下就OK了,cat img.part* >img.jpg
  513.   12,不会显示下载进度信息
  514.   [root@krlcgcms01 mytest]# curl -s -o aaa.jpg
  515.   13,显示下载进度条
  516.   [root@krlcgcms01 mytest]# curl -# -O
  517.   ######################################################################## 100.0%
  518.   14,通过ftp下载文件
  519.   [zhangy@BlackGhost ~]$ curl -u 用户名:密码 -O http://blog.51yip.com/demo/curtain/bbstudy_files/style.css
  520.   % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
  521.   Dload  Upload   Total   Spent    Left  Speed
  522.   101  1934  101  1934    0     0   3184      0 --:--:-- --:--:-- --:--:--  7136
  523.   [zhangy@BlackGhost ~]$ curl -u 用户名:密码 -O http://blog.51yip.com/demo/curtain/bbstudy_files/style.css
  524.   % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
  525.   Dload  Upload   Total   Spent    Left  Speed
  526.   101  1934  101  1934    0     0   3184      0 --:--:-- --:--:-- --:--:--  7136
  527.   或者用下面的方式
  528.   [zhangy@BlackGhost ~]$ curl -O ftp://用户名:密码@ip:port/demo/curtain/bbstudy_files/style.css
  529.   [zhangy@BlackGhost ~]$ curl -O ftp://用户名:密码@ip:port/demo/curtain/bbstudy_files/style.css
  530.   15,通过ftp上传
  531.   [zhangy@BlackGhost ~]$ curl -T test.sql ftp://用户名:密码@ip:port/demo/curtain/bbstudy_files/
  532.   [zhangy@BlackGhost ~]$ curl -T test.sql ftp://用户名:密码@ip:port/demo/curtain/bbstudy_files/
复制代码










没找到任何评论,期待你打破沉寂

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

推荐上一条 /2 下一条