Curl

下載單個(gè)文件,默認(rèn)將輸出打印到標(biāo)準(zhǔn)輸出中(STDOUT)中

curl http://www.centos.org

通過(guò)-o/-O選項(xiàng)保存下載的文件到指定的文件中:

  • -o:將文件保存為命令行中指定的文件名的文件中
  • -O:使用URL中默認(rèn)的文件名保存文件到本地
# 將文件下載到本地并命名為mygettext.html
curl -o mygettext.html http://www.gnu.org/software/gettext/manual/gettext.html
 
# 將文件保存到本地并命名為gettext.html
curl -O http://www.gnu.org/software/gettext/manual/gettext.html

同樣可以使用轉(zhuǎn)向字符">"對(duì)輸出進(jìn)行轉(zhuǎn)向輸出

同時(shí)獲取多個(gè)文件

curl -O URL1 -O URL2

若同時(shí)從同一站點(diǎn)下載多個(gè)文件時(shí),curl會(huì)嘗試重用鏈接(connection)。

通過(guò)-L選項(xiàng)進(jìn)行重定向
默認(rèn)情況下CURL不會(huì)發(fā)送HTTP Location headers(重定向).當(dāng)一個(gè)被請(qǐng)求頁(yè)面移動(dòng)到另一個(gè)站點(diǎn)時(shí),會(huì)發(fā)送一個(gè)HTTP Loaction header作為請(qǐng)求,然后將請(qǐng)求重定向到新的地址上。
例如:訪問(wèn)google.com時(shí),會(huì)自動(dòng)將地址重定向到google.com.hk上。

 1 curl http://www.google.com
 2 <HTML>
 3 <HEAD>
 4     <meta http-equiv="content-type" content="text/html;charset=utf-8">
 5     <TITLE>302 Moved</TITLE>
 6 </HEAD>
 7 <BODY>
 8     <H1>302 Moved</H1>
 9     The document has moved
10     <A >here</A>.
11 </BODY>
12 </HTML>

上述輸出說(shuō)明所請(qǐng)求的檔案被轉(zhuǎn)移到了http://www.google.com.hk。

這是可以通過(guò)使用-L選項(xiàng)進(jìn)行強(qiáng)制重定向

# 讓curl使用地址重定向,此時(shí)會(huì)查詢google.com.hk站點(diǎn)
curl -L http://www.google.com

斷點(diǎn)續(xù)傳

通過(guò)使用-C選項(xiàng)可對(duì)大文件使用斷點(diǎn)續(xù)傳功能,如:

1 # 當(dāng)文件在下載完成之前結(jié)束該進(jìn)程
2 $ curl -O http://www.gnu.org/software/gettext/manual/gettext.html
3 ##############             20.1%
4 
5 # 通過(guò)添加-C選項(xiàng)繼續(xù)對(duì)該文件進(jìn)行下載,已經(jīng)下載過(guò)的文件不會(huì)被重新下載
6 curl -C - -O http://www.gnu.org/software/gettext/manual/gettext.html
7 ###############            21.1%

對(duì)CURL使用網(wǎng)絡(luò)限速

通過(guò)--limit-rate選項(xiàng)對(duì)CURL的最大網(wǎng)絡(luò)使用進(jìn)行限制

1 # 下載速度最大不會(huì)超過(guò)1000B/second
2 
3 curl --limit-rate 1000B -O http://www.gnu.org/software/gettext/manual/gettext.html

下載指定時(shí)間內(nèi)修改過(guò)的文件

當(dāng)下載一個(gè)文件時(shí),可對(duì)該文件的最后修改日期進(jìn)行判斷,如果該文件在指定日期內(nèi)修改過(guò),就進(jìn)行下載,否則不下載。
該功能可通過(guò)使用-z選項(xiàng)來(lái)實(shí)現(xiàn):

# 若yy.html文件在2011/12/21之后有過(guò)更新才會(huì)進(jìn)行下載
curl -z 21-Dec-11 http://www.example.com/yy.html

CURL授權(quán)

在訪問(wèn)需要授權(quán)的頁(yè)面時(shí),可通過(guò)-u選項(xiàng)提供用戶名和密碼進(jìn)行授權(quán)

1 curl -u username:password URL
2 
3 # 通常的做法是在命令行只輸入用戶名,之后會(huì)提示輸入密碼,這樣可以保證在查看歷史記錄時(shí)不會(huì)將密碼泄露
4 curl -u username URL

從FTP服務(wù)器下載文件

CURL同樣支持FTP下載,若在url中指定的是某個(gè)文件路徑而非具體的某個(gè)要下載的文件名,CURL則會(huì)列出該目錄下的所有文件名而并非下載該目錄下的所有文件

