首頁  >  文章  >  運維  >  linux curl指令參數有哪些及怎麼使用

linux curl指令參數有哪些及怎麼使用

WBOY
WBOY轉載
2023-05-12 18:46:142179瀏覽

linux curl是一個利用url規則在命令列下工作的檔案傳輸工具。它支援檔案的上傳和下載,所以是綜合傳輸工具,但按傳統,習慣稱url為下載工具。

  一,curl指令參數

  -a/--append 上傳檔案時,附加到目標檔案

  -a/--user-agent   設定使用者代理程式傳送給伺服器

  - anyauth   可以使用「任何」身份驗證方法

  -b/--cookie cookie字串或檔案讀取位置

  - basic 使用http基本驗證

  -b/--use-ascii 使用ascii /文字傳送

  -c/--cookie-jar 作業結束後把cookie寫入到這個文件中

  -c/--continue-at   斷點續轉

  -d/--data    http post方式傳送資料

  --data-ascii   以ascii的方式 post資料

  --data-binary 以二進位的方式post資料

  --data-binary 以二進位的方式post資料

資料

。 --negotiate     使用http驗證

  --digest        使用數位身分驗證

  --disable-eprt  禁止使用數位身份或

  --disable-eprt  禁止使用數位身份或#C

##  --disable-eprtm-epvablev) 禁止使用禁止使用#disfablev.

  -d/--dump-header 把header資訊寫入到該檔案

  --egd-file 為隨機資料(ssl)設定egd socket路徑

  --tcp-nodelay   使用tcp_nodelay選項

  -e/--referer 來源網址

  -e/--cert

  --cert-type 憑證檔案類型(der/pem/eng) (ssl)

#  --key

  --key-type 私鑰檔案類型(der/pem/eng) (ssl)

  --pass  私鑰密碼(ssl)

  --engine   加密引擎使用(ssl). "--engine list" for list

  --cacert ca憑證( ssl)

  --capath ca目錄(made using c_rehash) to verify peer against (ssl)

  --ciphers   s

  --ciphers   s

##」密碼密碼代碼--compressed    要求回傳是壓縮的情勢(using deflate or gzip)

  --connect-timeout 設定最大請求時間

  --create-dirs  層次結構

  --crlf          上傳是把lf轉變成crlf

  -f/--fail      如果遠端目錄不存在,建立遠端目錄

  --ftp-method [multicwd/nocwd/singlecwd] 控制cwd的使用

  --ftp-pasv      使用pasv/epsv 取代連接埠

#  --ftp-skip-pasv-ip 使用pasv的時候,忽略該ip位址

  --ftp-ssl       嘗試使用ssl/tls 來進行ftp資料

#  -#  -# -ftp-ssl-reqd  要求用ssl/tls 來進行ftp資料傳輸

  -f/--form 模擬http表單提交資料

  -form-string < ;name=string> 模擬http表單提交資料

  -g/--globoff 停用網址序列和範圍使用{}和[]

  -g/--get 以get的方式來傳送資料

  -h/--help 說明

  -h/--header 自訂頭資訊傳遞給伺服器

  --ignore-content- length  忽略的http頭資訊的長度

  -i/--include 輸出時包含protocol頭資訊

  -i/--head  只顯示文件資訊

  從檔案中讀取-j/--junk-session-cookies忽略會話cookie

  - 介面指定網路介面/位址使用

  - krb4 <等級>啟用與指定的安全等級krb4

  -j/--junk-session-cookies 讀取檔案進忽略session cookie

  --interface 使用指定網路介面/位址

  --krb4   使用指定安全等級的krb4

  -k/--insecure 允許不使用憑證到ssl網站

  -k/--config  指定的設定檔讀取

  -l/--list-only 列出ftp目錄下的檔案名稱

  --limit-rate 設定傳輸速度

  --#  -- local-port 強制使用本機埠號

  -m/--max-time 設定最大傳輸時間

  --max-redirs 設定最大已讀取的目錄數######  --max-filesize 設定最大下載的檔案總量######  -m/--manual  顯示全手動###

  -n/--netrc 從netrc檔案讀取使用者名稱與密碼

  --netrc-optional 使用.netrc 或url來覆寫-n

  --ntlm   驗證

  -n/--no-buffer 停用緩衝輸出

  -o/--output 把輸出寫到該檔案

