curl使用

在Linux中curl是一個(gè)利用URL規(guī)則在命令行下工作的文件傳輸工具蚊逢,可以說是一款很強(qiáng)大的http命令行工具,習(xí)慣稱url為下載工具。

用Web和FTP協(xié)議傳輸文件時(shí),URL應(yīng)用客戶端(curl命令)的功能與wget相近砚亭。不過,curl命令還能使用其他流行的協(xié)議傳輸文件殴玛,具體包括SSH協(xié)議(SCP和SFTP)钠惩、LDAP、DICT族阅、Telnet和文件。和wget支持大文件和遞歸下載不同膝捞,curl專為單步文件傳輸(single—shotfiletransfer)打造坦刀。

curl命令的用途廣泛,諸如下載蔬咬、發(fā)送各種HTTP請(qǐng)求鲤遥、指定HTTP頭部都不在話下。支持包括HTTP林艘、HTTPS 盖奈、FTP 在內(nèi)的眾多協(xié)議。它還支持POST狐援、cookie 钢坦、認(rèn)證究孕、從指定偏移處下載部分文件、參照頁(referer )爹凹、用戶代理字符串厨诸、擴(kuò)展頭部、限速禾酱、文件大小限制微酬、進(jìn)度條等特性。用法格式

curl[option] URL

基本用法:

無選項(xiàng)參數(shù)

[NSOS1.1 ~]# curl www.baidu.com??? ???????????#URL首頁html打印出來颤陶,默認(rèn)打印到STDOUT

?????? 當(dāng)我們不加任何選項(xiàng)使用 curl 時(shí)颗管,默認(rèn)會(huì)發(fā)送 GET 請(qǐng)求將下載的文件輸出到終端(所下載的數(shù)據(jù)被寫入stdout)。

-i選項(xiàng)

?????? 下載的文件和響應(yīng)頭信息同時(shí)打印到stdout滓走。

-I 選項(xiàng)

打印響應(yīng)頭部信息垦江,只打印響應(yīng)頭部(response? header)有助于進(jìn)行各種檢查或統(tǒng)計(jì)。例如闲坎,如果要檢查某個(gè)頁面是否能夠打開疫粥,并不需要下載整個(gè)頁面內(nèi)容。只用讀取HTTP響應(yīng)頭部就能夠知道這個(gè)頁面是否可用腰懂。

通過-I或--head 就可以只打印HTTP頭部信息梗逮,而無須下載遠(yuǎn)程文件。

[root@localhost~]# curl -I www.baidu.com??????????

HTTP/1.1200 OK

Accept-Ranges:bytes

Cache-Control:private, no-cache, no-store, proxy-revalidate, no-transform

Connection:Keep-Alive

Content-Length:277

Content-Type:text/html

Date:Mon, 15 Jul 2019 05:22:05 GMT

Etag:"575e1f60-115"

Last-Modified:Mon, 13 Jun 2016 02:50:08 GMT

Pragma:no-cache

Server:bfe/1.0.8.18


-k選項(xiàng)

?? 允許不使用證書到SSL站點(diǎn)

[NSOS

1.1 ~]# curl -k https://10.203.10.39??? #URL首頁html打印出來绣溜,默認(rèn)打印到STDOUT

-O選項(xiàng)

使用URL中默認(rèn)的文件名保存文件到本地慷彤,如果不將網(wǎng)頁或文件寫入stdout,就要使用-O選項(xiàng)將其寫入和URL中所指定的文件名稱相同的文件中怖喻。

如果在URL中找不到文件名底哗,則會(huì)產(chǎn)生錯(cuò)誤,因此要確保URL 指向的是遠(yuǎn)程文件锚沸。如

[root@localhost~]# curl -k -O www.baidu.com

curl:Remote file name has no length!

?

[root@localhost~]# curl?-Ohttp://swf.ishare.down.sina.com.cn/7edhKNThu1.jpg???#下載的文件命名為7edhKNThu1.jpg

? % Total???% Received % Xferd? AverageSpeed?? Time??? Time????Time? Current

