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

Wget 命令是在 Linux 和类 Unix 操作系统中从 Web 服务器下载文件、包和目录的最常用和最方便的工具之一。 通常,您可以通过 wget 工具下载任何大小文件; wget 不限制文件大小。 最初,Wget 命令被缩写为 World Wide Web 和 Get 的组合。 这个方便的工具是在 GNU 项目下构建的。

它可以访问 FTP、HTTP、HTTPS 和其他本地服务器以在 Linux 上下载文件。 即使配置正确,wget 命令也可以访问受防火墙保护的服务器。 由于我们将讨论 wget,因此为了实现多样性,我们将经常使用术语“万维网和 Get”而不是 wget。

Linux 上的 Wget 命令

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

在这篇文章中,我们将了解如何在 Linux 发行版上安装 wget 命令,以及您需要了解的用于提升 Linux 体验的最常用 wget 命令的示例。

在 Linux 中安装 wget 命令

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

在 Ubuntu/Debian Linux 上安装 wget

$ sudo apt install wget

获取“万维网并获取” Fedora/红帽 Linux

$ sudo dnf install wget
$ sudo yum install wget

在 SuSE Linux 上安装 Wget 工具

$ zypper install wget

在 Arch Linux 上获取“万维网和获取”工具

$ 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.设置目录前缀

由于我们使用“万维网和获取”命令来轻松下载,我们还可以通过在 Linux 系统上设置文件和包的前缀位置来减少下载后的工作。 请参阅下面提到的命令以了解如何使用 wget 命令设置前缀目录。

wget -P /tmp/ url
wget -P /ubuntupit/ https://ur1/freebsd.iso
wget -P /ubuntupit/ https://ur2/opnbsd.iso

4. 向文件添加注释

如果您需要在正在下载的文件中添加消息,请执行以下“万维网和获取”命令。

$ 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 https://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 命令和“万维网和获取”命令来读取文件。

$ vi /tmp/download.txt
$ wget -i /tmp/download.txt

7. 继续下载

意外断开下载或网络故障; 一切都需要恢复下载。 您可以使用以下 wget 命令恢复下载。

$ wget -c https://www.ubuntupit.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.限制下载速度

对于通过“万维网和获取”命令在有限的 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 https://ubuntupit.com/jahid/csits.tar.gz

使用设置密码的站点下载文件的另一种方法是在命令中包含凭据。

$ wget 'https://username:[email protected]_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 命令获取文件到标准输出

下面的“万维网和获取”命令将让您在终端 shell 中查看标准输出格式,例如文件路径、文件类型、所需时间、带宽消耗等。

$ wget -q -O - 'https://url1/file.tar.xz' | tar -Jxzf - -C /tmp/data/

13. 使用 wget 命令创建站点的镜像

要制作网站的复制镜像,您可以使用以下“万维网和获取”命令。 两者 -m--mirror 语法将执行相同的任务,您可以选择以下任何命令来镜像站点。

镜像 ubuntupit

$ wget -m https://url/
$ wget --mirror https://url/

14. 查找 HTTPS (TLS) 错误

如果您是从事 SSL 认证工作的专业 Web 开发人员,此“万维网和获取”命令将对您生成包含错误和报告的 TLS 报告非常有帮助。

$ wget --no-check-certificate 
https://www.ubuntupit.com/robots.txt

15. 在 Wget 命令上启用时间戳

要在下载输出上打印时间戳,您可以在终端 shell 上运行以下“万维网和获取”命令。 此命令将在您加载文件时让您知道服务器时间。

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 命令中隐藏输出

要通过“万维网和获取”命令下载文件或包而不在终端 shell 中显示输出,可以使用以下命令。 该命令将让您输入下载命令,然后它将静默完成下载并在下载结束时通知您。

隐藏 wget 的输出

wget -q https://mirror.aarnet.edu.au/pub/centos/7/isos/x86_64/md5sum.txt

23. 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.查看服务器响应

如果您是服务器管理员,此命令将对您非常有帮助。 您现在可以使用简单的“万维网和获取”命令来检查站点或服务器的响应时间。 这实际上与 Ping 命令不一样; 这里我们得到的是服务器的实际响应时间,而不是客户端通过互联网到达服务器所需的时间。

wget - 服务器响应 ubuntupit

wget -S https://www.ubuntupit.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 https://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 https://url-to-webpage-with-pdfs/

32. 使用 Wget 命令进行 FTP 下载

不仅通过 HTTPS、HTTP 或公共服务器,“万维网和获取”命令还允许您从局域网中托管的本地 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 - https://wordpress.org/latest.tar.gz | tar -xzf - --strip-components=1 -C /var/www/html

35. 帮助和手册

上述所有“万维网和获取”命令并不是您永远需要的唯一命令。 你可以更多地发现这个命令。 如果您热衷于 wget 命令,请浏览 wget 手册和帮助页面。

万维网和获取'--帮助

$ man wget
$ wget --help

结束词

在 Linux 上通过“万维网和获取”命令下载真的很有趣。 但是,它不是 Linux 的传统下载器。 该命令通常用于通过 Linux 上的终端 shell 下载压缩包文件、工具和其他与软件相关的文件。 整篇文章都是一系列 wget 命令,它们可能会帮助您成为一名高级 Linux 用户。

如果您觉得这篇文章有用且内容丰富,请与您的朋友和 Linux 社区分享。 您也可以在评论部分写下您对这篇文章的看法。