亚洲韩日午夜视频,欧美日韩在线精品一区二区三区,韩国超清无码一区二区三区,亚洲国产成人影院播放,久草新在线,在线看片AV色

您好,歡迎來到思海網絡,我們將竭誠為您提供優質的服務! 誠征網絡推廣 | 網站備案 | 幫助中心 | 軟件下載 | 購買流程 | 付款方式 | 聯系我們 [ 會員登錄/注冊 ]
促銷推廣
客服中心
業務咨詢
有事點擊這里…  531199185
有事點擊這里…  61352289
點擊這里給我發消息  81721488
有事點擊這里…  376585780
有事點擊這里…  872642803
有事點擊這里…  459248018
有事點擊這里…  61352288
有事點擊這里…  380791050
技術支持
有事點擊這里…  714236853
有事點擊這里…  719304487
有事點擊這里…  1208894568
有事點擊這里…  61352289
在線客服
有事點擊這里…  531199185
有事點擊這里…  61352288
有事點擊這里…  983054746
有事點擊這里…  893984210
當前位置:首頁 >> 技術文章 >> 文章瀏覽
技術文章

Linux系統中的curl命令使用

添加時間:2016-1-26 2:43:25  添加: 思海網絡 
Linux系統中的curl命令使用


命令:curl
在Linux中curl是一個利用URL規則在命令行下工作的文件傳輸工具,可以說是一款很強大的http命令行工具。它支持文件的上傳和下載,是綜合傳輸工具,但按傳統,習慣稱url為下載工具。
語法:# 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                        進度條顯示當前的傳送狀態

例子:
1、基本用法

代碼如下:
# curl http://www.linux.com
執行后,www.linux.com 的html就會顯示在屏幕上了
Ps:由于安裝linux的時候很多時候是沒有安裝桌面的,也意味著沒有瀏覽器,因此這個方法也經常用于測試一臺服務器是否可以到達一個網站
2、保存訪問的網頁
2.1:使用linux的重定向功能保存

代碼如下:
# curl http://www.linux.com >> linux.html
2.2:可以使用curl的內置option:-o(小寫)保存網頁


代碼如下:$ curl -o linux.html http://www.linux.com
執行完成后會顯示如下界面,顯示100%則表示保存成功
% Total    % Received % Xferd  Average Speed  Time    Time    Time  Current
                                Dload  Upload  Total  Spent    Left  Speed
100 79684    0 79684    0    0  3437k      0 --:--:-- --:--:-- --:--:-- 7781k
2.3:可以使用curl的內置option:-O(大寫)保存網頁中的文件
要注意這里后面的url要具體到某個文件,不然抓不下來

代碼如下:
# curl -O http://www.linux.com/hello.sh
3、測試網頁返回值

代碼如下:
# curl -o /dev/null -s -w %{http_code} www.linux.com
Ps:在腳本中,這是很常見的測試網站是否正常的用法
4、指定proxy服務器以及其端口
很多時候上網需要用到代理服務器(比如是使用代理服務器上網或者因為使用curl別人網站而被別人屏蔽IP地址的時候),幸運的是curl通過使用內置option:-x來支持設置代理


代碼如下:# curl -x 192.168.100.100:1080 http://www.linux.com
5、cookie
有些網站是使用cookie來記錄session信息。對于chrome這樣的瀏覽器,可以輕易處理cookie信息,但在curl中只要增加相關參數也是可以很容易的處理cookie
5.1:保存http的response里面的cookie信息。內置option:-c(小寫)


代碼如下:# curl -c cookiec.txt http://www.linux.com
執行后cookie信息就被存到了cookiec.txt里面了

5.2:保存http的response里面的header信息。內置option: -D

代碼如下:# curl -D cookied.txt http://www.linux.com
執行后cookie信息就被存到了cookied.txt里面了
注意:-c(小寫)產生的cookie和-D里面的cookie是不一樣的。