???????????????????????????????? Dload? Upload??Total?? Spent??? Left?Speed

100?? 265???0?? 265??? 0????0??? 911????? 0 --:--:-- --:--:-- --:--:--?? 913

我們也可以使用-o選項(xiàng)來手動(dòng)指定文件名跋选。

-o選項(xiàng)

將文件保存為命令行中指定的文件名的文件中

[NSOS1.1 ~]# curl -k -o 88.html www.baidu.com??????#URL首頁html文件保存在執(zhí)行curl命令所在的路徑下

-H 選項(xiàng)

自定義請(qǐng)求頭信息,當(dāng)我們需要傳遞特定的header 的時(shí)候哗蜈,可以仿照以下命令來寫:

curl -H “Referer: www.example.com” -H

“User-Agent: Custom-User-Agent”?http://www.baidu.com

-D選項(xiàng)

保存http的response里面的header信息

[NSOS

1.1 ~]# curl -k -D resheader.txt https://10.203.10.88

[NSOS1.1 ~]# cat resheader.txt

HTTP/1.1200 OK

Date:Wed, 02 Mar 2016 08:49:59 GMT

Server:Apache

Set-Cookie:PHPSESSID=qofetdbqlev0dbhlv9p16sefv7; path=/; HttpOnly

Content-Length:5060

Connection:close

Content-Type:text/html; charset=UTF-8

-c選項(xiàng)

保存http的response里面的cookie信息

[NSOS1.1 ~]# curl -k -c 88.cookie https://10.203.10.88

-m選項(xiàng)

設(shè)置最大傳輸時(shí)間

-E

客戶端證書文件和密碼 (SSL)

限定帶寬

如果帶寬有限前标,又有多個(gè)用戶共享,為了平穩(wěn)流暢地分享帶寬距潘,我們可以用--limit-rate

限制cURL的下載速度:

$ curlURL --limit-rate 20k

在命令中用k(千字節(jié))和m (兆字節(jié))指定下載速度限制炼列。

認(rèn)證

可以用cURL的選項(xiàng)?-u完成HTTP或FTP 認(rèn)證。 -u username:password可用來指定用戶名和密碼音比。它也可以不指定密碼俭尖,而在后續(xù)的執(zhí)行過程中按照提示輸入密碼。例如:

$ curl-u user:pass http://test_auth.com


-d選項(xiàng)

可以很容易使用-d選項(xiàng)模擬發(fā)送POST請(qǐng)求并讀取網(wǎng)站的響應(yīng)(HTML 格式)

$ curl-d "postvar=postdata2&postvar2=postdata2"???URL

-d表示以POST 方式提交用戶數(shù)據(jù)。-d參數(shù)的內(nèi)容應(yīng)該以引用的形式給出稽犁。否則焰望,& 會(huì)被shell 解讀為該命令需要作為后臺(tái)進(jìn)程運(yùn)行。

-X

curl 默認(rèn)的 HTTP 動(dòng)詞是 GET缭付,使用?-X?參數(shù)可以支持其他動(dòng)詞柿估。如head

[root@localhostnewtest]# curl -I -X?HEAD"www.baidu.com"

HTTP/1.1200 OK

Accept-Ranges:bytes

Cache-Control:private, no-cache, no-store, proxy-revalidate, no-transform

Connection:Keep-Alive

Content-Length:277

Content-Type:text/html

Date:Wed, 17 Jul 2019 01:53:39 GMT

Etag:"575e1f60-115"

Last-Modified:Mon, 13 Jun 2016 02:50:08 GMT

Pragma:no-cache

Server:bfe/1.0.8.18

-L

允許URL重定向,如果直接使用 curl 打開某些需要被重定向后的URL陷猫,這種情況下就無法獲取我們想要的網(wǎng)頁內(nèi)容秫舌。例如:

[root@localhost~]# curl http://codebelief.com

301Moved Permanently

301Moved Permanently


nginx/1.15.6

[root@localhost~]#

而當(dāng)我們通過瀏覽器打開該鏈接時(shí),會(huì)自動(dòng)跳轉(zhuǎn)到http://www.codebelief.com绣檬。此時(shí)我們想要 curl 做的足陨,就是像瀏覽器一樣跟隨鏈接的跳轉(zhuǎn),獲取最終的網(wǎng)頁內(nèi)容娇未。我們可以在命令中添加 -L 選項(xiàng)來跟隨鏈接重定向:

curl-L http://codebelief.com

這樣我們就能獲取到經(jīng)過重定向后的網(wǎng)頁內(nèi)容了墨缘。

-c\-b選項(xiàng)

有些網(wǎng)站是使用cookie來記錄session信息。對(duì)于chrome這樣的瀏覽器零抬,可以輕易處理cookie信息镊讼,在curl中只要增加相關(guān)參數(shù)也是可以很容易的處理cookie的。如保存http的response里面的cookie信息平夜,使用內(nèi)置option:-c(小寫)

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

執(zhí)行后cookie信息就被存到了cookiec.txt里面了蝶棋。

很多網(wǎng)站都是通過監(jiān)視你的cookie信息來判斷你是否按規(guī)矩訪問他們的網(wǎng)站的,因此我們需要使用保存的cookie信息忽妒。內(nèi)置option: -b

curl

-b cookiec.txt?http://www.linux.com

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末玩裙,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子段直,更是在濱河造成了極大的恐慌吃溅,老刑警劉巖,帶你破解...
    沈念sama閱讀 217,509評(píng)論 6 504
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件鸯檬,死亡現(xiàn)場(chǎng)離奇詭異决侈,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)喧务,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,806評(píng)論 3 394
  • 文/潘曉璐 我一進(jìn)店門颜及,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人蹂楣,你說我怎么就攤上這事⊙镀眩” “怎么了痊土?”我有些...
    開封第一講書人閱讀 163,875評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長墨林。 經(jīng)常有香客問我赁酝,道長犯祠,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,441評(píng)論 1 293
  • 正文 為了忘掉前任酌呆,我火速辦了婚禮衡载,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘隙袁。我一直安慰自己痰娱,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,488評(píng)論 6 392
  • 文/花漫 我一把揭開白布菩收。 她就那樣靜靜地躺著梨睁,像睡著了一般。 火紅的嫁衣襯著肌膚如雪娜饵。 梳的紋絲不亂的頭發(fā)上坡贺,一...
    開封第一講書人閱讀 51,365評(píng)論 1 302
  • 那天,我揣著相機(jī)與錄音箱舞,去河邊找鬼遍坟。 笑死,一個(gè)胖子當(dāng)著我的面吹牛晴股,可吹牛的內(nèi)容都是我干的愿伴。 我是一名探鬼主播,決...
    沈念sama閱讀 40,190評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼队魏,長吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼公般!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起胡桨,我...
    開封第一講書人閱讀 39,062評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤官帘,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后昧谊,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體刽虹,經(jīng)...
    沈念sama閱讀 45,500評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,706評(píng)論 3 335
  • 正文 我和宋清朗相戀三年呢诬,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了涌哲。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,834評(píng)論 1 347
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡尚镰,死狀恐怖阀圾,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情狗唉,我是刑警寧澤初烘,帶...
    沈念sama閱讀 35,559評(píng)論 5 345
  • 正文 年R本政府宣布,位于F島的核電站,受9級(jí)特大地震影響肾筐,放射性物質(zhì)發(fā)生泄漏哆料。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,167評(píng)論 3 328
  • 文/蒙蒙 一吗铐、第九天 我趴在偏房一處隱蔽的房頂上張望东亦。 院中可真熱鬧,春花似錦唬渗、人聲如沸典阵。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,779評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽萄喳。三九已至,卻和暖如春蹋半,著一層夾襖步出監(jiān)牢的瞬間他巨,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,912評(píng)論 1 269
  • 我被黑心中介騙來泰國打工减江, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留染突,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 47,958評(píng)論 2 370
  • 正文 我出身青樓辈灼,卻偏偏與公主長得像份企,于是被迫代替她去往敵國和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子巡莹,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,779評(píng)論 2 354