linux curl命令の詳細および実例

8791 ワード

転載してからhttp://blog.51yip.com/linux/1049.html
linux curlは、URLルールを利用してコマンドラインで動作するファイル転送ツールである.ファイルのアップロードとダウンロードをサポートしていますので、総合転送ツールですが、伝統的にはurlをダウンロードツールと呼びます.
一curlコマンドパラメータ
-a/--append      ,       
 -A/--user-agent <string>              
 - anyauth       “  ”      
 -b/--cookie <name=string/file> cookie          
 - basic   HTTP    
 -B/--use-ascii   ASCII /    
 -c/--cookie-jar <file>       cookie        
 -C/--continue-at <offset>      
 -d/--data <data>   HTTP POST      
 --data-ascii <data>   ascii   post  
 --data-binary <data>        post  
 --negotiate       HTTP    
 --digest                
 --disable-eprt      EPRT LPRT
 --disable-epsv      EPSV
 -D/--dump-header <file>  header         
 --egd-file <file>      (SSL)  EGD socket  
 --tcp-nodelay     TCP_NODELAY  
 -e/--referer     
 -E/--cert <cert[:passwd]>            (SSL)
 --cert-type <type>        (DER/PEM/ENG) (SSL)
 --key <key>           (SSL)
 --key-type <type>        (DER/PEM/ENG) (SSL)
 --pass  <pass>       (SSL)
 --engine <eng>         (SSL). "--engine list" for list
 --cacert <file> CA   (SSL)
 --capath <directory> CA   (made using c_rehash) to verify peer against (SSL)
 --ciphers <list>  SSL  
 --compressed               (using deflate or gzip)
 --connect-timeout <seconds>         
 --create-dirs                
 --crlf              LF   CRLF
 -f/--fail                  http  
 --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 <name=content>   http      
 -form-string <name=string>   http      
 -g/--globoff            {} []
 -G/--get  get        
 -h/--help   
 -H/--header <line>            
 --ignore-content-length     HTTP      
 -i/--include      protocol   
 -I/--head         
       -j/--junk-session-cookies    Cookie
 -   <interface>      /    
 - krb4 <  >          krb4
 -j/--junk-session-cookies        session cookie
 --interface <interface>         /  
 --krb4 <level>           krb4
 -k/--insecure         SSL  
 -K/--config           
 -l/--list-only   ftp        
 --limit-rate <rate>       
 --local-port<NUM>          
 -m/--max-time <seconds>         
 --max-redirs <num>           
 --max-filesize <bytes>            
 -M/--manual       
 -n/--netrc  netrc           
 --netrc-optional    .netrc    URL   -n
 --ntlm             HTTP NTLM     
 -N/--no-buffer       
 -o/--output          
 -O/--remote-name          ,          
 -p/--proxytunnel     HTTP  
 --proxy-anyauth             
 --proxy-basic               
 --proxy-digest              
 --proxy-ntlm          ntlm    
 -P/--ftp-port <address>       ,     PASV
 -Q/--quote <cmd>     ,        
 -r/--range <range>    HTTP/1.1 FTP       
 --range-file   (SSL)     
 -R/--remote-time           ,        
 --retry <num>          ,     
 --retry-delay <seconds>         ,        
 --retry-max-time <seconds>        ,        
 -s/--silent    。       
 -S/--show-error       
 --socks4 <host[:port]>  socks4         
 --socks5 <host[:port]>  socks5         
 --stderr <file>
 -t/--telnet-option <OPT=val> Telnet    
 --trace <file>         debug
 --trace-ascii <file> Like --     hex  
 --trace-time      /     ,     
 -T/--upload-file <file>     
 --url <URL>     Spet URL to work with
 -u/--user <user[:password]>           
 -U/--proxy-user <user[:password]>          
 -v/--verbose
 -V/--version       
 -w/--write-out [format]       
 -x/--proxy <host[:port]>         HTTP  
 -X/--request <command>      
 -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
 -#/--progress-bar              
