centos6 5命令列 curl 的十種常見用法

2021-08-26 12:35:13 字數 3320 閱讀 5551

當我們不加任何選項使用 curl 時,缺省會傳送 get 請求來獲取鏈結內容到標準輸出。 

curl 

如果我們只想要顯示 http 頭,而不顯示檔案內容,可以使用 -i 選項: 

curl -i 

輸出為:

vary: accept-encoding也可以同時顯示 http 頭和檔案內容,使用 -i 選項: 

curl -i 

輸出為:

我們可以使用 > 符號將輸出重定向到本地檔案中。 

curl  > index.html 

也可以通過 curl 自帶的 -o/-o 選項將內容儲存到檔案中。

-o(小寫的 o):結果會被儲存到命令列中提供的檔名 

-o(大寫的 o):url 中的檔名會被用作儲存輸出的檔名 

curl -o index.html 

curl -o /page/2/

我們可以使用 -o 或 -o 選項來同時指定多個鏈結,按照以下格式編寫命令: 

curl -o /page/2/ -o /page/3/

或者: 

curl -o page1.html /page/1/ -o page2.html /page/2/

如果直接使用 curl 開啟某些被重定向後的鏈結,這種情況下就無法獲取我們想要的網頁內容。例如: 

curl

nginx/1.10.3

而當我們通過瀏覽器開啟該鏈結時,會自動跳轉到 。此時我們想要 curl 做的,就是像瀏覽器一樣跟隨鏈結的跳轉,獲取最終的網頁內容。我們可以在命令中新增 -l 選項來跟隨鏈結重定向:

curl -l 

這樣我們就能獲取到經過重定向後的網頁內容了。

我們可以使用 -a 來自定義使用者**,例如下面的命令將偽裝成安卓火狐瀏覽器對網頁進行請求: 

curl -a 「mozilla/5.0 (android; mobile; rv:35.0) gecko/35.0 firefox/35.0」 

下面我們會使用 -h 來實現同樣的目的。

當我們需要傳遞特定的 header 的時候,可以仿照以下命令來寫: 

curl -h 「referer: www.example.com」 -h 「user-agent: custom-user-agent」 

可以看到,當我們使用 -h 來自定義 user-agent 時,需要使用 「user-agent: ***」 的格式。

我們能夠直接在 header 中傳遞 cookie,格式與上面的例子一樣: 

curl -h 「cookie: jsessionid=d0112a5063d938586b659ef8f939be24」 

另一種方式會在下面介紹。

當我們使用 curl 訪問頁面的時候,預設是不會儲存 cookie 的。有些情況下我們希望儲存 cookie 以便下次訪問時使用。例如登陸了某個**,我們希望再次訪問該**時保持登陸的狀態,這時就可以現將登陸時的 cookie 儲存起來,下次訪問時再讀取。

-c 後面跟上要儲存的檔名。 

curl -c 「cookie-example」 

前面講到了使用 -h 來傳送 cookie 的方法,這種方式是直接將 cookie 字串寫在命令中。如果使用 -b 來自定義 cookie,命令如下: 

curl -b 「jsessionid=d0112a5063d938586b659ef8f939be24」 

如果要從檔案中讀取 cookie,-h 就無能為力了,此時可以使用 -b 來達到這一目的: 

curl -b 「cookie-example」 

即 -b 後面既可以是 cookie 字串,也可以是儲存了 cookie 的檔名。

我們以登陸網頁為例來進行說明使用 curl 傳送 post 請求的方法。假設有乙個登入頁面 www.example.com/login,只需要提交使用者名稱和密碼便可登入。我們可以使用 curl 來完成這一 post 請求,-d 用於指定傳送的資料,-x 用於指定傳送資料的方式: 

curl -d 「username=tom&passwd=123456」 -x post /login

在使用 -d 的情況下,如果省略 -x,則預設為 post 方式: 

curl -d 「username=tom&passwd=123456」 /login

強制使用 get 方式 

傳送資料時,不僅可以使用 post 方式,也可以使用 get 方式,例如: 

curl -d 「somedata」 -x get /api

或者使用 -g 選項: 

curl -d 「somedata」 -g /api

從檔案中讀取 data 

curl -d 「@data.txt」 /login

帶 cookie 登入 

當然,如果我們再次訪問該**,仍然會變成未登入的狀態。我們可以用之前提到的方法儲存 cookie,在每次訪問**時都帶上該 cookie 以保持登入狀態。 

curl -c 「cookie-login」 -d 「username=tom&passwd=123456」 /login

再次訪問該**時,使用以下命令: 

curl -b 「cookie-login」 /login

這樣,就能保持訪問的是登入後的頁面了。

CentOS 6 5命令列安裝MATLAB2013

最近處理資料需要用到matlab,這裡把在centos 6.5 64bit上安裝matlab的過程記錄一下。作業系統 centos 6.5 64bit matlab版本 matlab 2013 for linux mac 安裝方式 命令列 這裡是matlab801 macunix.iso。mount...

CentOS 6 5通過命令列安裝傳送郵件

在linode安裝的一台centos 6.5預設沒有安裝mail,所以不能通過命令列或者指令碼來傳送郵件,需要傳送郵件時可以先安裝乙個sendmail 安裝sendmail root li676 235 yum install sendmail安裝好後執行。root li676 235 etc in...

CEntOS6 5從啟動介面直接進入命令列介面

ctrl alt f1 ctrl alt f2 ctrl alt f3 ctrl alt f4 ctrl alt f5 ctrl alt f6 同時按下上面三個組合鍵,分別可切換到不同的字元介面。在字元介面執行startx,如果裝了圖形截面即可切換到圖形截面。希望對你有幫助。圖形介面是需要在安裝前選...