#  -o/--remote -name 把輸出寫到該文件中,保留遠端文件的文件名

  -p/--proxytunnel   使用http代理

  --proxy-anyauth 選擇任一代理驗證方法

  --proxy-basic   在代理上使用基本身份驗證

  --proxy-digest  在代理上使用數位身分驗證

  --proxy-ntlm    在代理程式上使用ntlm驗證

  -p/--ftp-port

使用連接埠位址,而不是使用pasv

  -q/--quote 檔案傳輸前,發送命令到伺服器

  -r/--range 檢索來自http/1.1或ftp伺服器位元組範圍

  --range-file 讀取(ssl)的隨機檔案

  -r/--remote-time   在本機產生檔案時,保留遠端檔案時間

  --retry    傳送問題時,重試的次數

#  --retry-delay   傳輸出現問題時,設定重試間隔時間

  --retry-max-time 傳輸出現問題時,設定最大重試時間

  -s/--silent靜音模式。不輸出任何東西

  -s/--show-error   顯示錯誤

  --socks4 用socks4代理程式給定主機和連接埠

  --socks5 用socks5代理程式給定主機和連接埠

  --stderr
-t/--telnet-option telnet選項設定

  --trace   對指定檔案進行debug

  --trace-ascii like --追蹤但沒有hex輸出

  --trace-time    追蹤/詳細輸出時,新增時間戳記

  -t/--upload-file 上傳檔案

  --url sp url to work with

  -u/--user 設定伺服器的使用者與密碼

  -u/--proxy-user 設定代理使用者名稱與密碼

  -v/--verbose

  -v/--version 顯示版本資訊

#  -w/--write-out [format]什麼輸出完成後

  -x/--proxy 在給定的連接埠上使用http代理

  -x/--request < ;command>指定什麼指令

  -y/--speed-time 放棄限速所需的時間。預設為30

  -y/--speed-limit 停止傳輸速度的限制,速度時間'秒

  -z/--time-cond  傳送時間設定

# -0/--http1.0  使用http 1.0

  -1/--tlsv1  使用tlsv1(ssl)

  -2/--sslv2 使用sslv2的(ssl)

#  -2/--sslv2 使用sslv2的(ssl)

  -3/--sslv3         使用的sslv3(ssl)

  --3p-quote      like - 〠 for 3p-quote      like - 〠 for 3p-quote      like - 〠 for 3p-quote      like - 〠 3p-quote      like - 〠 3p- party trans_rd-- party#.進行第三方傳送

  --3p-user       使用使用者名稱及密碼,進行第三方傳送

  -4/--ipv4   使用ip4

 -6/--ipv4   使用ip4

 -6/--ipv6/--ipv6/--ipv6使用ip6

  -#/--progress-bar 以進度條顯示目前的傳送狀態

  -a/--append 上傳檔案時,附加到目標檔案

# -a/--user-agent   設定使用者代理程式傳送至伺服器

  - anyauth   可以使用「任何」身份驗證方法

#  -b/--cookie cookie字串或檔案讀取位置

  - basic 使用http基本驗證

  -b/--use-ascii 使用ascii /文字傳送

#  - c/--cookie-jar 作業結束後把cookie寫入這個檔案

  -c/--continue-at   斷點續轉

