curl命令詳解

linux命令之curl

curl命令詳解

1、curl命令簡(jiǎn)介

curl命令是一個(gè)利用URL規(guī)則在命令行下工作的文件傳輸工具。它支持文件的上傳和下載,所以是綜合傳輸工具,但按傳統(tǒng),習(xí)慣稱curl為下載工具。作為一款強(qiáng)力工具,curl支持包括HTTP、HTTPS、ftp等眾多協(xié)議,還支持POST、cookies、認(rèn)證、從指定偏移處下載部分文件、用戶代理字符串、限速、文件大小、進(jìn)度條等特征、做網(wǎng)頁(yè)處理流程和數(shù)據(jù)檢索自動(dòng)化等常用需求。

1.1 語(yǔ)法

curl(選項(xiàng))(參數(shù))

1.2 參數(shù)

  • -a/--append:上傳文件時(shí),附加到目標(biāo)文件。
  • -A/--user-agent <string>;設(shè)置用戶代理發(fā)送給服務(wù)器。
  • -anyauth:可以使用“任何”身份驗(yàn)證方法
  • -b/--cookie <name=string/file>:cookie字符串或文件讀取位置。
    • --basic:使用HTTP基本驗(yàn)證。
  • -B/--use-ascii:使用ASCII文本傳輸。
  • -c/--cookie-jar <file>:操作結(jié)束后把cookie寫入到這個(gè)文件中。
  • -C/--continue-at <offset>:斷點(diǎn)續(xù)轉(zhuǎn)。
  • -d/--data <data>:HTTP POST方式傳送數(shù)據(jù)。
    • --data-ascii <data>:以ascii的方式post數(shù)據(jù)。
    • --data-binary <data>:以二進(jìn)制的方式post數(shù)據(jù)。
    • --negotiate:使用HTTP身份驗(yàn)證。
    • --digest:使用數(shù)字身份驗(yàn)證。
    • --disable-eprt:禁止使用EPRT或LPRT。
    • --disable-epsv:禁止使用EPSV。
  • -D/--dump-header <file>:把header信息寫入到該文件中。
    • --egd-file <file>:為隨機(jī)數(shù)據(jù)(SSL)設(shè)置EGD socket路徑。
    • --tcp-nodelay:使用TCP_NODELAY選項(xiàng)。
  • -e/--referer:來(lái)源網(wǎng)址。
  • -E/--cert <cert[:password]>:客戶端證書文件和密碼 (SSL)。
    • --cert-type <type>:證書文件類型 (DER/PEM/ENG) (SSL)。
    • --key <key>:私鑰文件名 (SSL)。
    • --key-type <type>:私鑰文件類型 (DER/PEM/ENG) (SSL)。
    • --pass <pass>:私鑰密碼 (SSL)。
    • --engine <eng>:加密引擎使用 (SSL) "--engine list" for list。
    • --cacert <file>:CA證書 (SSL)。
    • --capath <dierctory>:CA目錄 (made using c_rehash) to verify peer against (SSL)。
    • --ciphers <list>:SSL密碼。
    • --compressed:要求返回是壓縮的形勢(shì) (using deflate or gzip)。
    • --connect-timeout <seconds>:設(shè)置最大請(qǐng)求時(shí)間。
    • --create-dirs:建立本地目錄的目錄層次結(jié)構(gòu)。
    • --crlf:上傳是把LF轉(zhuǎn)變成CRLF。
  • -f/--fail:連接失敗時(shí)不顯示http錯(cuò)誤。
    • --ftp-create-dirs:如果遠(yuǎn)程目錄不存在,創(chuàng)建遠(yuǎn)程目錄。
    • --ftp-method [multicwd/nocwd/singlecwd]:控制CWD的使用。
    • --ftp-pasv:使用 PASV/EPSV 代替端口。
    • --ftp-skip-pasv-ip:使用PASV的時(shí)候,忽略該IP地址。
    • --ftp-ssl:嘗試用 SSL/TLS 來(lái)進(jìn)行ftp數(shù)據(jù)傳輸。
    • --ftp-ssl-reqd;要求用 SSL/TLS 來(lái)進(jìn)行ftp數(shù)據(jù)傳輸。
  • -F/--form 模擬http表單提交數(shù)據(jù)。
    • --form-string <name=string>:模擬http表單提交數(shù)據(jù)。
  • -g/--globoff:禁用網(wǎng)址序列和范圍使用{}和[]。
  • -G/--get:以get的方式來(lái)發(fā)送數(shù)據(jù)。
  • -H/--header <line>:自定義頭信息傳遞給服務(wù)器。
    • --ignore-content-length:忽略的HTTP頭信息的長(zhǎng)度。
  • -i/--include:輸出時(shí)包括protocol頭信息。
  • -I/--head:只顯示請(qǐng)求頭信息。
  • -j/--junk-session-cookies:讀取文件進(jìn)忽略session cookie。
    • --interface <interface>:使用指定網(wǎng)絡(luò)接口/地址。
    • --krb4 <level>:使用指定安全級(jí)別的krb4。
  • -k/--insecure:允許不使用證書到SSL站點(diǎn)。
  • -K/--config:指定的配置文件讀取。
  • -l/--list-only:列出ftp目錄下的文件名稱。
    • --limit-rate <rate>:設(shè)置傳輸速度。
    • --local-port <NUM>:強(qiáng)制使用本地端口號(hào)。
  • -m/--max-time <seconds>:設(shè)置最大傳輸時(shí)間。
  • --max-redirs <num>:設(shè)置最大讀取的目錄數(shù)。
  • --max-filesize <bytes>:設(shè)置最大下載的文件總量。
  • -M/--manual:顯示全手動(dòng)。
  • -n/--netrc:從netrc文件中讀取用戶名和密碼。
    • --netrc-optional:使用 .netrc 或者 URL來(lái)覆蓋-n。
    • --ntlm:使用 HTTP NTLM 身份驗(yàn)證。
  • -N/--no-buffer:禁用緩沖輸出。
  • -o/--output:把輸出寫到該文件中。
  • -O/--remote-name:把輸出寫到該文件中,保留遠(yuǎn)程文件的文件名。
  • -p/--proxytunnel:使用HTTP代理。
    • --proxy-anyauth:選擇任一代理身份驗(yàn)證方法。
    • --proxy-basic:在代理上使用基本身份驗(yàn)證。
    • --proxy-digest:在代理上使用數(shù)字身份驗(yàn)證。
    • --proxy-ntlm:在代理上使用ntlm身份驗(yàn)證。
  • -P/--ftp-port <address>:使用端口地址,而不是使用PASV。
  • -q:作為第一個(gè)參數(shù),關(guān)閉 .curlrc。
  • -Q/--quote <cmd>:文件傳輸前,發(fā)送命令到服務(wù)器。
  • -r/--range <range>:檢索來(lái)自HTTP/1.1或FTP服務(wù)器字節(jié)范圍。
    • --range-file:讀取(SSL)的隨機(jī)文件。
  • -R/--remote-time:在本地生成文件時(shí),保留遠(yuǎn)程文件時(shí)間。
    • --retry <num>:傳輸出現(xiàn)問(wèn)題時(shí),重試的次數(shù)。
    • --retry-delay <seconds>:傳輸出現(xiàn)問(wèn)題時(shí),設(shè)置重試間隔時(shí)間。
    • --retry-max-time <seconds>:傳輸出現(xiàn)問(wèn)題時(shí),設(shè)置最大重試時(shí)間。
  • -s/--silent:靜默模式。不輸出任何東西。
  • -S/--show-error:顯示錯(cuò)誤。
    • --socks4 <host[:port]>:用socks4代理給定主機(jī)和端口。
    • --socks5 <host[:port]>:用socks5代理給定主機(jī)和端口。
    • --stderr <file>
      -t/--telnet-option <opt=val>:Telnet選項(xiàng)設(shè)置。
    • --trace <file>:對(duì)指定文件進(jìn)行debug。
    • --trace-ascii <file>:Like --跟蹤但沒(méi)有hex輸出。
    • --trace-time:跟蹤/詳細(xì)輸出時(shí),添加時(shí)間戳。
  • -T/--upload-file <file>:上傳文件。
    • --url <url>:Spet URL to work with。
  • -u/--user <user[:password]>:設(shè)置服務(wù)器的用戶和密碼。
  • -U/--proxy-user <user[:password]>:設(shè)置代理用戶名和密碼。
  • -w/--write-out [format]:什么輸出完成后。
  • -x/--proxy <host[:port]>:在給定的端口上使用HTTP代理。
  • -X/--request:指定什么命令。
  • -y/--speed-time:放棄限速所要的時(shí)間,默認(rèn)為30。
  • -Y/--speed-limit:停止傳輸速度的限制,速度時(shí)間。

1.3 實(shí)例

實(shí)例將陸續(xù)添加。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Spring Cloud為開(kāi)發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見(jiàn)模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,697評(píng)論 19 139
  • 轉(zhuǎn)載自:http://www.cnblogs.com/txw1958/archive/2013/01/19/286...
    php_bruce閱讀 2,466評(píng)論 1 5
  • 對(duì)于windows用戶如果用Cygwin模擬unix環(huán)境的話,里面沒(méi)有帶curl命令,要自己裝,所以建議用Gow來(lái)...
    會(huì)飛的大象_閱讀 1,627評(píng)論 0 0
  • CURLOPT_RETURNTRANSFER 選項(xiàng):curl_setopt($ch, CURLOPT_RETURN...
    Talentisan閱讀 17,151評(píng)論 0 2
  • 一、什么是CURL? cURL 是一個(gè)利用URL語(yǔ)法規(guī)定來(lái)傳輸文件和數(shù)據(jù)的工具,支持很多協(xié)議,如HTTP、FTP、...
    伊Summer閱讀 1,401評(píng)論 0 4

友情鏈接更多精彩內(nèi)容