5.3:使用cookie
很多網站都是通過監視你的cookie信息來判斷你是否按規矩訪問他們的網站的,因此我們需要使用保存的cookie信息。內置option: -b

代碼如下:# curl -b cookiec.txt http://www.linux.com
6、模仿瀏覽器
有些網站需要使用特定的瀏覽器去訪問他們,有些還需要使用某些特定的版本。curl內置option:-A可以讓我們指定瀏覽器去訪問網站

代碼如下:
# curl -A "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.0)" http://www.linux.com
這樣服務器端就會認為是使用IE8.0去訪問的
7、偽造referer(盜鏈)
很多服務器會檢查http訪問的referer從而來控制訪問。比如:你是先訪問首頁,然后再訪問首頁中的郵箱頁面,這里訪問郵箱的referer地址就是訪問首頁成功后的頁面地址,如果服務器發現對郵箱頁面訪問的referer地址不是首頁的地址,就斷定那是個盜連了
curl中內置option:-e可以讓我們設定referer


代碼如下:# curl -e "www.linux.com" http://mail.linux.com
這樣就會讓服務器其以為你是從www.linux.com點擊某個鏈接過來的
8、下載文件
8.1:利用curl下載文件。

代碼如下:
#使用內置option:-o(小寫)
# curl -o dodo1.jpg http:www.linux.com/dodo1.JPG
#使用內置option:-O(大寫)
# curl -O http://www.linux.com/dodo1.JPG
這樣就會以服務器上的名稱保存文件到本地
8.2:循環下載
有時候下載圖片可以能是前面的部分名稱是一樣的,就最后的尾椎名不一樣


代碼如下:# curl -O http://www.linux.com/dodo[1-5].JPG
這樣就會把dodo1,dodo2,dodo3,dodo4,dodo5全部保存下來
8.3:下載重命名

代碼如下:
# curl -O http://www.linux.com/{hello,bb}/dodo[1-5].JPG
由于下載的hello與bb中的文件名都是dodo1,dodo2,dodo3,dodo4,dodo5。因此第二次下載的會把第一次下載的覆蓋,這樣就需要對文件進行重命名。

代碼如下:
# curl -o #1_#2.JPG http://www.linux.com/{hello,bb}/dodo[1-5].JPG
這樣在hello/dodo1.JPG的文件下載下來就會變成hello_dodo1.JPG,其他文件依此類推,從而有效的避免了文件被覆蓋
8.4:分塊下載
有時候下載的東西會比較大,這個時候我們可以分段下載。使用內置option:-r


代碼如下:# curl -r 0-100 -o dodo1_part1.JPG http://www.linux.com/dodo1.JPG
# curl -r 100-200 -o dodo1_part2.JPG http://www.linux.com/dodo1.JPG
# curl -r 200- -o dodo1_part3.JPG http://www.linux.com/dodo1.JPG
# cat dodo1_part* > dodo1.JPG
這樣就可以查看dodo1.JPG的內容了
8.5:通過ftp下載文件
curl可以通過ftp下載文件,curl提供兩種從ftp中下載的語法


代碼如下:# curl -O -u 用戶名:密碼 ftp://www.linux.com/dodo1.JPG
# curl -O ftp://用戶名:密碼@www.linux.com/dodo1.JPG
8.6:顯示下載進度條


代碼如下:# curl -# -O http://www.linux.com/dodo1.JPG
8.7:不會顯示下載進度信息


代碼如下:# curl -s -O http://www.linux.com/dodo1.JPG
9、斷點續傳
在windows中,我們可以使用迅雷這樣的軟件進行斷點續傳。curl可以通過內置option:-C同樣可以達到相同的效果
如果在下載dodo1.JPG的過程中突然掉線了,可以使用以下的方式續傳


代碼如下:# curl -C -O http://www.linux.com/dodo1.JPG
10、上傳文件
curl不僅僅可以下載文件,還可以上傳文件。通過內置option:-T來實現


代碼如下:# curl -T dodo1.JPG -u 用戶名:密碼 ftp://www.linux.com/img/
這樣就向ftp服務器上傳了文件dodo1.JPG
11、顯示抓取錯誤

代碼如下:
# curl -f http://www.linux.com/error
其他參數(此處翻譯為轉載):
-a/--append                        上傳文件時,附加到目標文件
--anyauth                            可以使用“任何”身份驗證方法
--basic                                使用HTTP基本驗證
-B/--use-ascii                      使用ASCII文本傳輸
-d/--data <data>                  HTTP POST方式傳送數據
--data-ascii <data>            以ascii的方式post數據
--data-binary <data>          以二進制的方式post數據
--negotiate                          使用HTTP身份驗證
--digest                        使用數字身份驗證
--disable-eprt                  禁止使用EPRT或LPRT
--disable-epsv                  禁止使用EPSV
--egd-file <file>              為隨機數據(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                  建立本地目錄的目錄層次結構
--crlf                          上傳是把LF轉變成CRLF
--ftp-create-dirs              如果遠程目錄不存在,創建遠程目錄
--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 <name=content>        模擬http表單提交數據
-form-string <name=string>      模擬http表單提交數據
-g/--globoff                    禁用網址序列和范圍使用{}和[]
-G/--get                        以get的方式來發送數據
-h/--help                      幫助
-H/--header <line>              自定義頭信息傳遞給服務器
--ignore-content-length        忽略的HTTP頭信息的長度
-i/--include                    輸出時包括protocol頭信息
-I/--head                      只顯示文檔信息
-j/--junk-session-cookies      讀取文件時忽略session cookie
--interface <interface>        使用指定網絡接口/地址
--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>              設置最大讀取的目錄數
--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                  在代理上使用數字身份驗證
--proxy-ntlm                    在代理上使用ntlm身份驗證
-P/--ftp-port <address>        使用端口地址,而不是使用PASV
-Q/--quote <cmd>                文件傳輸前,發送命令到服務器
--range-file                    讀取(SSL)的隨機文件
-R/--remote-time                在本地生成文件時,保留遠程文件時間
--retry <num>                  傳輸出現問題時,重試的次數
--retry-delay <seconds>        傳輸出現問題時,設置重試間隔時間
--retry-max-time <seconds>      傳輸出現問題時,設置最大重試時間
-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


使用curl命令獲取文件下載速度 

使用curl可以下載網絡內容,那如何獲取curl下載時的下載速度呢,使用下面的命令即可:



代碼如下:
# curl -Lo /dev/null -skw "%{speed_download}\n" http://mirrors.163.com/ubuntu/ls-lR.gz
226493.000 
當然,還可以獲取連接時間、重定向時間等更多的數據:
 

代碼如下:
# curl -Lo /dev/null -skw "time_connect: %{time_connect} s\ntime_namelookup: %{time_namelookup} s\ntime_pretransfer: %{time_pretransfer} s\ntime_starttransfer: %{time_starttransfer} s\ntime_redirect: %{time_redirect} s\nspeed_download: %{speed_download} B/s\ntime_total: %{time_total} s\n\n" http://www.sina.com
time_connect: 0.154 s
time_namelookup: 0.150 s
time_pretransfer: 0.154 s
time_starttransfer: 0.163 s
time_redirect: 0.157 s
speed_download: 324679.000 B/s
time_total: 1.692 s

關鍵字:Linux、系統、curl、命令、服務器
分享到:

頂部 】 【 關閉
版權所有:佛山思海電腦網絡有限公司 ©1998-2024 All Rights Reserved.
聯系電話:(0757)22630313、22633833
中華人民共和國增值電信業務經營許可證: 粵B1.B2-20030321 備案號:粵B2-20030321-1
網站公安備案編號:44060602000007 交互式欄目專項備案編號:200303DD003  
察察 工商 網安 舉報有獎  警警  手機打開網站