Linux 命令-curl 常用命令

Linux 命令-curl 常用命令

下載單個文件

cur http://www.demo.com 默認(rèn)將輸出打印到標(biāo)準(zhǔn)輸出中(STDOUT)中

通過-o/-O 選項保存下載的文件到指定的文件中

  1. -o:將文件保存為命令行中指定的文件名的文件中
    curl -o test.html http://www.demo.com/index.html 將文件保存到本地并命名為 test.html
  2. -O:使用 URL 中默認(rèn)的文件名保存文件到本地
    curl -O http://www.demo.com/index.html 將文件下載到本地并命名為 index.html
  3. curl -O URL1 -O URL2 同時獲取多個文件
    若同時從同一站點下載多個文件時舶衬,curl 會嘗試重用鏈接

補(bǔ)充

  1. curl http://www.demo.com/index.html > test.html 可以使用 > 符號將輸出重定向到本地文件中
  2. 有時候下載圖片可以能是前面的部分名稱是一樣的,就最后的尾椎名不一樣 curl -O http://www.linux.com/dodo[1-5].JPG 這樣就會把 dodo1粒竖,dodo2玖院,dodo3腿箩,dodo4浙巫,dodo5 全部保存下來
  3. 有時候下載的東西會比較大莽鸭,這個時候我們可以分段下載吗伤。使用內(nèi)置 option:-r
# curl -r 0-100 -o dodo1_part1.JPG http://www.linux.com/dodo1.JPG
# curl -r 100-200 -o dodo1_part2.JPG http://www.linux.com/dodo1.JPG
# curl -r 200- -o dodo1_part3.JPG http://www.linux.com/dodo1.JPG
# cat dodo1_part* > dodo1.JPG

這樣就可以查看 dodo1.JPG 的內(nèi)容了

通過-L 選項進(jìn)行重定向

curl -L http://www.baidu.com 有時候我們想要 curl 做的,就是像瀏覽器一樣跟隨鏈接的跳轉(zhuǎn)硫眨,獲取最終的網(wǎng)頁內(nèi)容足淆。我們可以在命令中添加 -L 選項來跟隨鏈接重定向

通過使用-C 選項可對大文件使用斷點續(xù)傳功能

curl -C - -O http://www.demo.com/index.html 通過添加-C 選項繼續(xù)對該文件進(jìn)行下載,已經(jīng)下載過的文件不會被重新下載, 突然掉線了捺球,也可以使用以下的方式續(xù)傳

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

curl --limit-rate 1000B -O http://www.demo.com/index.html 下載速度最大不會超過 1000B/second

通過使用-z 選項來實現(xiàn)下載指定時間內(nèi)修改過的文件

  • 當(dāng)下載一個文件時缸浦,可對該文件的最后修改日期進(jìn)行判斷,如果該文件在指定日期內(nèi)修改過氮兵,就進(jìn)行下載裂逐,否則不下載。
  • curl -z 21-Dec-11 http://www.demo.com/index.html 若 index.html 文件在 2011/12/21 之后有過更新才會進(jìn)行下載

通過-u 選項提供用戶名和密碼進(jìn)行授權(quán)

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

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

  • CURL 同樣支持 FTP 下載,若在 url 中指定的是某個文件路徑而非具體的某個要下載的文件名南片,CURL 則會列出該目錄下的所有文件名而并非下載該目錄下的所有文件
  • curl -u ftpuser:ftppass -O ftp://ftp_server/public_html/ 列出 public_html 下的所有文件夾和文件
  • curl -u ftpuser:ftppass -O ftp://ftp_server/public_html/xss.php 下載 xss.php 文件

補(bǔ)充

  1. curl -O -u 用戶名:密碼 ftp://www.linux.com/dodo1.JPG
  2. curl -O ftp://用戶名:密碼@www.linux.com/dodo1.JPG
  3. 顯示下載進(jìn)度條 curl -# -O http://www.linux.com/dodo1.JPG
  4. 不會顯示下載進(jìn)度信息 curl -s -O http://www.linux.com/dodo1.JPG

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

  1. curl -u ftpuser:ftppass -T myfile.txt ftp://ftp.testserver.com 將 myfile.txt 文件上傳到服務(wù)器
  2. curl -u ftpuser:ftppass -T "{file1,file2}" ftp://ftp.testserver.com 同時上傳多個文件
  3. curl -u ftpuser:ftppass -T - ftp://ftp.testserver.com/myfile_1.txt 從標(biāo)準(zhǔn)輸入獲取內(nèi)容保存到服務(wù)器指定的文件中

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

