Linux 下的 wget 命令用于通過(guò) HTTP、HTTPS 和 FTP 協(xié)議從 web 上下載文件。換句話(huà)說(shuō),我們可以說(shuō) wget 是 Linux 系統的非交互式命令行下載工具。它還支持通過(guò) HTTP 代理下載文件。
這里的非交互式意味著(zhù)它可以在后臺工作,而用戶(hù)沒(méi)有登錄。當我們進(jìn)行 Linux 發(fā)行版的最小安裝時(shí),并沒(méi)有安裝 wget 命令,運行如下命令安裝:
$ sudo yum install -y wget // CentOS 7 / RHEL 7$ sudo dnf install -y wget // CentOS 8/ RHEL 8/ Rocky Linux 8$ sudo apt install -y wget // Ubuntu / Debian$ sudo pacman -S wget // Arch Linux$ sudo zypper install wget // OpenSUSE在本教程中,我們將介紹 12 個(gè)有用的 wget 命令示例,這些示例將幫助您像專(zhuān)業(yè)人員一樣使用 wget 命令。
要下載文件,只需鍵入 wget 命令后跟文件的絕對路徑,示例如下
$ wget https://download.rockylinux.org/pub/rocky/8/isos/x86_64/Rocky-8.4-x86_64-minimal.iso備注: 該命令將在用戶(hù)當前工作目錄下載 Rocky Linux 8 ISO 文件
在某些情況下,我們下載一個(gè)大文件,但在中間網(wǎng)絡(luò )被斷開(kāi)連接,使用 wget 命令中的 -c 選項,我們可以從斷開(kāi)連接的地方繼續下載。示例如下
$ wget -c https://download.rockylinux.org/pub/rocky/8/isos/x86_64/Rocky-8.4-x86_64-minimal.iso使用 wget 命令中的 -b 選項在后臺下載文件。當文件太大而你想使用終端執行其他任務(wù)時(shí),這個(gè)選項非常有用。
$ wget -b https://download.rockylinux.org/pub/rocky/8/isos/x86_64/Rocky-8.4-x86_64-dvd1.isoContinuing in background, pid 4505.Output will be written to 'wget-log’.下載進(jìn)度被記錄在當前目錄的 wget-log 文件中,使用 tail 命令查看下載狀態(tài)。
$ tail -f wget-log2300K .......... .......... .......... .......... .......... 0% 48.1K 18h5m2350K .......... .......... .......... .......... .......... 0% 53.7K 18h9m2400K .......... .......... .......... .......... .......... 0% 52.1K 18h13m2450K .......... .......... .......... .......... .......... 0% 58.3K 18h14m2500K .......... .......... .......... .......... .......... 0% 63.6K 18h14m2550K .......... .......... .......... .......... .......... 0% 63.4K 18h13m2600K .......... .......... .......... .......... .......... 0% 72.8K 18h10m2650K .......... .......... .......... .......... .......... 0% 59.8K 18h11m2700K .......... .......... .......... .......... .......... 0% 52.8K 18h14m2750K .......... .......... .......... .......... .......... 0% 58.4K 18h15m2800K .......... .......... .......... .......... .......... 0% 58.2K 18h16m2850K .......... .......... .......... .......... .......... 0% 52.2K 18h20m默認情況下,wget 命令嘗試使用全帶寬,但某些情況下,您正在使用共享互聯(lián)網(wǎng),所以如果您嘗試使用 wget 下載大文件,這可能會(huì )減慢其他用戶(hù)的網(wǎng)絡(luò )連接。如果您使用 --limit-rate 選項限制下載速度,則可以避免這種情況。
$ wget --limit-rate=100k https://download.rockylinux.org/pub/rocky/8/isos/x86_64/Rocky-8.4-x86_64-dvd1.iso如果您想使用 wget 命令下載多個(gè)文件,那么首先創(chuàng )建一個(gè)文本文件,并在該文本文件中添加所有下載地址,示例如下
$ cat download-list.txthttps://download.rockylinux.org/pub/rocky/8/isos/x86_64/Rocky-8.4-x86_64-dvd1.isohttps://releases.ubuntu.com/20.04.2.0/ubuntu-20.04.2.0-desktop-amd64.isohttps://download.opensuse.org/distribution/leap/15.3/iso/openSUSE-Leap-15.3-DVD-x86_64-Current.iso運行如下命令,wget 命令將開(kāi)始按順序下載 ISO 文件
$ wget -i download-list.txt默認情況下,wget 命令會(huì )重試 20 次,可以使用 --tries 選項來(lái)增加重試次數。
$ wget --tries=75 https://download.opensuse.org/distribution/leap/15.3/iso/openSUSE-Leap-15.3-DVD-x86_64-Current.iso我們可以使用 -o 選項將 wget 命令輸出重定向到日志文件,示例如下
$ wget -o download.log https://releases.ubuntu.com/20.04.2.0/ubuntu-20.04.2.0-desktop-amd64.iso使用 wget 命令,我們可以下載完整的網(wǎng)站以供本地查看,語(yǔ)法如下
$ wget --mirror -p --convert-links -P ./<Local-Folder> website-URL選項如下
當下載整站時(shí),我們可以使用 --reject 選項強制不下載圖片。
$ wget --reject=png <Website-To-Be-Downloaded>使用 -Q 選項設置下載配額,當下載大小超標時(shí),強制 wget 命令停止下載。
$ wget -Q10m -i download-list.txt注意:配額永遠不會(huì )影響下載單個(gè)文件,即使在命令行上指定了幾個(gè) URL,也是如此。僅在遞歸檢索或從輸入文件中檢索配額才能起作用,因此 wget -Q10m -i download-list.txt 在超過(guò)配額時(shí)下載將被中止。
語(yǔ)法如下
$ wget --ftp-user=<user-name> --ftp-password=<password> Download-URLor $ wget --user <user_name> --password <password> http://<url-path>/file_to_be_downloaded也可以在 URL 中指定用戶(hù)名和密碼
為了防止密碼被看到,將它們存儲在 .wgetrc 或 .netrc 文件中,并確保用 chmod 保護這些文件不受其他用戶(hù)的影響。如果密碼真的很重要,不要把它們放在這些文件中,或者在 wget 開(kāi)始下載后編輯文件并刪除它們。
在某些情況下,我們希望從 https 端口下載文件,并希望跳過(guò)證書(shū)檢查,因此可以使用 wget 命令中的 no-check-certificate 選項來(lái)完成
$ wget https://about.gitlab.com/ --no-check-certificate使用 wget 命令從 https 門(mén)戶(hù)下載 Oracle Java,跳過(guò)證書(shū)檢查
$ wget --header 'Cookie: oraclelicense=accept-securebackup-cookie' https://download.oracle.com/otn-pub/java/jdk/12.0.1+12/69cfe15208a647278a19ef0990eea691/jdk-12.0.1_linux-x64_bin.rpm --no-check-certificate有一些情況下,我們的系統運行在代理服務(wù)器之后,所以在這種情況下,我們首先需要設置代理,然后我們可以使用 wget 命令從互聯(lián)網(wǎng)下載文件。要在命令行上設置代理,請使用以下變量和 export 命令
$ export http_proxy=http://<Your-Proxy-IP>:<Proxy-Port>$ export https_proxy=http://<Your-Proxy-IP>:<Proxy-Port>$ export ftp_proxy=http://<Your-Proxy-IP>:<Proxy-Port>如果代理工作需要用戶(hù)名和密碼,則使用以下方法
$ export http_proxy=http://<user-name>:<password>@<Your-Proxy-IP>:<Proxy-Port>$ export https_proxy=http://<user-name>:<password>@<Your-Proxy-IP>:<Proxy-Port>$ export ftp_proxy=http://<user-name>:<password>@<Your-Proxy-IP>:<Proxy-Port>假設我們要下載最新版本的 WordPress tar 文件并希望在特定文件夾中提取它,例如 /var/www/html,可以使用以下命令來(lái)完成此任務(wù)
# wget -q -O - http://wordpress.org/latest.tar.gz | tar -xzf - --strip-components=1 -C /var/www/html聯(lián)系客服