1 # 列出public_html下的所有文件夾和文件
2 curl -u ftpuser:ftppass -O ftp://ftp_server/public_html/
3 
4 # 下載xss.php文件
5 curl -u ftpuser:ftppass -O ftp://ftp_server/public_html/xss.php

上傳文件到FTP服務(wù)器

通過(guò) -T 選項(xiàng)可將指定的本地文件上傳到FTP服務(wù)器上


# 將myfile.txt文件上傳到服務(wù)器
curl -u ftpuser:ftppass -T myfile.txt ftp://ftp.testserver.com

# 同時(shí)上傳多個(gè)文件
curl -u ftpuser:ftppass -T "{file1,file2}" ftp://ftp.testserver.com

# 從標(biāo)準(zhǔn)輸入獲取內(nèi)容保存到服務(wù)器指定的文件中
curl -u ftpuser:ftppass -T - ftp://ftp.testserver.com/myfile_1.txt

獲取更多信息

通過(guò)使用 -v 和 -trace獲取更多的鏈接信息

通過(guò)字典查詢單詞

1 # 查詢bash單詞的含義
2 curl dict://dict.org/d:bash
3 
4 # 列出所有可用詞典
5 curl dict://dict.org/show:db
6 
7 # 在foldoc詞典中查詢bash單詞的含義
8 curl dict://dict.org/d:bash:foldoc

為CURL設(shè)置代理

-x 選項(xiàng)可以為CURL添加代理功能

1 # 指定代理主機(jī)和端口
2 curl -x proxysever.test.com:3128 http://google.co.in

其他網(wǎng)站整理

保存與使用網(wǎng)站cookie信息

1 # 將網(wǎng)站的cookies信息保存到sugarcookies文件中
2 curl -D sugarcookies http://localhost/sugarcrm/index.php
3 
4 # 使用上次保存的cookie信息
5 curl -b sugarcookies http://localhost/sugarcrm/index.php

傳遞請(qǐng)求數(shù)據(jù)

默認(rèn)curl使用GET方式請(qǐng)求數(shù)據(jù),這種方式下直接通過(guò)URL傳遞數(shù)據(jù)
可以通過(guò) --data/-d 方式指定使用POST方式傳遞數(shù)據(jù)

1 # GET
2 curl -u username https://api.github.com/user?access_token=XXXXXXXXXX
3 
4 # POST
5 curl -u username --data "param1=value1&param2=value" https://api.github.com
6 
7 # 也可以指定一個(gè)文件,將該文件中的內(nèi)容當(dāng)作數(shù)據(jù)傳遞給服務(wù)器端
8 curl --data @filename https://github.api.com/authorizations

注:默認(rèn)情況下,通過(guò)POST方式傳遞過(guò)去的數(shù)據(jù)中若有特殊字符,首先需要將特殊字符轉(zhuǎn)義在傳遞給服務(wù)器端,如value值中包含有空格,則需要先將空格轉(zhuǎn)換成%20,如:

curl -d "value%201" http://hostname.com

在新版本的CURL中,提供了新的選項(xiàng) --data-urlencode,通過(guò)該選項(xiàng)提供的參數(shù)會(huì)自動(dòng)轉(zhuǎn)義特殊字符。

curl --data-urlencode "value 1" http://hostname.com

除了使用GET和POST協(xié)議外,還可以通過(guò) -X 選項(xiàng)指定其它協(xié)議,如:

curl -I -X DELETE https://api.github.cim

上傳文件

curl --form "fileupload=@filename.txt" http://hostname/resource
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 227,401評(píng)論 6 531
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 98,011評(píng)論 3 413
  • 文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人,你說(shuō)我怎么就攤上這事。” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 175,263評(píng)論 0 373
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我,道長(zhǎng),這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 62,543評(píng)論 1 307
  • 正文 為了忘掉前任,我火速辦了婚禮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 71,323評(píng)論 6 404
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 54,874評(píng)論 1 321
  • 那天,我揣著相機(jī)與錄音,去河邊找鬼。 笑死,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 42,968評(píng)論 3 439
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 42,095評(píng)論 0 286
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 48,605評(píng)論 1 331
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 40,551評(píng)論 3 354
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 42,720評(píng)論 1 369
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,242評(píng)論 5 355
  • 正文 年R本政府宣布,位于F島的核電站,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 43,961評(píng)論 3 345
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 34,358評(píng)論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 35,612評(píng)論 1 280
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 51,330評(píng)論 3 390
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 47,690評(píng)論 2 370

推薦閱讀更多精彩內(nèi)容