linux命令之wget

wget是在Linux下開發的開放源代碼的軟件,作者是Hrvoje Niksic,後來被移植到包括Windows在內的各個平臺上。它有以下功能和特點:

(1)支持斷點下傳功能;這一點,也是網絡螞蟻和FlashGet當年最大的賣點,現在,Wget也可以使用此功能,那些網絡不是太好的用戶可以放心了;(2)同時支持FTP和HTTP下載方式;儘管現在大部分軟件可以使用HTTP方式下載,但是,有些時候,仍然需要使用FTP方式下載軟件;(3)支持代理服務器;對安全強度很高的系統而言,一般不會將自己的系統直接暴露在互聯網上,所以,支持代理是下載軟件必須有的功能;(4)設置方便簡單;可能,習慣圖形界面的用戶已經不是太習慣命令行了,但是,命令行在設置上其實有更多的優點,最少,鼠標可以少點很多次,也不要擔心是否錯點鼠標;(5)程序小,完全免費;程序小可以考慮不計,因為現在的硬盤實在太大了;完全免費就不得不考慮了,即使網絡上有很多所謂的免費軟件,但是,這些軟件的廣告卻不是我們喜歡的;

wget這個命令Linux系統一般都會有自帶,如果沒有的話直接安裝上就可以: yum -y install wget 即可。

wget的功能很強大,但是使用起來卻很簡單 wget [參數] url 即可。

  1. 下載單個文件,以ElasticSearch為例,wget url,不用加任何參數,這個是最簡單的,進度會自動顯示在命令行上:
<code>wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.1.0.tar.gz/<code>
  1. 指定文件名。 給下載到本地的文件指定一個文件名。用到參數 -O, O是大寫也可以是小寫的,大寫會顯示進度,小寫不顯示進度,例如:
<code>wget -O elasticsearch https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.1.0.tar.gz/<code>
  1. 如果想上下載的時候不顯示詳細信息,即後臺默默的下載,用參數 -b,下載的詳細信息會打印到wegt-log 中,如下:
<code>[root@VM_0_11_centos software]# wget -b  https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.1.0.tar.gz
Continuing in background, pid 21932.
Output will be written to ‘wget-log’/<code>

4: 可以設置下載的速度:-limit-rate=100k:

<code> wget -limit-rate=100k  https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.1.0.tar.gz/<code>
  1. 斷點續傳功能: 參數為-c
<code>wget -c  https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.1.0.tar.gz/<code>
  1. 測試連接是否可用 --spider
<code>[root@VM_0_11_centos software]# wget --spider https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.1.0.tar.gz
Spider mode enabled. Check if remote file exists.
--2020-03-31 09:26:47--  https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.1.0.tar.gz
Resolving artifacts.elastic.co (artifacts.elastic.co)... 151.101.230.222, 2a04:4e42:1a::734
Connecting to artifacts.elastic.co (artifacts.elastic.co)|151.101.230.222|:443... connected.

HTTP request sent, awaiting response... 200 OK
Length: 28535876 (27M) [binary/octet-stream]
Remote file exists./<code>
  1. 下載一個文件由於網絡原因什麼的可能會失敗,wget默認會重試20次,20次這個也可以自己改,使用參數 --tries=30 例如:wget --tries=30 https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.1.0.tar.gz
  2. wget可以一次下載多個文件:使用參數 -i file.txt. 意思是將多個url參數寫到一個文件,一個url一行,比如
<code>[root@VM_0_11_centos software]# cat download.txt 
 https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.1.0.tar.gz
 https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-5.2.2.tar.gz
 [root@VM_0_11_centos software]# wget -i download.txt /<code>
  1. 參數–mirror 是下載整個鏡像網站,意思就是把整個網站的所有相關文件都給下載下來:
<code>wget –mirror -p –convert-links -P ./LOCAL URL
–miror:開戶鏡像下載
-p:下載所有為了html頁面顯示正常的文件
–convert-links:下載後,轉換成本地的鏈接
-P ./LOCAL:保存所有文件和目錄到本地指定目錄/<code>
  1. 指定不下載某一個類文件,參數為--reject=xxx ,例如指定不下載圖片:
<code> wget --reject=png  --mirror -p --convert-links -P./baidu https://www.baidu.com/<code>
  1. 使用-Q 限制文件的大小,此參數只有在下載多個文件的時候才起作用。比如
<code> wget -Q5M -i download.txt /<code>
  1. 參數 -r -A 下載指定參數的文件:下載一個網站的所有圖片 下載一個網站的所有視頻 下載一個網站的所有PDF文件 wget -r -A.pdf url
  2. FTP下載:
<code>  匿名下載 wget -ftp URL
  指定名字下載: wget -ftp-user=xxx -ftp-password=-xxx URL /<code>

14、密碼和認證。

<code>wget只能處理利用用戶名/密碼方式限制訪問的網站,可以利用兩個參數: 
–http-user=USER設置HTTP用戶 
–http-passwd=PASS設置HTTP密碼 
對於需要證書做認證的網站,就只能利用其他下載工具了,例如curl。 /<code>
  1. 利用代理服務器下載:
<code>如果用戶的網絡需要經過代理服務器,那麼可以讓wget通過代理服務器進行文件的下載。此時需要在當前用戶的目錄下創建一個.wgetrc文件。文件中可以設置代理服務器:  

http-proxy = 111.111.111.111:8080 
ftp-proxy = 111.111.111.111:8080 
分別表示http的代理服務器和ftp的代理服務器。如果代理服務器需要密碼則使用: 
–proxy-user=USER設置代理用戶 
–proxy-passwd=PASS設置代理密碼 /<code>

參考:

https://www.cnblogs.com/semonxv/p/3816366.html

https://www.cnblogs.com/cindy-cindy/p/6847502.html


linux命令之wget


分享到:


相關文章: