Linux系统中有用的Wget命令示例详解

时人不识凌云木,直待凌云始道高。这篇文章主要讲述Linux系统中有用的Wget命令示例详解相关的知识,希望能为你提供帮助。
Wget命令是在Linux和类 Unix 操作系统中从Web服务器下载文件、包和目录的最常用和最方便的工具之一。通常,可以通过wget 工具下载任何大小文件;wget 不限制文件大小。
最初,Wget 命令被缩写为World Wide Web和Get的组合。这个方便的工具是在 GNU 项目下构建的。它可以访问FTP、HTTP、HTTPS和其他本地服务器以在 Linux 上下载文件。即使配置正确,wget命令也可以访问受防火墙保护的服务器。

Linux上的wget命令使用默认的 TCP 协议,wget 命令可以访问、下载和存储 Linux 文件系统上的文件。这个方便、轻量级但功能强大的工具是用 C 编程语言编写的,可以轻松地在服务器和主机之间进行通信以进行数据爬取。它支持下载速度限制、暂停、恢复、缓存、SSL 以及您可能在下载程序中寻找的更多功能。


在本文中,小编将简单介绍如何在 Linux发行版上安装 wget 命令,以及需要了解的用于提升Linux体验的最常用wget 命令的示例。


在Linux中安装wget命令
通常,所有主要的Linux发行版都预装了“wget”命令。但是,如果在执行wget 命令时发现问题,请在shell上运行以下软件包安装程序命令以在 Linux 上安装 wget 工具。请根据发行版在终端shell上执行正确的命令。


在 Ubuntu/Debian Linux 上安装 wget

$ sudo apt install wget

在 Fedora/Red Hat Linux上安装 wget
$ sudo dnf install wget
$ sudo yum install wget

在 SuSE Linux 上安装Wget 工具
$ zypper install wget

在 Arch Linux 上安装 wget
$ sudo pacman -S wget

一旦你在系统上安装了 wget 工具,现在可以通过下面给出的 wget 语法来了解 wget 命令在 Linux 上是如何工作的。
wget url
wget [options] URL

1. 使用 wget 下载单个文件
由于我们已经了解了 Wget 命令的安装和语法,现在可以直接跳转到 wget 命令以了解它的实际功能。以下命令将让您下载单个文件并将其存储在文件系统中。
$ wget https://cdn.kernel.org/pub/linux/kernel/v5.x/linux-5.15.5.tar.xz

2.下载具有不同名称和目录的文件
要在 Linux 系统中以不同于原来的名称保存文件或包,请在 shell 上执行以下 wget 命令。在这里,带有 file=file.tzx 的部分是你在下载过程中重命名文件的部分。
$ wget --output-document=file=file.tzx https://domain/foo-bar-xyz-long-file.tzx?key=xyz
$ wget -O /tmp/file.tzx \\
https://domain/foo-bar-xyz-long-file.tzx?key=xyz

3.设置目录前缀
由于使用“wget”命令来轻松下载,我们还可以通过在 Linux 系统上设置文件和包的前缀位置来减少下载后的工作。请参阅下面提到的命令以了解如何使用 wget 命令设置前缀目录。
wget -P /tmp/ url
wget -P /ubuntupit/ https://ur1/freebsd.iso
wget -P /ubuntupit/ https://ur2/opnbsd.iso

4. 向文件添加注释
如果需要在正在下载的文件中添加消息,请执行以下“wget”命令。
$ wget --output-file=log.txt https://url1/..
$ wget -o download.log.txt https://url2/..

现在可能会看到带有下面提到的cat命令的消息。
cat download.log
more download.log

wget 命令允许用户在从服务器下载文件时附加消息以供将来参考。虽然我们已经看到了一种发送消息的方法,但是如果前面的 wget 命令不适合你,下面提到的 wget 命令也会有所帮助。
wget -o /root/wget-log.txt https://mirror.aarnet.edu.au/pub/centos/7/isos/x86_64/md5sum.txt
# cat /root/wget-log.txt

5.下载多个文件
如果你正在寻找通过“wget”命令一次下载多个文件的命令,请遵循下面给出的命令模式。



$ wget http://www.ubuntupit.com/download/lsst.tar.gz ftp://ftp.freebsd.org/pub/sys.tar.gz ftp://ftp.redhat.com/pub/xyz- 1rc-i386.rpm

6. 从文件中读取 URL
从文件中读取文件是指找出文件中的实际内容。请将 URL 放入文本文件中,然后按照 Vim 命令和“wget取”命令来读取文件。
$ vi /tmp/download.txt
$ wget -i /tmp/download.txt

7. 继续下载
意外断开下载或网络故障;一切都需要恢复下载。可以使用以下wget命令恢复下载。
$ wget -c http://www.51cto.com/download/lsst.tar.gz#替换相应的网址
$ wget -c -i /tmp/download.txt