-x 選項可以為 CURL 添加代理功能

curl -x proxysever.test.com:3128 http://google.co.in 指定代理主機(jī)和端口
指定 proxy 服務(wù)器以及其端口

補(bǔ)充

很多時候上網(wǎng)需要用到代理服務(wù)器(比如是使用代理服務(wù)器上網(wǎng)或者因為使用 curl 別人網(wǎng)站而被別人屏蔽 IP 地址的時候)掺涛,幸運的是 curl 通過使用內(nèi)置 option:-x 來支持設(shè)置代理
curl -x 192.168.100.100:1080 http://www.linux.com

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

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

補(bǔ)充

  1. 使用 -c 保存 Cookie curl -c "cookie-example" http://www.example.com
  2. 使用 -b 讀取 Cookie,-b 后面既可以是 Cookie 字符串疼进,也可以是保存了 Cookie 的文件名
    • curl -b "JSESSIONID=D0112A5063D938586B659EF8F939BE24" http://www.example.com
    • curl -b "cookie-example" http://www.example.com
  3. 保存 http 的 response 里面的 header 信息薪缆。內(nèi)置 option: -D

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

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

  1. curl -u username https://api.github.com/user?access_token=XXXXXXXXXX GET 請求
  2. curl -u username --data "param1=value1&param2=value" https://api.github.com POST 請求
  3. curl --data @filename https://github.api.com/authorizations 也可以指定一個文件伞广,將該文件中的內(nèi)容當(dāng)作數(shù)據(jù)傳遞給服務(wù)器端
  4. 默認(rèn)情況下拣帽,通過 POST 方式傳遞過去的數(shù)據(jù)中若有特殊字符,首先需要將特殊字符轉(zhuǎn)義在傳遞給服務(wù)器端嚼锄,如 value 值中包含有空格减拭,則需要先將空格轉(zhuǎn)換成%20,如:
    curl -d "value%201" http://hostname.com
  5. 在新版本的 CURL 中区丑,提供了新的選項 --data-urlencode拧粪,通過該選項提供的參數(shù)會自動轉(zhuǎn)義特殊字符。
    curl --data-urlencode "value 1" http://hostname.com
  6. 除了使用 GET 和 POST 協(xié)議外沧侥,還可以通過 -X 選項指定其它協(xié)議可霎,如:
    curl -I -X DELETE https://api.github.cim
  7. 上傳文件
    curl --form "fileupload=@filename.txt" http://hostname/resource

補(bǔ)充

  1. 使用 -G 選項可指定 GET 方式
  2. 帶 Cookie 登錄
    curl -c "cookie-login" -d "userName=tom&passwd=123456" http://www.example.com/login
    再次訪問該網(wǎng)站時,使用以下命令:
    curl -b "cookie-login" http://www.example.com/login
    這樣宴杀,就能保持訪問的是登錄后的頁面了啥纸。

可以使用 -I 選項顯示 HTTP 頭,而不顯示文件內(nèi)容婴氮,也可以使用 -i 選項同時顯示 HTTP 頭和文件內(nèi)容

  1. curl -I http://www.codebelief.com
  2. curl -i http://www.codebelief.com

使用 -A 自定義 User-Agent

可以使用 -A 來自定義用戶代理斯棒,例如下面的命令將偽裝成安卓火狐瀏覽器對網(wǎng)頁進(jìn)行請求:
curl -A "Mozilla/5.0 (Android; Mobile; rv:35.0) Gecko/35.0 Firefox/35.0" http://www.baidu.com

使用 -H 自定義 header

當(dāng)我們需要傳遞特定的 header 的時候盾致,可以仿照以下命令來寫:
curl -H "Referer: www.example.com" -H "User-Agent: Custom-User-Agent" http://www.baidu.com
可以看到,當(dāng)我們使用 -H 來自定義 User-Agent 時荣暮,需要使用 "User-Agent: xxx" 的格式庭惜。
我們能夠直接在 header 中傳遞 Cookie,格式與上面的例子一樣:
curl -H "Cookie: JSESSIONID=D0112A5063D938586B659EF8F939BE24" http://www.example.com

偽造 referer(盜鏈)

很多服務(wù)器會檢查 http 訪問的 referer 從而來控制訪問穗酥。比如:你是先訪問首頁护赊,然后再訪問首頁中的郵箱頁面,這里訪問郵箱的 referer 地址就是訪問首頁成功后的頁面地址砾跃,如果服務(wù)器發(fā)現(xiàn)對郵箱頁面訪問的 referer 地址不是首頁的地址骏啰,就斷定那是個盜連了
curl 中內(nèi)置 option:-e 可以讓我們設(shè)定 referer
curl -e "www.linux.com" http://mail.linux.com 這樣就會讓服務(wù)器其以為你是從 www.linux.com 點擊某個鏈接過來的

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市抽高,隨后出現(xiàn)的幾起案子判耕,更是在濱河造成了極大的恐慌,老刑警劉巖翘骂,帶你破解...
    沈念sama閱讀 222,729評論 6 517
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件壁熄,死亡現(xiàn)場離奇詭異,居然都是意外死亡碳竟,警方通過查閱死者的電腦和手機(jī)草丧,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,226評論 3 399
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來莹桅,“玉大人昌执,你說我怎么就攤上這事≌┢茫” “怎么了仙蚜?”我有些...
    開封第一講書人閱讀 169,461評論 0 362
  • 文/不壞的土叔 我叫張陵,是天一觀的道長厂汗。 經(jīng)常有香客問我,道長呜师,這世上最難降的妖魔是什么娶桦? 我笑而不...
    開封第一講書人閱讀 60,135評論 1 300
  • 正文 為了忘掉前任,我火速辦了婚禮汁汗,結(jié)果婚禮上衷畦,老公的妹妹穿的比我還像新娘。我一直安慰自己知牌,他們只是感情好祈争,可當(dāng)我...
    茶點故事閱讀 69,130評論 6 398
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著角寸,像睡著了一般菩混。 火紅的嫁衣襯著肌膚如雪忿墅。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,736評論 1 312
  • 那天沮峡,我揣著相機(jī)與錄音疚脐,去河邊找鬼。 笑死邢疙,一個胖子當(dāng)著我的面吹牛棍弄,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播疟游,決...
    沈念sama閱讀 41,179評論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼呼畸,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了颁虐?” 一聲冷哼從身側(cè)響起蛮原,我...
    開封第一講書人閱讀 40,124評論 0 277
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎聪廉,沒想到半個月后瞬痘,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,657評論 1 320
  • 正文 獨居荒郊野嶺守林人離奇死亡板熊,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,723評論 3 342
  • 正文 我和宋清朗相戀三年框全,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片干签。...
    茶點故事閱讀 40,872評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡津辩,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出容劳,到底是詐尸還是另有隱情喘沿,我是刑警寧澤,帶...
    沈念sama閱讀 36,533評論 5 351
  • 正文 年R本政府宣布竭贩,位于F島的核電站蚜印,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏留量。R本人自食惡果不足惜窄赋,卻給世界環(huán)境...
    茶點故事閱讀 42,213評論 3 336
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望楼熄。 院中可真熱鬧忆绰,春花似錦、人聲如沸可岂。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,700評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽缕粹。三九已至稚茅,卻和暖如春纸淮,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背峰锁。 一陣腳步聲響...
    開封第一講書人閱讀 33,819評論 1 274
  • 我被黑心中介騙來泰國打工萎馅, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人虹蒋。 一個月前我還...
    沈念sama閱讀 49,304評論 3 379
  • 正文 我出身青樓糜芳,卻偏偏與公主長得像,于是被迫代替她去往敵國和親魄衅。 傳聞我的和親對象是個殘疾皇子峭竣,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,876評論 2 361

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

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn)晃虫,斷路器皆撩,智...
    卡卡羅2017閱讀 134,716評論 18 139
  • 轉(zhuǎn)載自:http://www.cnblogs.com/txw1958/archive/2013/01/19/286...
    php_bruce閱讀 2,278評論 1 5
  • CURLOPT_RETURNTRANSFER 選項:curl_setopt($ch, CURLOPT_RETURN...
    Talentisan閱讀 16,865評論 0 2
  • curl命令 網(wǎng)絡(luò)應(yīng)用 curl命令是一個利用URL規(guī)則在命令行下工作的文件傳輸工具。它支持文件的上傳和下載哲银,所以...
    呵呵噠1991閱讀 1,199評論 0 2
  • 一扛吞、什么是CURL? cURL 是一個利用URL語法規(guī)定來傳輸文件和數(shù)據(jù)的工具荆责,支持很多協(xié)議滥比,如HTTP、FTP做院、...
    伊Summer閱讀 1,276評論 0 4