Curl

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

curl http://www.centos.org

通過-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)向字符">"對輸出進(jìn)行轉(zhuǎn)向輸出

同時獲取多個文件

curl -O URL1 -O URL2

若同時從同一站點(diǎn)下載多個文件時自晰,curl會嘗試重用鏈接(connection)麸俘。

通過-L選項(xiàng)進(jìn)行重定向
默認(rèn)情況下CURL不會發(fā)送HTTP Location headers(重定向).當(dāng)一個被請求頁面移動到另一個站點(diǎn)時,會發(fā)送一個HTTP Loaction header作為請求亭罪,然后將請求重定向到新的地址上笛匙。
例如:訪問google.com時洞豁,會自動將地址重定向到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>

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

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

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

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

通過使用-C選項(xiàng)可對大文件使用斷點(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 # 通過添加-C選項(xiàng)繼續(xù)對該文件進(jìn)行下載软瞎,已經(jīng)下載過的文件不會被重新下載
6 curl -C - -O http://www.gnu.org/software/gettext/manual/gettext.html
7 ###############            21.1%

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

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

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

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

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

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

CURL授權(quán)

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

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

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

CURL同樣支持FTP下載蜻展,若在url中指定的是某個文件路徑而非具體的某個要下載的文件名页滚,CURL則會列出該目錄下的所有文件名而并非下載該目錄下的所有文件

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ù)器

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


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

# 同時上傳多個文件
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

獲取更多信息

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

通過字典查詢單詞

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

傳遞請求數(shù)據(jù)

默認(rèn)curl使用GET方式請求數(shù)據(jù),這種方式下直接通過URL傳遞數(shù)據(jù)
可以通過 --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 # 也可以指定一個文件铺呵,將該文件中的內(nèi)容當(dāng)作數(shù)據(jù)傳遞給服務(wù)器端
8 curl --data @filename https://github.api.com/authorizations

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

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

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

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

除了使用GET和POST協(xié)議外闷愤,還可以通過 -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)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市讥脐,隨后出現(xiàn)的幾起案子遭居,更是在濱河造成了極大的恐慌啼器,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,126評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件俱萍,死亡現(xiàn)場離奇詭異端壳,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)枪蘑,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,254評論 2 382
  • 文/潘曉璐 我一進(jìn)店門损谦,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人岳颇,你說我怎么就攤上這事照捡。” “怎么了话侧?”我有些...
    開封第一講書人閱讀 152,445評論 0 341
  • 文/不壞的土叔 我叫張陵栗精,是天一觀的道長。 經(jīng)常有香客問我掂摔,道長术羔,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,185評論 1 278
  • 正文 為了忘掉前任乙漓,我火速辦了婚禮级历,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘叭披。我一直安慰自己寥殖,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,178評論 5 371
  • 文/花漫 我一把揭開白布涩蜘。 她就那樣靜靜地躺著嚼贡,像睡著了一般。 火紅的嫁衣襯著肌膚如雪同诫。 梳的紋絲不亂的頭發(fā)上粤策,一...
    開封第一講書人閱讀 48,970評論 1 284
  • 那天,我揣著相機(jī)與錄音误窖,去河邊找鬼叮盘。 笑死,一個胖子當(dāng)著我的面吹牛霹俺,可吹牛的內(nèi)容都是我干的柔吼。 我是一名探鬼主播,決...
    沈念sama閱讀 38,276評論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼丙唧,長吁一口氣:“原來是場噩夢啊……” “哼愈魏!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 36,927評論 0 259
  • 序言:老撾萬榮一對情侶失蹤培漏,失蹤者是張志新(化名)和其女友劉穎溪厘,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體北苟,經(jīng)...
    沈念sama閱讀 43,400評論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡桩匪,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,883評論 2 323
  • 正文 我和宋清朗相戀三年打瘪,在試婚紗的時候發(fā)現(xiàn)自己被綠了友鼻。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 37,997評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡闺骚,死狀恐怖彩扔,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情僻爽,我是刑警寧澤虫碉,帶...
    沈念sama閱讀 33,646評論 4 322
  • 正文 年R本政府宣布,位于F島的核電站胸梆,受9級特大地震影響敦捧,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜碰镜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,213評論 3 307
  • 文/蒙蒙 一兢卵、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧绪颖,春花似錦秽荤、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,204評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至牍氛,卻和暖如春晨继,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背搬俊。 一陣腳步聲響...
    開封第一講書人閱讀 31,423評論 1 260
  • 我被黑心中介騙來泰國打工紊扬, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人悠抹。 一個月前我還...
    沈念sama閱讀 45,423評論 2 352
  • 正文 我出身青樓珠月,卻偏偏與公主長得像,于是被迫代替她去往敵國和親楔敌。 傳聞我的和親對象是個殘疾皇子啤挎,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,722評論 2 345

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