linux curl用法詳解

2022-06-14 07:30:17 字數 3185 閱讀 6967

curl的命令列工具功能非常強大,這些資料互動的功能基本上都是通過url方式進行的,我們先來看看curl對多個url的靈活操作,這些規則使我們的 批處理需求應用起來非常方便。

1、用{}表示多個url

如 http://site..com, 只要在{}中寫上不同的部分,就可以表示3個url了。

2、用表示多個url

如 /file[001-100].txt,

中表示按數字或字母的順序排列。

還能表示不連續的排列,如 ":" 後面的數字表示等差排列的階躍數。

3、結合起來使用

如 curl命令列工具的基本語句為:curl [options] [url...],即 curl [選項]

的#將被多個url中的當前字串代替,如 curl http://.host[1-5].com -o

"#1_#2",#1將被"site"或"host"代替,#2將被1-5之間的數字代替,也就是被當前被處理的url中的字串代替。

cookie寫到檔案中;後乙個選項則用來向伺服器傳送cookie資訊,可以用"name=data"的形式,也可以直接跟乙個儲存cookie的檔案

名。3、-x/--proxy

該選項為http指定**及埠,如果不指定埠,預設為1080。如 curl -x 201.36.208.19:3128

4、-u/--user 和 -u/--proxy-user

登入某些頁面或ftp需要先進行認證,輸入使用者名稱和密碼。curl的這個選項可以直接處理這類操作,用指定的賬號和密碼進行登入認證。

後面的選項指定**的使用者名稱和密碼,這樣便可以直接用這個**訪問網頁了,如 curl -u user:password -x 201.36.208.19:3128

5、-a/--user-agent

該選項可以指定客戶端型別,伺服器通過該選項判斷使用者應用的平台及瀏覽器資訊。如 curl -a "mozilla/4.0

(compatible; msie 6.0; windows nt 5.0)"

表示告訴伺服器,客戶端是執行在windows 2000系統上的ie6.0。

6、-d/--data

該選項用來以post方式向http伺服器傳送特定資料,最常用的就是提交表單。如 curl -d

"user=username&password=111"

表示用賬號username和密碼111向站點傳送登入申請。其中多個資料段可以用"&"進行連線一起傳送;如果資料前面加上符號"@",則資料

**為後面指定的檔案,如 curl -d password=@d:\pw.txt

7、-c/--continue-at

改選項提供斷點續傳功能,與-o選項配合使用。如 curl -c -o

/mufs052009053117155750a8be70.***。

如果指定offset,則從offset的位置開始續傳。如果未指定offset,或者直接用"-c -",則curl會自己分析該從什麼位置開始續傳。

最後的500個位元組;5000-表示從第5000個位元組開始的所有位元組;另外還可以同時指定多個位元組塊,中間用","分開。如

curl -r 0-1024000 -o new_divide_1.***

/mufs052009053117155750a8be70.***

&curl -r 1024001-2048000 -o new_divide_2.***

/mufs052009053117155750a8be70.***

&curl -r 2048001- -o new_divide_3.***

/mufs052009053117155750a8be70.***

new_divide_2.***/b + new_divide_3.***/b

new_divide.***即可將3個分塊檔案合併為乙個完整的***檔案。

9、-w/--write-out

該選項格式化輸出一些使用者操作的資料資訊,用到的格式化輸出符除了"\n","\r","\t"這些常見轉義符外,還包括"@"和"%"。其

中"@filename"表示輸出filename檔案中的資料,"@-"表示輸出使用者寫入標準輸入的資料;"%"識別符號後面跟上定義的關鍵字,

則可以輸出對應的curl資料,常用的關鍵字有:

10、--connect-timeout 和 -m/--max-time

前者表示允許的連線的最長耗時,單位為秒;後者表示允許的整個操作的最長耗時,單位為秒,這個選項對於控制乙個批處理操作的時長非常有用。

11、--limit-rate 、 -y/--speed-limit 和 -y/--speed-time

--limit-rate 指定最大的資料傳輸率,單位為bytes/s,也可以用'k'或'k'表示kb/s,'m'或'm'表示mb/s,'g'或 'g'表示gb/s,所給的speed為平均傳輸率,短時間峰值可能會超過此值;

-y/--speed-limit

指定最小傳輸率,單位為bytes/s,如果小於speed值,則傳輸中止,如此時-y選項沒有被設定,預設time為

30;-y/--speed-time 指定-y選項的有效時間段,如果-y選項沒有被設定,預設為1。

5xx返回碼,curl會進行按照設定進行重試,這幾個選項都與重試有關。--retry

設定重試次數,--retry-delay

設定兩次重試的間隔時間,--retry-max-time

設定兩次重試間隔的最長時間。預設情況下,curl不進行重試;如果重試,第一次間隔1秒,之後每次都間隔上一次的2倍時

間,直到間隔時間達到10分鐘,之後的重試都將採用10分鐘間隔。如果這3個選項的值被重新設定,則執行設定值。

14、-t/--upload-file

該選項是上傳命令,如向http伺服器上傳乙個檔案:curl -t d:\new_divide.***

向乙個ftp伺服器上傳檔案:curl -t

d:\new_divide.*** -u user:password ftp://upload_site:port/path/。

curl定義了一組"exit codes",用來標識在出現錯誤時的相關資訊,目前範圍從1-83,具體資訊可以查閱curl庫自帶的文件。這些退出碼對於我們分析錯誤及原因有很大幫 助。

以上簡單介紹了一下利用curl命令列工具進行一些簡單的http和ftp應用,大家可以試著多用一下,會慢慢發現curl的強大功能,有很多獨特的功能 用起來非常簡單方便

linux curl用法詳解

6 d data 該選項用來以post方式向http伺服器傳送特定資料,最常用的就是提交表單。如 curl d user username password 111 http www.login.com,表示用賬號username和密碼111向站點傳送登入申請。其中多個資料段可以用 進行連線一起傳送...

linux curl 用法詳解

linux curl用法詳解 curl的命令列工具功能非常強大,這些資料互動的功能基本上都是通過url方式進行的,我們先來看看curl對多個url的靈活操作,這些規則使我們的 批處理需求應用起來非常方便。1 用 表示多個url 如 http site.com,只要在 中寫上不同的部分,就可以表示3個...

linux curl 用法詳解

linux curl用法詳解 curl的命令列工具功能非常強大,這些資料互動的功能基本上都是通過url方式進行的,我們先來看看curl對多個url的靈活操作,這些規則使我們的 批處理需求應用起來非常方便。1 用 表示多個url 如 http site.com,只要在 中寫上不同的部分,就可以表示3個...