# -d/--data    http post方式傳送資料

  --data-ascii   以ascii的方式post資料

  --data-binary

  --negotiate     使用http驗證

  --digest        使用數位驗證 

  --disable-epsv  禁止使用epsv

  -d/--dump-header 把header信息寫入到該文件中

  --egd- file 為隨機資料(ssl)設定egd socket路徑

  --tcp-nodelay   使用tcp_nodelay選項

  -e/--referer 來源網址

  -e/--cert 客戶端證書檔案與密碼(ssl)

  --cert-type 憑證檔案類型(der/pem/eng) (ssl)

  --key      私鑰檔案名稱(ssl)

  --key-type 私鑰檔案類型(der/pem/eng) (ssl)

 鑰 --pass    私人密碼(ssl )

  --engine   加密引擎使用(ssl). "--engine list" for list

  --cacert ca憑證(ssl)

  --capath ca目錄(made using c_rehash) to verify peer against (ssl)

  --ciphers   ssl

#  --ciphers   ssl

#  --ciphers   ssl

1>com#com>como>是壓縮的形勢(using deflate or gzip)

  --connect-timeout 設置最大請求時間

  --create-dirs   建立本地目錄的目錄層次結構

  --crlf          上傳是將lf轉變為crlf

  -f/--fail         〵 如果遠端存在目錄不顯示http"##date ,建立遠端目錄

  --ftp-method [multicwd/nocwd/singlecwd] 控制cwd的使用

  --ftp-pasv      使用 pasv/epsv 來取代 #-caaaa -ftp-skip-pasv-ip 使用pasv的時候,忽略該ip位址

  --ftp-ssl       嘗試用ssl/tls 來進行ftp資料傳輸

 --ftp-ssl-ftp-ssl-ftp-ssl-ftp-ssl-ftp-ssl-ftp-ssl- reqd  要求用ssl/tls 來進行ftp資料傳輸

  -f/--form 模擬http表單提交資料

#  -form-string 模擬http表單提交資料

  -g/--globoff 停用網址序列和範圍使用{}和[]

  -g/--get 以get的方式來傳送資料

  -h/--help 幫助

  -h/--header 自訂頭資訊傳遞給伺服器

  --ignore-content-length  忽略的http頭資訊的長度

  -i/--include 輸出時包含protocol頭資訊

  -i/--head  只顯示文件資訊

  從檔案讀取-j /--junk-session-cookies忽略會話cookie

  - 介面指定網路介面/位址使用

  - krb4 <等級>啟用與指定的安全等級krb4

  -j/--junk-session-cookies 讀取檔案進忽略session cookie

  --interface 使用指定網路介面/位址

#  --krb4   使用指定安全等級的krb4

#  -k/--insecure 允許不使用憑證到ssl網站

  -k/--config  允許不使用憑證到ssl網站

  -k/--config  指定的設定檔讀取

#  -l/--list-only 列出ftp目錄下的檔案名稱

#  --limit-rate 設定傳輸速度

  --local-port

  -m/--max-time 設定最大傳輸時間

  --max-redirs 設定最大讀取的目錄數

  --max-filesize 設定最大下載的檔案總量
-m/--manual  顯示全手動

  -n/--netrc 從netrc檔案中讀取用戶名和密碼

  --netrc-optional 使用.netrc 或者url來覆蓋-n

  --ntlm          使用http ntlm 身份驗證

  -n/-- no-buffer 禁用緩衝輸出

  -o/--output 把輸出寫到該文件中

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

  -p/--proxytunnel   使用http代理

  --proxy-anyauth 選擇任一代理驗證方法

  --proxy-basic   在代理上使用基本驗證

  --proxy-digest  在代理程式上使用數位身分驗證

  --proxy-ntlm    在代理程式上使用ntlm驗證

  -p/-- -ftp-port

使用連接埠位址,而不是使用pasv

  -q/--quote 檔案傳輸前,發送命令到伺服器

  -r/- -range 檢索來自http/1.1或ftp伺服器位元組範圍

  --range-file 讀取(ssl)的隨機檔案

  -r/--remote-time在本地產生文件時,保留遠端文件時間

  --retry    傳輸出現問題時,重試的次數

  --retry-delay <  傳輸出現問題;時,設定重試間隔時間

  --retry-max-time 傳輸出現問題時,設定最大重試時間

  -s/--silent靜音模式。不輸出任何東西

  -s/--show-error   顯示錯誤

  --socks4 用socks4代理程式給定主機和連接埠

  --socks5 用socks5代理程式給定主機和連接埠

  --stderr

  -t/--telnet-option < ;opt=val> telnet選項設定

  --trace   對指定檔案進行debug

  --trace-ascii like --

#  --trace-ascii like --追蹤但沒有hex輸出

  --trace-time    追蹤/詳細輸出時,新增時間戳記

  -t/--upload-file 上傳檔案

  --url < url>     spet url to work with

  -u/--user 設定伺服器的使用者與密碼

  -u/--proxy-user < user[:password]>設定代理使用者名稱與密碼

  -v/--verbose

  -v/--version 顯示版本資訊

  -w/-- write-out [format]什麼輸出完成後

  -x/--proxy 在給定的連接埠上使用http代理

  -x/- -request 指定什麼指令

  -y/--speed-time 放棄限速所需的時間。預設為30

  -y/--speed-limit 停止傳輸速度的限制,速度時間'秒

  -z/--time-cond  傳送時間設定

# -0/--http1.0  使用http 1.0

  -1/--tlsv1  使用tlsv1(ssl)

  -2/--sslv2 使用sslv2的(ssl)

#  -2/--sslv2 使用sslv2的(ssl)

  -3/--sslv3         使用的sslv3(ssl)

  --3p-quote      like - 〠 for 3p-quote      like - 〠 for 3p-quote      like - 〠 for 3p-quote      like - 〠 3p-quote      like - 〠 3p- party trans_rd-- party#.進行第三方傳送

  --3p-user       使用使用者名稱及密碼,進行第三方傳送

  -4/--ipv4   使用ip4

 -6/--ipv4   使用ip4

 -6/--ipv6/--ipv6/--ipv6使用ip6

  -#/--progress-bar 用進度條顯示目前的傳送狀態

  二,常用curl實例

#  1,抓取頁面內容到一個文件中

  [root@krlcgcms01 mytest]# curl -o home.html 

  [root@krlcgcms01 mytest]# curl -o home.html 

##112]o 2,用. (大寫的),後面的url要具體到某個文件,不然抓不下來。我們也可以用正則來抓取東西

  [root@krlcgcms01 mytest]# curl -o

  [root@krlcgcms01 mytest]# curl -o

  3,模擬模擬 3,模擬模擬 3,模擬模擬表單訊息,模擬登錄,儲存cookie訊息

  [root@krlcgcms01 mytest]# curl -c ./cookie_c.txt -f log=aaaa -f pwd=******

#  [root@krlcgcms01 mytest]# curl -c ./cookie_c.txt -f log=aaaa -f pwd=******

  4,模擬表單訊息,模擬登錄,儲存頭資訊

  [root@krlcgcms01 mytest]# curl -d ./cookie_d.txt -f log=aaaa -f pwd=******

  [root@krlcgcms01 mytest]# curl -

  [root@krlcgcms01 mytest]# curl -

  [root@krlcgcms01 mytest]# curl -

[ d ./cookie_d.txt -f log=aaaa -f pwd=******

  -c(小寫)產生的cookie和-d裡面的cookie是不一樣的。

  5,使用cookie檔

  [root@krlcgcms01 mytest]# curl -b ./cookie_c.txt 

  [root@krlcgcms01 mytxt 

  [root@krlcgcms01 mytxt 

  [root@krlcgcms01 mytxt ]# . cookie_c.txt 

  6,斷點續傳,-c(大寫的)

  [root@krlcgcms01 mytest]# curl -c -o

  7,傳送資料,最好用登入頁面測試,因為你傳值過去後,curl回抓數據,你可以看到你傳值有沒有成功

  [root@krlcgcms01 mytest]# curl -d log=aaaa 

  [root@krlcgcms01 mytest]# curl -d log=aaaa 

  8,顯示抓取錯誤,下面這個例子,很清楚的表明了。

  [root@krlcgcms01 mytest]# curl -f

  curl: (22) the requested url returned error: 404

  [root@lctest
  404,not found

###  。 。 。 。 。 。 。 。 。 。 。 。 ######  [root@krlcgcms01 mytest]# curl -f######  curl: (22) the requested url returned error: 404######  [root@lctest ###  404,not found######  。 。 。 。 。 。 。 。 。 。 。 。 ######  9,偽造來源位址,有的網站會判斷,請求來源位址。 ######  [root@krlcgcms01 mytest]# curl -e######  [root@krlcgcms01 mytest]# curl -e######  10,當我們常常用curl去搞東西的時候,去搞人人家會把你的ip給屏蔽掉的,這個時候,我們可以用代理######  [root@krlcgcms01 mytest]# curl -x 24.10.28.84:32779 -o home.html###### [root@krlcgcms01 mytest]# curl -x 24.10.28.84:32779 -o home.html###11,比較大的東西,我們可以分段下載###

【[root@krlcgcms01 mytest]#curl -r 0-100 -o img.part1 -

##內容/uploads/2010/09/compare_varnish.jpg

#【%總計% 收到% % xferd 平均速度時間時間當前時間

#dload 上傳總​​花費左速度

 100   101  100   101   - --:--:-- - -:--:--     0

【root@krlcgcms01 mytest】#curl -r 100-200 -o img.part2 -

#【 content/uploads/2010/09/compare_varnish.jpg

% 總計% 收到% xferd 平均速度時間時間目前

dload 上傳總​​計花費剩餘速度

# 100   101  100 101    0     0     57     與 0   

內容/uploads/2010/09 /compare_varnish.jpg

%總計    %接收%xferd平均速度時間   時間    時間當前』# 

dload 

#100  104k  100  104k    0     0  52793      0  0: 00:02 0:00:【0221:-- | xargs du -sh

4.0k 一.part1

112k 三.part3

四.0k 二.part2

#[root@krlcgcms01 mytest]# curl -r 0-100 -o img.part1 -

Content/uploads/2010/09/compare_varnish.jpg

#dload上傳總花費左速

dload上傳總花費左速

#100   101 100   101    0     0    105      0 --:--:-- --:--:-- --:--:--     0

【[root@krlcgcms01 mytest]#curl -r 100- 200 -o img.part2 -

【content/uploads/2010/09/compare_varnish.jpg

】 % 總計% 收到 % xferd 平均速度時間時間目前時間

#dload 上傳總​​花費左速

【content/uploads/2010/09/compare_varnish.jpg

#】%總計    % 接收百分比% xferd 接收平均速率  時間時間     當前時間

德載入上傳總速度

####【root@krlcgcms01 mytest】# ls |grep 部分 | xargs du -sh

四.0k 一.part1

一112k 三.part3

四.0k 二.part2

#用的時候,把他們貓一下就ok了,cat img.part* >img.jpg

##13,顯示下載圖紙條

##[root@krlcgcms01 mytest]#curl -# -o

######## ######################################### ############ ####### 100.0%#######  % total    % received % xferd  average speed   time    time     time  current

    1934  101  1934    0     0   3184      0 --:--:-- - -:--:-- --:--:--  7136

  或用下面的方式

  [zhangy@blackghost ~]$ curl -o ftp://用戶名:密碼@ip:port/demo/curtain/bbstudy_files/style.css

  [zhangy@blackghost ~]$ curl -o ftp://使用者名稱:密碼@ip:port/demo/curtain/bbstudy_files/ style.css

  15,透過ftp上傳

  [zhangy@blackghost ~]$ curl -t test.sql ftp://使用者名稱:密碼@ip:port/demo/curtain/ bbstudy_files/

  [zhangy@blackghost ~]$ curl -t test.sql ftp://用戶名:密碼@ip:port/demo/curtain/bbstudy_files/

以上是linux curl指令參數有哪些及怎麼使用的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:yisu.com。如有侵權,請聯絡admin@php.cn刪除