如何在 Linux 中使用 Wget 命令
-
檢查 Linux 是否安裝了
wget
-
wget
命令的語法 -
用
wget
下載檔案 -
使用自定義檔名儲存使用
wget
下載的檔案 -
使用
wget
將下載的檔案儲存到特定的目錄下 -
使用
wget
指定下載速度 -
使用
wget
恢復下載 -
在後臺使用
wget
下載檔案 -
改變
wget
的使用者代理 -
使用
wget
同時下載多個檔案 -
使用
wget
命令通過 FTP 下載檔案 -
使用
wget
建立網站的副本 - 使用 Wget 時跳過證書檢查
我們可以在 Linux 中使用 wget
命令通過 HTTP、HTTPS 和 FTP 協議從網際網路上下載檔案,並提供多種選項,如一次下載多個檔案、在後臺下載、限制頻寬等。
檢查 Linux 是否安裝了 wget
我們只要在終端上輸入 wget
命令,就可以檢查系統中是否安裝了 wget
。
如果 wget
安裝在我們的系統中,我們得到的輸出是:
wget: missing URL
Usage: wget [OPTION]... [URL]...
Try 'wget --help' for more options.
如果 wget
沒有安裝在我們的系統中,我們得到的輸出為:
Command 'wget' not found, but can be installed with:
sudo snap install wget
如果系統中沒有安裝 wget
,我們可以使用下面的命令進行安裝。
在 Ubuntu 和 Debian 中安裝 wget
sudo apt install wget
在 CentOS 和 Fedora 中安裝 wget
sudo yum install wget
wget
命令的語法
wget [options] [url]
options
是各種可用於定製下載過程的選項,url
是指需要下載或同步檔案的 URL
。
用 wget
下載檔案
要使用 wget
命令下載檔案,我們只需在 wget
後面指定檔案倉庫的 URL 即可。
wget https://bloximages.newyork1.vip.townnews.com/redandblack.com/content/tncms/assets/v3/editorial/4/59/45940eb2-5403-11e9-a843-db0e4491cc90/5ca13d8453042.image.jpg
輸出:
--2020-09-28 19:29:15-- https://bloximages.newyork1.vip.townnews.com/redandblack.com/content/tncms/assets/v3/editorial/4/59/45940eb2-5403-11e9-a843-db0e4491cc90/5ca13d8453042.image.jpg
Resolving bloximages.newyork1.vip.townnews.com (bloximages.newyork1.vip.townnews.com)... 104.18.130.43, 104.18.131.43
Connecting to bloximages.newyork1.vip.townnews.com (bloximages.newyork1.vip.townnews.com)|104.18.130.43|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 33241 (32K) [image/jpeg]
Saving to: '5ca13d8453042.image.jpg'
5ca13d8453042.image 100%[===================>] 32.46K --.-KB/s in 0.003s
2020-09-28 19:29:15 (11.1 MB/s) - '5ca13d8453042.image.jpg' saved [33241/33241]
它在給定的 URL 下載影象檔案,然後將下載的檔案儲存在我們當前的工作目錄中。
該命令首先解析 URL 的 IP 地址,然後開始下載。我們也可以在終端中看到下載進度條。
如果我們不想在終端中看到任何輸出,可以在 wget
命令中使用 -q
選項。
使用自定義檔名儲存使用 wget
下載的檔案
預設情況下,下載的檔名稱與網路上的相同。如果我們想用不同的檔名儲存檔案,我們可以在 -O
標誌後指定檔名。
wget -O linux.jpg https://bloximages.newyork1.vip.townnews.com/redandblack.com/content/tncms/assets/v3/editorial/4/59/45940eb2-5403-11e9-a843-db0e4491cc90/5ca13d8453042.image.jpg
它將下載的檔案儲存在我們當前的工作目錄中,檔名為 linux.jpg
。
使用 wget
將下載的檔案儲存到特定的目錄下
預設情況下,所有下載的檔案都會儲存在當前的工作目錄中。要將下載的檔案儲存在特定的目錄中,我們使用 -P
選項,並在後面加上需要儲存下載檔案的目錄位置。
wget -P Downloads/Linux_Images https://bloximages.newyork1.vip.townnews.com/redandblack.com/content/tncms/assets/v3/editorial/4/59/45940eb2-5403-11e9-a843-db0e4491cc90/5ca13d8453042.image.jpg
它將下載的圖片儲存在下載目錄下的 Linux_Images
目錄中。
使用 wget
指定下載速度
如果我們不想使用所有可用的頻寬來使用 wget
下載檔案,則可以使用 --limit-rate
選項來限制檔案的下載速度。
wget -P --limit-rate=5m https://bloximages.newyork1.vip.townnews.com/redandblack.com/content/tncms/assets/v3/editorial/4/59/45940eb2-5403-11e9-a843-db0e4491cc90/5ca13d8453042.image.jpg
它將下載速度限制為 5mb。
使用 wget
恢復下載
如果我們的網路連線在下載一個大檔案的過程中突然中斷,重新開始下載檔案將是一項繁瑣的工作。在這種情況下,我們可以使用 -c
選項恢復下載。
wget -c https://bloximages.newyork1.vip.townnews.com/redandblack.com/content/tncms/assets/v3/editorial/4/59/45940eb2-5403-11e9-a843-db0e4491cc90/5ca13d8453042.image.jpg
在某些情況下,伺服器可能不支援恢復下載,在這種情況下,下載將從頭開始。
在後臺使用 wget
下載檔案
要在後臺使用 wget
下載檔案,我們在命令中新增 -b
選項。
wget -b https://releases.ubuntu.com/20.04/ubuntu-20.04.1-desktop-amd64.iso
它將在後臺下載 Ubuntu 20.04 映象檔案。
要檢視檔案的下載狀態,我們使用以下命令。
tail -f wget-log
改變 wget
的使用者代理
在某些情況下,伺服器可能會阻止 wget 使用者代理。在這種情況下,我們可以使用 -U
選項來模擬不同的瀏覽器。
get --user-agent="Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Firefox/68.0" <url>
在這種情況下,Mozilla 68 將從 <url>
中請求檔案。
使用 wget
同時下載多個檔案
要使用 wget
下載多個檔案,我們製作一個 .txt
,在單獨的一行上列出要下載的每個檔案的 URL。然後我們使用 wget
命令,在 -i
選項後面加上包含 URLs 的檔案路徑。
wget -i files.txt
這將從 files.txt
檔案中指定的 URL 下載所有檔案。
使用 wget
命令通過 FTP 下載檔案
要使用 wget 命令通過 FTP 下載檔案,我們使用 --ftp-user
選項指定使用者名稱,使用 --ftp-password
選項指定密碼。
wget --ftp-user=username --ftp-password=password <url>
它使用 FTP
協議從指定的 URL 下載檔案。
使用 wget
建立網站的副本
要使用 wget
建立一個網站的副本,我們使用 -m
選項,後面跟著要複製的 URL。
wget -m https://abc.com
這將通過下載網站所需的所有內部連結和靜態檔案來建立一個 abc.com 的副本。
如果我們想執行下載的網站,我們還需要新增 -k
和 -p
選項。
wget -m -k -p https://abc.com
使用 Wget 時跳過證書檢查
有時,我們需要從主機上下載一個檔案,但沒有有效的 SSL 證書,使用 HTTPS 協議。在這種情況下,我們使用 --no-check-certificate
選項來跳過證書檢查。
wget --no-check-certificate <url>
Suraj Joshi is a backend software engineer at Matrice.ai.
LinkedIn