Linux--curl命令


 

curl:是一個利用URL規則在命令行下工作的文件傳輸工具,可以說是一款很強大的http命令行工具。它支持文件的上傳和下載,是綜合傳輸工具

語法定義: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 :進度條顯示當前的傳送狀態

-I/--head :僅返回頭部信息,使用HEAD請求

-v/--verbose :小寫的v參數,用於打印更多信息,包括發送的請求信息,這在調試腳本是特別有用

-m/--max-time <seconds> 指定處理的最大時長

-H/--header <header>: 指定請求頭參數

--connect-timeout <seconds> :指定嘗試連接的最大時長

-d/--data/--data-ascii <data> :指定POST的內容

--retry <num> :指定重試次數

 

常見實例:

#基本用法 curl https://www.cnblogs.com/fqfanqi/
 #只顯示頭部信息 [13052348957@izuf60jasqavbxb9efockpz ~]$ curl -I https://www.cnblogs.com/fqfanqi/
HTTP/1.1 200 OK Date: Sun, 16 Dec 2018 16:36:56 GMT Content-Type: text/html; charset=utf-8 Content-Length: 13746 Connection: keep-alive Vary: Accept-Encoding Cache-Control: private, max-age=10 Expires: Sun, 16 Dec 2018 16:37:06 GMT Last-Modified: Sun, 16 Dec 2018 16:36:56 GMT X-UA-Compatible: IE=10 X-Frame-Options: SAMEORIGIN

#測試網頁是否正常 [13052348957@izuf60jasqavbxb9efockpz ~]$ curl -o /dev/null -s -w %{http_code} https://www.cnblogs.com/fqfanqi/ | awk '{print $1}'
200 #設置代理訪問 curl -x 192.168.100.100:1080 https://www.cnblogs.com/fqfanqi/
 #保存http的response里面的cookie信息 curl -c cookie.txt https://www.cnblogs.com/fqfanqi/
 #使用cookie登錄 curl -b cookie.txt https://www.cnblogs.com/fqfanqi/
 #保存返回的head信息 curl -D head.txt https://www.cnblogs.com/fqfanqi/
 #模仿瀏覽器訪問 curl -A "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.0)"  head.txt https://www.cnblogs.com/fqfanqi/
 #通過ftp下載文件 curl -O -u 用戶名:密碼 ftp://www.linux.com/dodo1.JPG
