Linux中的Wget命令与示例

GNU Wget是一个命令行实用程序,用于从Web下载文件。 使用Wget,您可以使用HTTP,HTTPS和FTP协议下载文件。 Wget提供了许多选项,使您可以下载多个文件,恢复下载,限制带宽,递归下载,在后台下载,镜像网站等等。

在本教程中,我们将通过实际示例和最常见的Wget选项的详细说明,向您展示如何使用Wget命令。

安装Wget#

今天的wget软件包已预安装在大多数Linux发行版中。

要检查系统上是否安装了Wget软件包,请打开控制台,键入 wget,然后按Enter。 如果安装了wget,系统将打印 wget: missing URL,否则它将打印 wget command not found

如果未安装wget,则可以使用发行版的软件包管理器轻松安装它。

在Ubuntu和Debian上安装Wget#

sudo apt install wget

在CentOS和Fedora上安装Wget#

sudo yum install wget

Wget命令语法

在进入如何使用之前 wget 命令,让我们先回顾一下基本语法。

wget 实用程序表达式采用以下形式:

wget [options] [url]
  • options -Wget选项
  • url -您要下载或同步的文件或目录的URL。

如何使用Wget下载文件

不带任何选项使用时,wget将以最简单的形式下载wget中指定的资源。 [url] 到当前目录。

在以下示例中,我们正在下载Linux内核tar归档文件:

wget https://cdn.kernel.org/pub/linux/kernel/v4.x/linux-4.17.2.tar.xz

从上图可以看到,Wget首先解析域的IP地址,然后连接到远程服务器并开始传输。

在下载过程中,Wget会显示进度条以及文件名,文件大小,下载速度和完成下载的估计时间。 下载完成后,您可以在当前工作目录中找到下载的文件。

要关闭Wget的输出,请使用 -q 选项。

如果文件已经存在,Wget将添加 .N (数字)在文件名的末尾。

使用Wget命令以不同的名称保存下载的文件#

要以其他名称保存下载的文件,请传递 -O 选项,后跟所选名称:

wget -O latest-hugo.zip https://github.com/gohugoio/hugo/archive/master.zip

上面的命令会将GitHub上的最新hugo zip文件另存为 latest-hugo.zip 而不是原始名称。

使用Wget命令将文件下载到特定目录#

默认情况下,Wget会将下载的文件保存在当前工作目录中。 要将文件保存到特定位置,请使用 -P 选项:

wget -P /mnt/iso http://mirrors.mit.edu/centos/7/isos/x86_64/CentOS-7-x86_64-Minimal-1804.iso

通过上面的命令,我们告诉Wget将CentOS 7 iso文件保存到 /mnt/iso 目录。

如何使用Wget#限制下载速度

要限制下载速度,请使用 --limit-rate 选项。 默认情况下,速度以字节/秒为单位。 附加 k 千字节 m 兆字节和 g 千兆字节。

以下命令将下载Go二进制文件并将下载速度限制为1mb:

wget --limit-rate=1m https://dl.google.com/go/go1.10.3.linux-amd64.tar.gz

当您不希望wget消耗所有可用带宽时,此选项很有用。

如何使用Wget恢复下载

您可以使用来恢复下载 -c 选项。 如果在下载大文件时连接断开,这很有用,那么您可以继续上一个,而不是从头开始下载。

在以下示例中,我们继续下载Ubuntu 18.04 iso文件:

wget -c http://releases.ubuntu.com/18.04/ubuntu-18.04-live-server-amd64.iso

如果远程服务器不支持继续下载,则Wget将从头开始下载并覆盖现有文件。

如何使用Wget#在后台下载

要在后台下载,请使用 -b 选项。 在以下示例中,我们在后台下载OpenSuse iso文件:

wget -b https://download.opensuse.org/tumbleweed/iso/openSUSE-Tumbleweed-DVD-x86_64-Current.iso

默认情况下,输出重定向到 wget-log 文件在当前目录中。 要查看下载状态,请使用 tail 命令:

tail -f wget-log

如何更改Wget的Wget用户代理

有时在下载文件时,可能会将远程服务器设置为阻止Wget User-Agent。 在这种情况下,要模拟其他浏览器,请通过 -U 选项。

wget --user-agent="Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Firefox/60.0" http://wget-forbidden.com/

上面的命令将模拟Firefox 60从以下位置请求页面 wget-forbidden.com

如何使用Wget下载多个文件

如果要一次下载多个文件,请使用 -i 选项,然后是包含要下载的URL列表的本地或外部文件的路径。 每个URL必须放在单独的行上。

在以下示例中,我们将下载Arch Linux,Debian和Fedora iso文件,这些文件具有在 linux-distros.txt 文件:

wget -i linux-distros.txt

linux-distros.txt

http://mirrors.edge.kernel.org/archlinux/iso/2018.06.01/archlinux-2018.06.01-x86_64.iso
https://cdimage.debian.org/debian-cd/current/amd64/iso-cd/debian-9.4.0-amd64-netinst.iso
https://download.fedoraproject.org/pub/fedora/linux/releases/28/Server/x86_64/iso/Fedora-Server-dvd-x86_64-28-1.1.iso

如果指定 - 作为文件名,将从标准输入中读取URL。

使用Wget命令通过FTP下载#

要从受密码保护的FTP服务器下载文件,请指定用户名和密码,如下所示:

wget --ftp-user=FTP_USERNAME --ftp-password=FTP_PASSWORD ftp://ftp.example.com/filename.tar.gz

使用Wget命令创建网站的镜像#

要使用Wget创建网站的镜像,请使用 -m 选项。 通过跟踪并下载所有内部链接以及网站资源(JavaScript,CSS,图像),这将创建网站的完整本地副本。

wget -m https://example.com

如果要使用下载的网站进行本地浏览,则需要向上面的命令传递一些额外的参数。

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

-k 选项将使Wget转换已下载文档中的链接,以使其适合本地查看。 的 -p 选项将告诉wget下载所有必要的文件以显示HTML页面。

如何使用Wget跳过证书检查

如果要从SSL证书无效的主机通过HTTPS下载文件,请使用 --no-check-certificate 选项:

wget --no-check-certificate https://domain-with-invalid-ss.com

如何使用Wget#下载到标准输出

在下面的示例中,Wget将安静地( -q)下载最新的WordPress版本并将其输出到stdout(标志 -O -)并将其通过管道传输到 tar 该实用程序会将存档提取到 /var/www 目录。

wget -q -O - "http://wordpress.org/latest.tar.gz" | tar -xzf - -C /var/www

结论#

使用Wget,您可以下载多个文件,恢复部分下载,镜像网站以及根据需要组合Wget选项。

要了解有关Wget的更多信息,请访问GNU wget手册页。

wget终端

Sidebar