二常用例
1ページの内容をファイルに取り込む
[root@krlcgcms01 mytest]# curl -o home.html  http://blog.51yip.com  
2、-O(大文字)を使って、後のurlは具体的にあるファイルに行きます.でないと、掴めません.正規の規則を使ってものをつかむこともできます.
[root@krlcgcms01 mytest]# curl -O http://blog.51yip.com/wp-content/uploads/2010/09/compare_varnish.jpg  
[root@krlcgcms01 mytest]# curl -O http://blog.51yip.com/wp-content/uploads/2010/[0-9][0-9]/aaaaa.jpg  
3,アナログフォーム情報、アナログ登録、クッキー情報保存
<span style="background-color: rgb(255, 255, 255);">[root@krlcgcms01 mytest]# curl -c ./cookie_c.txt -F log=aaaa -F pwd=****** http://blog.51yip.com/wp-login.php</span>
4,アナログフォーム情報、アナログ登録、ヘッダ情報の保存
<span style="background-color: rgb(255, 255, 255);">[root@krlcgcms01 mytest]# curl -D ./cookie_D.txt -F log=aaaa -F pwd=****** http://blog.51yip.com/wp-login.php </span>
-c(小文字)によるクッキーと-Dのクッキーは違います.
5、クッキーファイルを使用する
[root@krlcgcms01 mytest]# curl -b ./cookie_c.txt  http://blog.51yip.com/wp-admin  
6,ブレークポイント継続、-C(大文字)
[root@krlcgcms01 mytest]# curl -C -O http://blog.51yip.com/wp-content/uploads/2010/09/compare_varnish.jpg
7,データを転送して、できるだけ登録ページでテストしたほうがいいです.あなたが値を伝えてから、curlはデータをつかみ返します.あなたの転送値が成功したかどうかを確認できます.
[root@krlcgcms01 mytest]# curl -d log=aaaa  http://blog.51yip.com/wp-login.php 
8,キャプチャエラーを表示します.以下の例は、はっきりと示しています.
[root@krlcgcms01 mytest]# curl -f http://blog.51yip.com/asdf  
curl: (22) The requested URL returned error: 404  
[root@krlcgcms01 mytest]# curl http://blog.51yip.com/asdf  
  
<HTML><HEAD><TITLE>404,not found</TITLE>  
9,出所の住所を偽造して、あるウェブサイトは判断して、出所の住所を求めます.
[root@krlcgcms01 mytest]# curl -e http://localhost http://blog.51yip.com/wp-login.php 
10,私達がいつもcurlで人のものをする時、人はあなたのIPをあげて遮ることができて、この時、私達は代行を使うことができます.
[root@krlcgcms01 mytest]# curl -x 24.10.28.84:32779 -o home.html http://blog.51yip.com 
11,比較的大きいものは段階的にダウンロードできます.
[root@krlcgcms01 mytest]# curl -r 0-100 -o img.part1 http://blog.51yip.com/wp-  
  
content/uploads/2010/09/compare_varnish.jpg  
 % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current  
 Dload  Upload   Total   Spent    Left  Speed  
100   101  100   101    0     0    105      0 --:--:-- --:--:-- --:--:--     0  
[root@krlcgcms01 mytest]# curl -r 100-200 -o img.part2 http://blog.51yip.com/wp-  
  
content/uploads/2010/09/compare_varnish.jpg  
 % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current  
 Dload  Upload   Total   Spent    Left  Speed  
100   101  100   101    0     0     57      0  0:00:01  0:00:01 --:--:--     0  
[root@krlcgcms01 mytest]# curl -r 200- -o img.part3 http://blog.51yip.com/wp-  
  
content/uploads/2010/09/compare_varnish.jpg  
 % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current  
 Dload  Upload   Total   Spent    Left  Speed  
100  104k  100  104k    0     0  52793      0  0:00:02  0:00:02 --:--:-- 88961  
[root@krlcgcms01 mytest]# ls |grep part | xargs du -sh  
4.0K    one.part1  
112K    three.part3  
4.0K    two.part2  
使う時、彼らをcatしたら大丈夫です.
cat img.part*>img.jpg
12,ダウンロード進捗情報は表示されません.
[root@krlcgcms01 mytest]# curl -s -o aaa.jpg  http://blog.51yip.com/wp-content/uploads/2010/09/compare_varnish.jpg
13、ダウンロードの進捗バーを表示します.
[root@krlcgcms01 mytest]# curl -# -O  http://blog.51yip.com/wp-content/uploads/2010/09/compare_varnish.jpg  
######################################################################## 100.0% 
14,ftpでファイルをダウンロードする
[zhangy@BlackGhost ~]$ curl -u    :   -O http://blog.51yip.com/demo/curtain/bbstudy_files/style.css  
 % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current  
 Dload  Upload   Total   Spent    Left  Speed  
101  1934  101  1934    0     0   3184      0 --:--:-- --:--:-- --:--:--  7136
または次の方法で
[zhangy@BlackGhost ~]$ curl -O ftp://   :  @ip:port/demo/curtain/bbstudy_files/style.css 
15,ftpでアップロードする
[zhangy@BlackGhost ~]$ curl -T test.sql ftp://   :  @ip:port/demo/curtain/bbstudy_files/