8.强制wget下载
如果在连接服务器或 Web URL 时遇到问题,请运行 force 命令以通过 wget 命令连接站点。wget 和??nohup??命令都可以强制连接 Web URL。
$ wget -cb -o /tmp/download.log -i /tmp/download.txt
$ nohup wget -c -o /tmp/download.log -i /tmp/download.txt &

9.限制下载速度
对于通过“wget”命令在有限的 Internet 连接上下载多个文件或包,可能需要限制下载速度。请执行下面给出的以下命令来限制下载速度。
$ wget -c -o /tmp/susedvd.log --limit-rate=50k ftp://ftp.novell.com/pub/suse/dvd1.iso

10. 从受密码保护的网站获取文件
我们已经了解了如何在 wget 命令中使用用户凭据,该命令还描述了如何直接在 Web 上获取受密码保护的文件。下面提到的两种方法对于从受密码保护的站点下载文件的快速方法都很有用且方便。
$ wget --http-user=vivek --http-password=Secrete http://ubuntupit.com/jahid/csits.tar.gz

使用设置密码的站点下载文件的另一种方法是在命令中包含凭据。
$ wget http://username:password@xyz.abc_server/file.tar.gz
$ ps aux

11. 下载 Mp3 和 Pdf
如果打算下载特定类型的文件,例如 mp3 或 pdf 文档,可以执行下面给出的以下命令。此处显示的命令适用于FTP,但它也适用于所有其他公共域。
$ wget ftp://somedom-url/pub/downloads/*.pdf
$ wget ftp://somedom-url/pub/downloads/*.pdf

12. 通过 Wget 命令获取文件到标准输出
下面的“wget”命令将让终端 shell 中查看标准输出格式,例如文件路径、文件类型、所需时间、带宽消耗等。
$ wget -q -O - https://url1/file.tar.xz | tar -Jxzf - -C /tmp/data/

13. 使用 wget 命令创建站点的镜像
要制作网站的复制镜像,可以使用以下“wget”命令。??-m???和语法都??--mirror??将执行相同的任务,可以选择以下任何命令来镜像站点。
$ wget -m https://url/
$ wget --mirror https://url/

14. 查找 HTTPS (TLS) 错误
如果是从事 SSL认证工作的专业 Web 开发人员,此“wget”命令将对您生成包含错误和报告的 TLS 报告非常有帮助。
$ wget --no-check-certificate \\
robots.txt

15. 在 Wget 命令上启用时间戳
要在下载输出上打印时间戳,可以在终端 shell 上运行以下“wget”命令。此命令将在您加载文件时让您知道服务器时间。
wget --no-use-server-timestamps https://mirror.aarnet.edu.au/pub/centos/7/isos/x86_64/CentOS-7-x86_64-NetInstall-1511.iso

16.更改进度条
如果对 Linux 在下载文件或包时在 shell 中显示的传统下载状态栏不满意,可以使用以下 wget 命令更改进度条。
wget --progress=dot https://mirror.aarnet.edu.au/pub/centos/7/isos/x86_64/CentOS-7-x86_64-NetInstall-1511.iso

17. 在 Wget 命令中启用部分下载
要从 Web 服务器执行部分下载,可以运行以下 wget 命令。完成部分下载后,可以更改目标并继续下载。
# wget -c https://mirror.aarnet.edu.au/pub/centos/7/isos/x86_64/CentOS-7-x86_64-NetInstall-1511.iso

18. Wget命令重试下载失败
以下命令显示了如何通过 wget 命令在 Linux shell 上强制重试失败的下载。通常,网络故障、服务器超时和其他基于网络的错误可以通过该命令进行恢复。
# wget -t 10 https://mirror.aarnet.edu.au/pub/centos/7/isos/x86_64/CentOS-7-x86_64-NetInstall-1511.iso

19. 从 URL 文件列表下载
如果需要通过wget命令用一个命令下载一堆文件,你可以在一个文本文件中写下网址;然后使用带有 wget 命令的文本文件从列表中下载。这样可以节省下载多个文件的有效时间和麻烦。
# cat to-download.txt
# wget -i to-download.txt

20. 下载失败后延时
由于已经讨论过如何通过 wget 命令设置强制下载和重试下载,所以可以设置命令在服务器上执行下一次命中之前的时间间隔。以下命令显示了如何在下载失败后设置 10 秒的时间间隔。
# time wget -w 10 -i to-download.txt

21.非交互式下载
在 Linux shell 中,可以将 wget 命令设置为守护程序样式,以在系统后台运行该命令。请执行以下命令以了解如何以非交互方式执行 wget 命令。
wget -b https://mirror.aarnet.edu.au/pub/centos/7/isos/x86_64/CentOS-7-x86_64-NetInstall-1511.iso

22. 在 Wget 命令中隐藏输出
要通过“wget”命令下载文件或包而不在终端 shell 中显示输出,可以使用以下命令。该命令将让您输入下载命令,然后它将静默完成下载并在下载结束时通知您。
wget -q https://mirror.aarnet.edu.au/pub/centos/7/isos/x86_64/md5sum.txt

23. Wget 命令中的调试信息
这个方便的“wget”命令将对开发人员有所帮助,通过此命令可以找到文件的调试信息。以下命令还将向您发送您可能需要的必需品。
# wget -d https://mirror.aarnet.edu.au/pub/centos/7/isos/x86_64/md5sum.txt
# wget -nv https://mirror.aarnet.edu.au/pub/centos/7/isos/x86_64/md5sum.txt

24.查看服务器响应
如果你是服务器管理员,此命令将对你非常有帮助。您现在可以使用简单的“wget”命令来检查站点或服务器的响应时间。这实际上与 Ping 命令不一样;这里我们得到的是服务器的实际响应时间,而不是客户端通过互联网到达服务器所需的时间。
wget -S https://www.51cto.com/

25.在wget命令中设置超时
访问网站或下载文件时遇到超时问题并不是一个罕见的问题。在 Linux 中,如果 wget 命令遇到超时问题,它通常会继续尝试连接到 URL。为避免有争议的点击 URL,可以执行以下 wget 命令,以在一定尝试后自动取消下载。
# wget -T 30 https://mirror.aarnet.edu.au/pub/centos/7/isos/x86_64/md5sum.txt

26. 使用凭证
如果下载 URL 受用户名和密码保护,请运行以下命令以提供用户凭据以通过 wget 命令进行下载。
# wget --user=username --ask-password http://localhost/file.txt

27.下载非缓存文件
我们都知道在本地机器上抓取缓存文件有多大帮助。但是,以下 wget 命令将帮助你从 Web 下载非缓存文件。
# wget -d https://mirror.aarnet.edu.au/pub/centos/7/isos/x86_64/md5sum.txt
# wget -d --no-cache https://mirror.aarnet.edu.au/pub/centos/7/isos/x86_64/md5sum.txt

28. 下载完整的网站
由于 wget 命令是一个强大的命令,它还允许您下载整个网站并将其存储在本地目录中。运行以下命令以下载完整站点。
$ wget --mirror -p --convert-links -P ./LOCAL-DIR WEBSITE-URL

29. 使用 Wget 命令放弃特定文件类型
在通过 wget 命令下载文件时,出于安全考虑,您可能需要跳过或避免某种类型的文件。以下命令显示了如何在通过 wget 命令下载时拒绝 GIF 文件。
$ wget --reject=gif WEBSITE-TO-BE-DOWNLOADED
$ wget -o download.log DOWNLOAD-URL

30.特定大小后停止下载
有时,我们需要下载具有一定文件大小限制的文件。要设置文件大小限制,wget 有一个专用语法,可以在下面看到。例如,下面提供的 wget 命令将在文件大小达到 5MB 后停止下载。
$ wget -Q5m -i FILE-WHICH-HAS-URLS

31. 只下载特定的文件类型
要在服务器或网站上的一堆文件中下载某种类型的文件,可以执行下面给出的以下 wget 命令。例如,下面的命令将只下载我们通过命令分配的 pdf 文件。
$ wget -r -A.pdf http://url-to-webpage-with-pdfs/

32. 使用 Wget 命令进行 FTP 下载
不仅通过 HTTPS、HTTP 或公共服务器,“wget”命令还允许你从局域网中托管的本地 FTP 服务器获取文件。
$ wget ftp-url

如果设置了登录 FTP 服务器的用户名和密码,请按照以下提供的命令进行操作。
$ wget --ftp-user=USERNAME --ftp-password=PASSWORD DOWNLOAD-URL

33.增加Wget命令的重试次数
如果下载由于网络问题或服务器故障,或与服务器通信延迟过大而失败,您可以通过下面给出的 wget 命令增加延迟时间并增加重试次数。
$ wget --tries=75 https://download.opensuse.org/distribution/leap/15.3/iso/openSUSE-Leap-15.3-DVD-x86_64-Current.iso

34.通过Wget命令下载并解压tar文件
有时,我们可能需要下载压缩文件并将文件解压缩到目录中。为了轻松完成该任务,可以在 Linux 系统上使用以下命令。
# wget -q -O - http://wordpress.org/latest.tar.gz | tar -xzf - --strip-components=1 -C /var/www/html

35. 帮助和手册
上述所有“wget”命令并不是你永远需要的唯一命令。你可以更多地学习这个命令。如果你热衷于 wget 命令,请浏览 wget 手册和帮助页面。

$ man wget
$ wget --help

结束在Linux上通过“wget”命令下载真的很有用。但是,它不是传统的 Linux下载器。该命令通常用于通过 Linux 上的终端 shell 下载压缩包文件、工具和其他与软件相关的文件。


当然,整篇文章都是一系列 wget 命令,它们可能会帮助你成为 Linux 高级用户。
【Linux系统中有用的Wget命令示例详解】


    推荐阅读