在Linux中curl是一個利用URL規(guī)則在命令行下工作的文件傳輸工具,可以說是一款很強大的http命令行工具。它支持文件的上傳和下載,是綜合傳輸工具。
curl選項比較多,使用man curl或者curl -h獲取幫助信息。
?
?
?
?
?
-a/--append ? ? ? ? ? ? ? ? ? ? ? ? ? ??? ?上傳文件時,附加到目標文件
--anyauth ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??? ?可以使用“任何”身份驗證方法
--basic ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??? ?使用HTTP基本驗證
-B/--use-ascii ? ? ? ? ? ? ? ? ? ? ? ? ?? ?使用ASCII文本傳輸
-d/--data <data> ? ? ? ? ? ? ? ? ? ? ? ?? ?HTTP POST方式傳送數(shù)據(jù)
--data-ascii <data> ? ? ? ? ? ? ? ? ? ??? ?以ascii的方式post數(shù)據(jù)
--data-binary <data> ? ? ? ? ? ? ? ? ? ?? ?以二進制的方式post數(shù)據(jù)
--negotiate ? ? ? ? ? ? ? ? ? ? ? ? ? ??? ?使用HTTP身份驗證
--digest ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?? ?使用數(shù)字身份驗證
--disable-eprt ? ? ? ? ? ? ? ? ? ? ? ? ?? ?禁止使用EPRT或LPRT
--disable-epsv ? ? ? ? ? ? ? ? ? ? ? ? ?? ?禁止使用EPSV
--egd-file <file> ? ? ? ? ? ? ? ? ? ? ??? ?為隨機數(shù)據(jù)(SSL)設置EGD socket路徑
--tcp-nodelay ? ? ? ? ? ? ? ? ? ? ? ? ??? ?使用TCP_NODELAY選項
-E/--cert <cert[:passwd]> ? ? ? ? ? ? ??? ?客戶端證書文件和密碼 (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 <directory> ? ? ? ? ? ? ? ? ? ?? ?CA目 ? (made using c_rehash) to verify peer against (SSL)
--ciphers <list> ? ? ? ? ? ? ? ? ? ? ? ?? ?SSL密碼
--compressed ? ? ? ? ? ? ? ? ? ? ? ? ? ?? ?要求返回是壓縮的形勢 (using deflate or gzip)
--connect-timeout <seconds> ? ? ? ? ? ??? ?設置最大請求時間
--create-dirs ? ? ? ? ? ? ? ? ? ? ? ? ??? ?建立本地目錄的目錄層次結(jié)構(gòu)
--crlf ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?? ?上傳是把LF轉(zhuǎn)變成CRLF
--ftp-create-dirs ? ? ? ? ? ? ? ? ? ? ??? ?如果遠程目錄不存在,創(chuàng)建遠程目錄
--ftp-method [multicwd/nocwd/singlecwd]?? ?控制CWD的使用
--ftp-pasv ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?? ?使用 PASV/EPSV 代替端口
--ftp-skip-pasv-ip ? ? ? ? ? ? ? ? ? ? ?? ?使用PASV的時候,忽略該IP地址
--ftp-ssl ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??? ?嘗試用 SSL/TLS 來進行ftp數(shù)據(jù)傳輸
--ftp-ssl-reqd ? ? ? ? ? ? ? ? ? ? ? ? ?? ?要求用 SSL/TLS 來進行ftp數(shù)據(jù)傳輸
-F/--form <name=content> ? ? ? ? ? ? ? ?? ?模擬http表單提交數(shù)據(jù)
-form-string <name=string> ? ? ? ? ? ? ?? ?模擬http表單提交數(shù)據(jù)
-g/--globoff ? ? ? ? ? ? ? ? ? ? ? ? ? ?? ?禁用網(wǎng)址序列和范圍使用{}和[]
-G/--get ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?? ?以get的方式來發(fā)送數(shù)據(jù)
-h/--help ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??? ?幫助
-H/--header <line> ? ? ? ? ? ? ? ? ? ? ?? ?自定義頭信息傳遞給服務器
--ignore-content-length ? ? ? ? ? ? ? ??? ?忽略的HTTP頭信息的長度
-i/--include ? ? ? ? ? ? ? ? ? ? ? ? ? ?? ?輸出時包括protocol頭信息
-I/--head ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??? ?只顯示文檔信息
-j/--junk-session-cookies ? ? ? ? ? ? ??? ?讀取文件時忽略session cookie
--interface <interface> ? ? ? ? ? ? ? ??? ?使用指定網(wǎng)絡接口/地址
--krb4 <level> ? ? ? ? ? ? ? ? ? ? ? ? ?? ?使用指定安全級別的krb4
-k/--insecure ? ? ? ? ? ? ? ? ? ? ? ? ??? ?允許不使用證書到SSL站點
-K/--config ? ? ? ? ? ? ? ? ? ? ? ? ? ??? ?指定的配置文件讀取
-l/--list-only ? ? ? ? ? ? ? ? ? ? ? ? ?? ?列出ftp目錄下的文件名稱
--limit-rate <rate> ? ? ? ? ? ? ? ? ? ??? ?設置傳輸速度
--local-port<NUM> ? ? ? ? ? ? ? ? ? ? ??? ?強制使用本地端口號
-m/--max-time <seconds> ? ? ? ? ? ? ? ??? ?設置最大傳輸時間
--max-redirs <num> ? ? ? ? ? ? ? ? ? ? ?? ?設置最大讀取的目錄數(shù)
--max-filesize <bytes> ? ? ? ? ? ? ? ? ?? ?設置最大下載的文件總量
-M/--manual ? ? ? ? ? ? ? ? ? ? ? ? ? ??? ?顯示全手動
-n/--netrc ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?? ?從netrc文件中讀取用戶名和密碼
--netrc-optional ? ? ? ? ? ? ? ? ? ? ? ?? ?使用 .netrc 或者 URL來覆蓋-n
--ntlm ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?? ?使用 HTTP NTLM 身份驗證
-N/--no-buffer ? ? ? ? ? ? ? ? ? ? ? ? ?? ?禁用緩沖輸出
-p/--proxytunnel ? ? ? ? ? ? ? ? ? ? ? ?? ?使用HTTP代理
--proxy-anyauth ? ? ? ? ? ? ? ? ? ? ? ??? ?選擇任一代理身份驗證方法
--proxy-basic ? ? ? ? ? ? ? ? ? ? ? ? ??? ?在代理上使用基本身份驗證
--proxy-digest ? ? ? ? ? ? ? ? ? ? ? ? ?? ?在代理上使用數(shù)字身份驗證
--proxy-ntlm ? ? ? ? ? ? ? ? ? ? ? ? ? ?? ?在代理上使用ntlm身份驗證
-P/--ftp-port <address> ? ? ? ? ? ? ? ??? ?使用端口地址,而不是使用PASV
-Q/--quote <cmd> ? ? ? ? ? ? ? ? ? ? ? ?? ?文件傳輸前,發(fā)送命令到服務器
--range-file ? ? ? ? ? ? ? ? ? ? ? ? ? ?? ?讀?。⊿SL)的隨機文件
-R/--remote-time ? ? ? ? ? ? ? ? ? ? ? ?? ?在本地生成文件時,保留遠程文件時間
--retry <num> ? ? ? ? ? ? ? ? ? ? ? ? ??? ?傳輸出現(xiàn)問題時,重試的次數(shù)
--retry-delay <seconds> ? ? ? ? ? ? ? ??? ?傳輸出現(xiàn)問題時,設置重試間隔時間
--retry-max-time <seconds> ? ? ? ? ? ? ?? ?傳輸出現(xiàn)問題時,設置最大重試時間
-S/--show-error ? ? ? ? ? ? ? ? ? ? ? ??? ?顯示錯誤
--socks4 <host[:port]> ? ? ? ? ? ? ? ? ?? ?用socks4代理給定主機和端口
--socks5 <host[:port]> ? ? ? ? ? ? ? ? ?? ?用socks5代理給定主機和端口
-t/--telnet-option <OPT=val> ? ? ? ? ? ?? ?Telnet選項設置
--trace <file> ? ? ? ? ? ? ? ? ? ? ? ? ?? ?對指定文件進行debug
--trace-ascii <file> ? ? ? ? ? ? ? ? ? ?? ?Like --跟蹤但沒有hex輸出
--trace-time ? ? ? ? ? ? ? ? ? ? ? ? ? ?? ?跟蹤/詳細輸出時,添加時間戳
--url <URL> ? ? ? ? ? ? ? ? ? ? ? ? ? ??? ?Spet URL to work with
-U/--proxy-user <user[:password]> ? ? ??? ?設置代理用戶名和密碼
-V/--version ? ? ? ? ? ? ? ? ? ?? ?顯示版本信息
-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)
-3/--sslv3 ? ? ? ? ? ? ? ? ? ? ?? ?使用的SSLv3(SSL)
--3p-quote ? ? ? ? ? ? ? ? ? ? ?? ?like -Q for the source URL for 3rd party transfer
--3p-url ? ? ? ? ? ? ? ? ? ? ? ?? ?使用url,進行第三方傳送
--3p-user ? ? ? ? ? ? ? ? ? ? ??? ?使用用戶名和密碼,進行第三方傳送
-4/--ipv4 ? ? ? ? ? ? ? ? ? ? ??? ?使用IP4
-6/--ipv6 ? ? ? ? ? ? ? ? ? ? ??? ?使用IP6
?默認情況下,cur使用get方式發(fā)送參數(shù)
例如:
curl?
https://www.baidu.com/?tn=54093922_hao_pg
使用-d參數(shù)讓curl使用post方式發(fā)送參數(shù)
例如:
curl -X POST -d 'tn=54093922_hao_pg' https://www.baidu.com
如果需要發(fā)送json格式參數(shù),使用-H,-X,-d參數(shù)配合來實現(xiàn)
curl -H "Content-Type: application/json" -X POST -d '{"a1":123,"a2":"456"}' URL
-H代表header頭,-X是指定什么類型請求(POST/GET/HEAD/DELETE/PUT/PATCH),-d代表傳輸什么數(shù)據(jù)。
使用-o下載文件。
例如:保存www.xxx.com網(wǎng)頁到xxx.html
?curl -o xxx.html http://www.xxx.com? 或?curl http://www.xxx.com >> xxx.html
測試網(wǎng)頁返回值。例如:
?如圖返回值200
保存http的response里面的cookie信息。內(nèi)置option:-c(小寫)
?curl -c cookiec.txt ?http://www.xxx.com
保存http的response里面的header信息。內(nèi)置option: -D
curl -D cookied.txt http://www.xxx.com
使用保存的cookie信息。內(nèi)置option: -b
?curl -b cookiec.txt http://www.xxx.com
內(nèi)置option:-A可以讓我們指定瀏覽器去訪問網(wǎng)站
?curl -A "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.0)" http://www.xxx.com
curl中內(nèi)置option:-e可以讓我們設定referer
curl -e "www.xxx.com" http://www.yyy.com
這樣就會讓服務器其以為你是從www.xxx.com點擊某個鏈接過來的
有時候下載圖片可以能是前面的部分名稱是一樣的,就最后的尾椎名不一樣
?curl -O http://www.yyy.com/xxx[1-5].JPG
有時候下載的東西會比較大,這個時候我們可以分段下載。使用內(nèi)置option:-r
?curl -r 0-100 -o xxx_part1.zip http://www.linux.com/xxx.zip
?curl -r 100-200 -o xxx_part2.zip http://www.linux.com/xxx.zip
?curl -r 200- -o xxx_part3.zip http://www.linux.com/xxx.zip
?cat xxx_part* > xxx.zipxxx.zip
curl可以通過ftp下載文件,curl提供兩種從ftp中下載的語法
?curl -O -u 用戶名:密碼 ftp://www.xxx.com/xxx.zip
?curl -O ftp://用戶名:密碼@www.xxx.com/xxx.zip
curl不僅僅可以下載文件,還可以上傳文件。通過內(nèi)置option:-T來實現(xiàn)
?curl -T dodo1.JPG -u 用戶名:密碼 ftp://www.xxx.com/upload
顯示抓取錯誤文章來源:http://www.zghlxwxcb.cn/news/detail-443015.html
?curl -f http://www.xxx.com/displayerror文章來源地址http://www.zghlxwxcb.cn/news/detail-443015.html
到了這里,關(guān)于Linux必會100個命令(六十)curl的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!