Linux wget 命令舉例說明

Linux wget 命令行工具是一個漂亮的實用程序,用於通過 Internet 下載文件。 它通常用於從網站下載 tarball 和壓縮文件、deb 和 rpm 包。

使用 wget 命令,您可以通過 HTTP、HTTPS 甚至 FTP 協議下載文件。 您可以與 wget 命令一起使用的許多選項使其功能強大。

在本教程中,我們將通過示例了解如何使用 GNU wget 命令。

wget 的語法

使用 wget 的語法非常簡單。 只需調用 wget 命令,然後是選項,然後是網站鏈接,如圖所示。

$ wget [ options ] url

安裝 wget

大多數現代 Linux 發行版都附帶 wget 實用程序,因此您不需要安裝它。 但是,在某些情況下可能需要安裝,尤其是在較舊的系統和某些雲實例中,或者要解決“-bash:wget:Command not found’ 錯誤消息。

對於 Ubuntu 和 Debian 風格,使用 APT 包管理器運行以下命令:

$ sudo apt-get install wget

要在 RHEL / CentOS 8 版本中安裝 wget 命令,請執行:

$ sudo dnf install wget

對於舊版本,(RHEL 7 和 CentOS 7 及更早版本)使用 yum 包管理器,如下所示

$ sudo yum install wget

對於 Arch Linux 和 Arch Linux 發行版,例如 Manjaro、Arch Linux 和 Endeavor OS,請使用 pacman 包管理器,如下所示:

$ sudo pacman -S wget

從 Internet 下載文件

在最基本的形式中,wget 命令不使用任何選項,從 URL 中指定的 Internet 下載文件。 最簡單的語法如下所示:

$ wget website_url

為了 example, 在裡面 example 下面,我們正在從官方 WordPress 站點下載最新的 WordPress tarball。

$ wget https://wordpress.org/latest.tar.gz

從輸出中我們可以看到,wget 首先將網站的域名解析為 IP 地址,然後連接到服務器,然後啟動文件傳輸。 下載過程中,您會看到進度條,顯示文件名、大小、下載速度以及預計下載完成時間。

下載完成後,請務必在您當前的工作目錄中找到該文件。 這可以通過調用 ls 命令來驗證。

下載文件並以特定名稱保存

如果您希望以不同於原始名稱的名稱保存文件,只需通過 -O 選項後跟您的首選名稱。

$ wget -O wordpress.tar.gz https://wordpress.org/latest.tar.gz

上述命令從 WordPress 站點下載原始文件“latest.tar.gz”並將其保存為“wordpress.tar.gz”。

下載到指定目錄

如前所述,wget 將文件下載到您當前的工作目錄。 您可以使用 -P 標誌後跟目標目錄的路徑。

$ wget -P /var/www/html https://wordpress.org/latest.tar.gz

在裡面 example 以上,文件保存在/var/www/html目錄下。

限制下載速度

使用 wget,您還可以限制下載文件的速度。 要限制下載速度,請調用 --limit-rate 選項後跟下載速度。 速度通常以每秒字節數來衡量。

要將限制速率設置為 500KB/s,請運行以下命令:

$ wget –limit-rate=500k https://wordpress.org/latest.tar.gz

如何繼續獲取部分下載的文件

有時在文件下載過程中,您的連接可能會突然中斷,留下部分下載的文件。 不要重新開始下載,而是使用 wget -C 選擇繼續下載,如圖所示。

$ wget -c https://wordpress.org/latest.tar.gz

在上面 example,我們正在恢復從 WordPress 下載 tarball 文件的文件。 請注意,如果網站沒有響應恢復文件下載,則該命令將重新啟動文件下載並覆蓋現有文件。

在後台下載文件

要在後台下載文件,請通過 wget -b 選項如下圖。

$ wget -b https://osdn.net/projects/manjaro/storage/kde/20.0.3/manjaro-kde-20.0.3-200606-linux56.iso

在裡面 example 上面,我們在後台下載 Manjaro KDE Plasma ISO 文件。 要監控下載狀態,請使用 wget log 命令,如下所示

