curl命令是個功能強大的網絡工具,支持經過http、ftp等方式下載文件、上傳文件。還能夠用來抓取網頁、網絡監控等方面的開發,解決開發過程當中遇到的問題。php
curl命令參數不少,這裏只列出我曾經用過、特別是在shell腳本中用到過的那些。 -v/--verbose 小寫的v參數,用於打印更多信息,包括髮送的請求信息,這在調試腳本是特別有用。 -m/--max-time <seconds> 指定處理的最大時長 -H/--header <header> 指定請求頭參數 -s/--slient 減小輸出的信息,好比進度 --connect-timeout <seconds> 指定嘗試鏈接的最大時長 -x/--proxy <proxyhost[:port]> 指定代理服務器地址和端口,端口默認爲1080 -T/--upload-file <file> 指定上傳文件路徑 -o/--output <file> 指定輸出文件名稱 -d/--data/--data-ascii <data> 指定POST的內容 --retry <num> 指定重試次數 -e/--referer <URL> 指定引用地址 -I/--head 僅返回頭部信息,使用HEAD請求
sudo apt-get install curl
curl http://www.baidu.com,回車以後,HTML內容打印在屏幕上;若是這裏的URL指向的是一個文件或者一幅圖均可以直接下載到本地。 curl -i "http://www.baidu.com" 顯示所有信息 curl -l "http://www.baidu.com" 只顯示頭部信息 curl -v "http://www.baidu.com" 顯示get請求全過程解析 wget "http://www.baidu.com"也能夠
curl –o linjiqin http://www.cnblogs.com/linjiqin,執行後能夠看到下載進度提示,完成100%後會自動退出了,把網頁保存到linjiqin中。
它還有一個大寫O的選項,是按照服務器上的文件名保存到本地,若是執行curl –O http://www.cnblogs.com,是會報錯的,提示找不到文件名,若是換成curl –O http://www.cnblogs.com/linjiqin/p/5401969.html,就自動保存文件爲5401969.html。html
-T/--upload-file:往服務器上傳文件 用法: 上傳多個文件 curl -T "img[1-1000].png" ftp://example.com/upload/ 上傳多個文件 curl -T "{file1,file2}" http://www.example.com
-d或--data參數:post請求,用法爲curl -d "id=1&name=test" http://example.com/example.php,需把請求的參數和URL分開,同時可使用curl -d "id=1" -d "name=test" http://example.com/example.php,至關於提交了兩個參數。當提交的參數值中有特殊字符就須要先轉義。如空格時,就須要轉義成%20。 --data-urlencode參數:能夠自動轉義成特殊字符,無需人工事先轉義。 curl --data-urlencode "name=April 1" http://example.com/example.php -F或--form:將本地文件上傳到服務器,用法爲:curl -F "filename=@/home/test/test.pic" http://example.com/example.php 。千萬不能漏掉@符號。
有時候咱們若是直接請求某個URL不能成功,它須要判斷referer是否正確,那就能夠經過-e或--referer參數模擬linux
curl --referer http://www.example.com http://www.example.com
-A/--user-agent:假裝成指定的瀏覽器Chrome訪問,用法: curl -A "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1650.63 Safari/537.36" www.baidu.com
-b或--cookie: 有兩種用法,一是指定參數和值:curl --cookie "name=xxx" http://www.example.com ;二是從文件讀取:curl -b /cookie.txt http://www.example.com
-c/--cookie-jar:curl命令執行後保存操做時生成的cookie到文件: curl -c ./cookie.txt -d username=aaaa -d pwd=****** http://www.example.com
-w/--write-out: 能夠定義輸出的內容,如經常使用的http碼,tcp鏈接時間,域名解析的時間,握手時間及第一時間響應時間等,很是強大。 1、打印出返回的http碼 curl -o /dev/null -s -w %{http_code} "http://www.baidu.com" 2、打印響應時間 curl -o /dev/null -s -w "time_total: %{time_total}\n" "http://www.baidu.com"
安裝及配置參考資料:shell