linux curl是一個利用url規則在命令列下工作的檔案傳輸工具。它支援檔案的上傳和下載,所以是綜合傳輸工具,但按傳統,習慣稱url為下載工具。
一,curl指令參數
-a/--append 上傳檔案時,附加到目標檔案
-a/--user-agent
- anyauth 可以使用「任何」身份驗證方法
-b/--cookie
- basic 使用http基本驗證
-b/--use-ascii 使用ascii /文字傳送
-c/--cookie-jar
-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# --ftp-skip-pasv-ip 使用pasv的時候,忽略該ip位址 --ftp-ssl 嘗試使用ssl/tls 來進行ftp資料# -# -# -ftp-ssl-reqd 要求用ssl/tls 來進行ftp資料傳輸 -f/--form
-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
--range-file 讀取(ssl)的隨機檔案
-r/--remote-time 在本機產生檔案時,保留遠端檔案時間
--retry
# --retry-delay
--retry-max-time
-s/--silent靜音模式。不輸出任何東西
-s/--show-error 顯示錯誤
--socks4
--socks5
--stderr
-t/--telnet-option
--trace
--trace-ascii
--trace-time 追蹤/詳細輸出時,新增時間戳記
-t/--upload-file
--url
-u/--user
-u/--proxy-user
-v/--verbose
-v/--version 顯示版本資訊
# -w/--write-out [format]什麼輸出完成後
-x/--proxy
-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--tcp-nodelay 使用tcp_nodelay選項
-e/--referer 來源網址
-e/--cert
--cert-type
--key
--key-type
鑰 --pass
--engine
--cacert
--capath
--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
# -form-string
-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
# -k/--insecure 允許不使用憑證到ssl網站
-k/--config 允許不使用憑證到ssl網站
-k/--config 指定的設定檔讀取
# -l/--list-only 列出ftp目錄下的檔案名稱
# --limit-rate
--local-port -m/--max-time --max-redirs --max-filesize -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
-m/--manual 顯示全手動
-q/--quote
-r/- -range
--range-file 讀取(ssl)的隨機檔案
-r/--remote-time在本地產生文件時,保留遠端文件時間
--retry
--retry-delay < 傳輸出現問題;時,設定重試間隔時間
--retry-max-time
-s/--silent靜音模式。不輸出任何東西
-s/--show-error 顯示錯誤
--socks4
--socks5
--stderr
-t/--telnet-option < ;opt=val> telnet選項設定
--trace
--trace-ascii
# -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
【[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 current1934 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中文網其他相關文章!