$ tail –f wget –log

下載多個文件

如果你有多個文件要下載,在終端上重複運行 wget 命令很麻煩。 更好的方法是運行 wget 命令一次以一個接一個地下載文件。

為此,請將網站 URL 保存在文本文件中。 此後,使用 wget 命令調用 -i 選項後跟文本文件的名稱。

在這 example,我們要下載 WordPress tarball 文件和 OwnCloud 壓縮文件。 首先,我們將下載鏈接保存到一個示例文件中,我們稱之為“downloads.txt”:

https://wordpress.org/latest.tar.gz
https://download.owncloud.org/community/owncloud-complete-20200731.zip

現在,要下載多個文件,請運行:

$ wget -i downloads.txt

這些將一個接一個地下載。 這就是您下載多個文件的方式。

下載一個網站的鏡像

wget 的另一個不為人知的用途是克隆或製作網站的鏡像副本的能力。 您可以通過傳遞 -m 選項如圖所示。 這會創建網站的鏡像副本以及所有內部鏈接和其他資源,例如圖像、小部件、Javascript 和 CSS 文件。

$ wget -m https://www.example.com

如果您打算克隆一個網站以進行本地瀏覽,請傳遞額外的參數,如圖所示。

$ wget -m -k -p https://www.example.com

-k 標誌有助於將鏈接轉換為適合本地查看的格式。 與此同時, -p 選項指示 wget 實用程序下載在瀏覽器的 HTML 頁面上顯示內容所需的相關文件。

忽略 SSL 證書

為避免在通過 HTTPS 從 SSL 證書不受信任或無效的 Web 服務器下載文件時遇到錯誤,請傳遞 --no-check-certificate 選項:

$ wget --no-check-certificate https://domain-with-untrusted-ssl-cert

下載並將輸出重定向到日誌文件

wget 命令的輸出可以在文件下載期間使用 -o 選項如圖:

$ wget -o download.log https://wordpress.org/latest.tar.gz

此後,您可以在下載過程中使用 tail 命令實時查看日誌文件,如下所示:

$ tail -f download.log

限制下載重試

有時,您可能會遇到緩慢的帶寬速度,這可能會阻止您下載文件。 您可以使用 wget 設置下載重試次數 --tries=[no. of tries] 選項如圖:

$ wget --tries=10 https://wordpress.org/latest.tar.gz

在裡面 example 上面,get 將在退出前重試 tarball 文件的下載 10 次。

從 FTP 服務器下載

您還可以從 FTP 服務器下載文件,即使文件受密碼保護。 您需要做的就是在 wget 命令中傳遞 ftp 用戶名和密碼,如下所示:

$ wget --ftp-user=[ftp_user] --ftp-password=[ftp_password] ftp://ftp.ftp-site.com

更改 wget 用戶代理

用戶代理本質上是一個由瀏覽器發送到 Web 服務器的標頭字段。 如果您正在下載網頁,wget 將模擬 Web 瀏覽器。 有時,您會收到一條錯誤消息,表明您沒有足夠的權限訪問服務器。 發生這種情況時,很可能是網站或 Web 服務器阻止了與特定“用戶代理”關聯的瀏覽器。 這是您可以找到的用戶代理數據庫。

要更改用戶代理,請使用以下語法:

$ wget -U "user agent" URL

為了 example, 下載網站 example.com 模擬 Google Chrome 版本 74 – 這是最新版本,請使用:

$ wget -U "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.169 Safari/537.36" "https://example.com"

遞歸下載

要下載網站進行本地查看,您需要打開遞歸下載 -r 或者 --recursive 選項和鏈接轉換為本地鏈接 -k 或者 --convert-links 選項。

為了 example:

$ wget -rk https://example.com

結論

正如您所觀察到的,wget 是一個功能強大且靈活的工具,您可以使用它從 Internet 獲取文件。 在本教程中,我向您展示了使用 wget 的各種方法,以及如何通過 http、https 和 ftp 從 Web 服務器下載文件和網頁。 有關 wget 命令用法的更多信息,請訪問 手冊頁.