1. 程式人生 > 實用技巧 >curl命令

curl命令

命令:curl

在Linux中curl是一個利用URL規則在命令列下工作的檔案傳輸工具,可以說是一款很強大的http命令列工具。它支援檔案的上傳和下載,是綜合傳輸工具,但按傳統,習慣稱url為下載工具。

語法:# curl [option] [url]

常見引數:

-A/--user-agent <string>              設定使用者代理髮送給伺服器
-b/--cookie <name=string/file>    cookie字串或檔案讀取位置
-c/--cookie-jar <file>                    操作結束後把cookie寫入到這個檔案中
-C/--continue-at <offset>            斷點續轉
-D/--dump-header <file>              把header資訊寫入到該檔案中
-e/--referer                                  來源網址
-f/--fail                                          連線失敗時不顯示http錯誤

-o/--output                                  把輸出寫到該檔案中
-O/--remote-name                      把輸出寫到該檔案中,保留遠端檔案的檔名

-r/--range <range>                      檢索來自HTTP/1.1或FTP伺服器位元組範圍
-s/--silent                                    靜音模式。不輸出任何東西
-T/--upload-file <file>                  上傳檔案
-u/--user <user[:password]>      設定伺服器的使用者和密碼
-w/--write-out [format]                什麼輸出完成後
-x/--proxy <host[:port]>              在給定的埠上使用HTTP代理
-#/--progress-bar                        進度條顯示當前的傳送狀態

例子:

1、基本用法

# curl http://www.linux.com

執行後,www.linux.com 的html就會顯示在螢幕上了
Ps:由於安裝linux的時候很多時候是沒有安裝桌面的,也意味著沒有瀏覽器,因此這個方法也經常用於測試一臺伺服器是否可以到達一個網站

2、儲存訪問的網頁

2.1:使用linux的重定向功能儲存

# curl http://www.linux.com >> linux.html

2.2:可以使用curl的內建option:-o(小寫)儲存網頁

$ curl -o linux.html http://www.linux.com

執行完成後會顯示如下介面,顯示100%則表示儲存成功

% Total    % Received % Xferd  Average Speed  Time    Time    Time  Current
                                Dload  Upload  Total  Spent    Left  Speed
100 79684    0 79684    0    0  3437k      0 --:--:-- --:--:-- --:--:-- 7781k

2.3:可以使用curl的內建option:-O(大寫)儲存網頁中的檔案
要注意這裡後面的url要具體到某個檔案,不然抓不下來

# curl -O http://www.linux.com/hello.sh

3、測試網頁返回值

# curl -o /dev/null -s -w %{http_code} www.linux.com

Ps:在指令碼中,這是很常見的測試網站是否正常的用法

3、下載檔案

3.1:利用curl下載檔案。
#使用內建option:-o(小寫)

# curl -o dodo1.jpg http:www.linux.com/dodo1.JPG

#使用內建option:-O(大寫)

# curl -O http://www.linux.com/dodo1.JPG

這樣就會以伺服器上的名稱儲存檔案到本地

3.2:迴圈下載
有時候下載圖片可以能是前面的部分名稱是一樣的,就最後的尾椎名不一樣

# curl -O http://www.linux.com/dodo[1-5].JPG

這樣就會把dodo1,dodo2,dodo3,dodo4,dodo5全部儲存下來

4、上傳檔案
curl不僅僅可以下載檔案,還可以上傳檔案。通過內建option:-T來實現

# curl -T dodo1.JPG -u 使用者名稱:密碼 ftp://www.linux.com/img/

這樣就向ftp伺服器上傳了檔案dodo1.JPG