curl -O ftp://用戶名:密碼@www.linux.com/dodo1.JPG
 #上傳文件 curl -T dodo1.JPG -u 用戶名:密碼 ftp://www.linux.com/img/
 #斷點續傳 curl -C -O http://www.linux.com/dodo1.JPG
 1 其他:  2 -a/--append 上傳文件時,附加到目標文件  3 --anyauth 可以使用“任何”身份驗證方法  4 --basic 使用HTTP基本驗證  5 -B/--use-ascii 使用ASCII文本傳輸  6 -d/--data <data> HTTP POST方式傳送數據  7 --data-ascii <data> 以ascii的方式post數據  8 --data-binary <data> 以二進制的方式post數據  9 --negotiate 使用HTTP身份驗證 10 --digest 使用數字身份驗證 11 --disable-eprt 禁止使用EPRT或LPRT 12 --disable-epsv 禁止使用EPSV 13 --egd-file <file> 為隨機數據(SSL)設置EGD socket路徑 14 --tcp-nodelay 使用TCP_NODELAY選項 15 -E/--cert <cert[:passwd]> 客戶端證書文件和密碼 (SSL) 16 --cert-type <type>              證書文件類型 (DER/PEM/ENG) (SSL) 17 --key <key> 私鑰文件名 (SSL) 18 --key-type <type>              私鑰文件類型 (DER/PEM/ENG) (SSL) 19 --pass  <pass> 私鑰密碼 (SSL) 20 --engine <eng>                  加密引擎使用 (SSL). "--engine list" for list 21 --cacert <file> CA證書 (SSL) 22 --capath <directory> CA目 (made using c_rehash) to verify peer against (SSL) 23 --ciphers <list> SSL密碼 24 --compressed                    要求返回是壓縮的形勢 (using deflate or gzip) 25 --connect-timeout <seconds> 設置最大請求時間 26 --create-dirs 建立本地目錄的目錄層次結構 27 --crlf 上傳是把LF轉變成CRLF 28 --ftp-create-dirs 如果遠程目錄不存在,創建遠程目錄 29 --ftp-method [multicwd/nocwd/singlecwd] 控制CWD的使用 30 --ftp-pasv                      使用 PASV/EPSV 代替端口 31 --ftp-skip-pasv-ip 使用PASV的時候,忽略該IP地址 32 --ftp-ssl                      嘗試用 SSL/TLS 來進行ftp數據傳輸 33 --ftp-ssl-reqd                  要求用 SSL/TLS 來進行ftp數據傳輸 34 -F/--form <name=content> 模擬http表單提交數據 35 -form-string <name=string> 模擬http表單提交數據 36 -g/--globoff 禁用網址序列和范圍使用{}和[] 37 -G/--get 以get的方式來發送數據 38 -h/--help 幫助 39 -H/--header <line> 自定義頭信息傳遞給服務器 40 --ignore-content-length 忽略的HTTP頭信息的長度 41 -i/--include 輸出時包括protocol頭信息 42 -I/--head 只顯示文檔信息 43 -j/--junk-session-cookies 讀取文件時忽略session cookie 44 --interface <interface>        使用指定網絡接口/地址 45 --krb4 <level> 使用指定安全級別的krb4 46 -k/--insecure 允許不使用證書到SSL站點 47 -K/--config 指定的配置文件讀取 48 -l/--list-only 列出ftp目錄下的文件名稱 49 --limit-rate <rate> 設置傳輸速度 50 --local-port<NUM> 強制使用本地端口號 51 -m/--max-time <seconds> 設置最大傳輸時間 52 --max-redirs <num> 設置最大讀取的目錄數 53 --max-filesize <bytes> 設置最大下載的文件總量 54 -M/--manual 顯示全手動 55 -n/--netrc 從netrc文件中讀取用戶名和密碼 56 --netrc-optional                使用 .netrc 或者 URL來覆蓋-n 57 --ntlm 使用 HTTP NTLM 身份驗證 58 -N/--no-buffer 禁用緩沖輸出 59 -p/--proxytunnel 使用HTTP代理 60 --proxy-anyauth 選擇任一代理身份驗證方法 61 --proxy-basic 在代理上使用基本身份驗證 62 --proxy-digest 在代理上使用數字身份驗證 63 --proxy-ntlm 在代理上使用ntlm身份驗證 64 -P/--ftp-port <address> 使用端口地址,而不是使用PASV 65 -Q/--quote <cmd> 文件傳輸前,發送命令到服務器 66 --range-file 讀取(SSL)的隨機文件 67 -R/--remote-time 在本地生成文件時,保留遠程文件時間 68 --retry <num> 傳輸出現問題時,重試的次數 69 --retry-delay <seconds> 傳輸出現問題時,設置重試間隔時間 70 --retry-max-time <seconds> 傳輸出現問題時,設置最大重試時間 71 -S/--show-error 顯示錯誤 72 --socks4 <host[:port]> 用socks4代理給定主機和端口 73 --socks5 <host[:port]> 用socks5代理給定主機和端口 74 -t/--telnet-option <OPT=val> Telnet選項設置 75 --trace <file> 對指定文件進行debug 76 --trace-ascii <file>            Like --跟蹤但沒有hex輸出 77 --trace-time                    跟蹤/詳細輸出時,添加時間戳 78 --url <URL> Spet URL to work with 79 -U/--proxy-user <user[:password]> 設置代理用戶名和密碼 80 -V/--version 顯示版本信息 81 -X/--request <command> 指定什么命令 82 -y/--speed-time 放棄限速所要的時間。默認為30 83 -Y/--speed-limit                停止傳輸速度的限制,速度時間'
84 -z/--time-cond 傳送時間設置 85 -0/--http1.0                    使用HTTP 1.0
86 -1/--tlsv1 使用TLSv1(SSL) 87 -2/--sslv2 使用SSLv2的(SSL) 88 -3/--sslv3 使用的SSLv3(SSL) 89 --3p-quote                      like -Q for the source URL for 3rd party transfer 90 --3p-url 使用url,進行第三方傳送 91 --3p-user 使用用戶名和密碼,進行第三方傳送 92 -4/--ipv4 使用IP4 93 -6/--ipv6                      使用IP6
View Code

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM