curl工具使用

????????在Linux中curl是一個利用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請求塞祈、指定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)會發(fā)送 GET 請求將下載的文件輸出到終端(所下載的數(shù)據(jù)被寫入stdout)芳杏。

-i選項(xiàng)

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

-I 選項(xiàng)

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

通過-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中找不到文件名供置,則會產(chǎn)生錯誤谨湘,因此要確保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)來手動指定文件名芥丧。

-o選項(xiàng)

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

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

-H 選項(xià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)

限定帶寬

????????如果帶寬有限续担,又有多個用戶共享擅耽,為了平穩(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請求并讀取網(wǎng)站的響應(yīng)(HTML 格式)

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

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

-X

????????curl 默認(rèn)的 HTTP 動詞是 GET,使用?-X參數(shù)可以支持其他動詞冷蚂。如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í)艺骂,會自動跳轉(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信息忧额。對于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://xxxx.xxx.xxx.xxx.com

????????輸入用戶名和密碼后發(fā)生了URL重定向恬涧。這個需要使用-L來跟蹤重定向注益,而向重定向地址請求時(shí),需要攜帶cookie信息溯捆,這需要使用-b選項(xiàng)。因此這個登錄過程命令為

[root@localhost~]# curl -v -c logincook.txt -b logincook.txt -d'username=dddd&password=xxxxx' -L http://xxx.xx.x.x/login/

-v(verbose)

????????用來顯示詳細(xì)信息厦瓢,顯示一次 http 通信的整個過程提揍,包括端口連接和 http request 頭信息,即把請求和響應(yīng)都打印出來煮仇,這樣便于調(diào)試劳跃。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市浙垫,隨后出現(xiàn)的幾起案子刨仑,更是在濱河造成了極大的恐慌郑诺,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,036評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件杉武,死亡現(xiàn)場離奇詭異辙诞,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)轻抱,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,046評論 3 395
  • 文/潘曉璐 我一進(jìn)店門飞涂,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人祈搜,你說我怎么就攤上這事较店。” “怎么了容燕?”我有些...
    開封第一講書人閱讀 164,411評論 0 354
  • 文/不壞的土叔 我叫張陵梁呈,是天一觀的道長。 經(jīng)常有香客問我蘸秘,道長捧杉,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,622評論 1 293
  • 正文 為了忘掉前任秘血,我火速辦了婚禮味抖,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘灰粮。我一直安慰自己仔涩,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,661評論 6 392
  • 文/花漫 我一把揭開白布粘舟。 她就那樣靜靜地躺著熔脂,像睡著了一般。 火紅的嫁衣襯著肌膚如雪柑肴。 梳的紋絲不亂的頭發(fā)上霞揉,一...
    開封第一講書人閱讀 51,521評論 1 304
  • 那天,我揣著相機(jī)與錄音晰骑,去河邊找鬼适秩。 笑死,一個胖子當(dāng)著我的面吹牛硕舆,可吹牛的內(nèi)容都是我干的秽荞。 我是一名探鬼主播,決...
    沈念sama閱讀 40,288評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼抚官,長吁一口氣:“原來是場噩夢啊……” “哼扬跋!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起凌节,我...
    開封第一講書人閱讀 39,200評論 0 276
  • 序言:老撾萬榮一對情侶失蹤钦听,失蹤者是張志新(化名)和其女友劉穎洒试,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體朴上,經(jīng)...
    沈念sama閱讀 45,644評論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡垒棋,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,837評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了余指。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片捕犬。...
    茶點(diǎn)故事閱讀 39,953評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖酵镜,靈堂內(nèi)的尸體忽然破棺而出碉碉,到底是詐尸還是另有隱情,我是刑警寧澤淮韭,帶...
    沈念sama閱讀 35,673評論 5 346
  • 正文 年R本政府宣布垢粮,位于F島的核電站,受9級特大地震影響靠粪,放射性物質(zhì)發(fā)生泄漏蜡吧。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,281評論 3 329
  • 文/蒙蒙 一占键、第九天 我趴在偏房一處隱蔽的房頂上張望昔善。 院中可真熱鬧,春花似錦畔乙、人聲如沸君仆。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,889評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽返咱。三九已至,卻和暖如春牍鞠,著一層夾襖步出監(jiān)牢的瞬間咖摹,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,011評論 1 269
  • 我被黑心中介騙來泰國打工难述, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留萤晴,地道東北人。 一個月前我還...
    沈念sama閱讀 48,119評論 3 370
  • 正文 我出身青樓龄广,卻偏偏與公主長得像硫眯,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子择同,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,901評論 2 355

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

  • 一、什么是CURL净宵? cURL 是一個利用URL語法規(guī)定來傳輸文件和數(shù)據(jù)的工具敲才,支持很多協(xié)議裹纳,如HTTP、FTP紧武、...
    伊Summer閱讀 1,268評論 0 4
  • CURLOPT_RETURNTRANSFER 選項(xiàng):curl_setopt($ch, CURLOPT_RETURN...
    Talentisan閱讀 16,836評論 0 2
  • Linux 命令-curl 常用命令 下載單個文件 cur http://www.demo.com 默認(rèn)將輸出打印...
    majun00閱讀 4,912評論 0 5
  • 一剃氧、什么是CURL? cURL 是一個利用URL語法規(guī)定來傳輸文件和數(shù)據(jù)的工具阻星,支持很多協(xié)議朋鞍,如HTTP、FTP妥箕、...
    茶藝瑤閱讀 4,602評論 0 6
  • cURL是一個利用URL語法規(guī)定來傳輸文件和數(shù)據(jù)的工具滥酥,支持很多協(xié)議和選項(xiàng),如HTTP畦幢、FTP坎吻、TELNET等,能...
    司馬東陽閱讀 1,440評論 0 6