写好shell脚本的13个技巧
目录:
- 安装Wget
- 在Ubuntu和Debian上安装Wget
- 在CentOS和Fedora上安装Wget
- Wget命令语法
- 如何使用Wget下载文件
- 使用Wget命令以其他名称保存下载的文件
- 使用Wget命令将文件下载到特定目录
- 如何使用Wget限制下载速度
- 如何使用Wget继续下载
- 如何使用Wget在后台下载
- 如何更改Wget的Wget用户代理
- 如何使用Wget下载多个文件
- 使用Wget命令通过FTP下载
- 使用Wget命令创建网站的镜像
- 如何使用Wget跳过证书检查
- 如何使用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
在CentOS和Fedora上安装Wget
Wget命令语法
在开始使用
wget
命令之前,让我们先回顾一下基本语法。
wget
实用程序表达式采用以下形式:
wget
-
options-Wget optionsurl您要下载或同步的文件或目录的URL。
如何使用Wget下载文件
不带任何选项使用时,它是最简单的形式,wget将把中指定的资源下载到当前目录。
在以下示例中,我们正在下载Linux内核tar归档文件:
wget

从上图可以看到,Wget首先解析域的IP地址,然后连接到远程服务器并开始传输。
在下载过程中,Wget将显示进度条以及文件名,文件大小,下载速度和完成下载的估计时间。 下载完成后,您可以在当前工作目录中找到下载的文件。
要关闭Wget的输出,请使用
-q
选项。
如果文件已经存在,则Wget将在文件名的末尾添加
.N
(数字)。
使用Wget命令以其他名称保存下载的文件
要以其他名称保存下载的文件,请传递
-O
选项,后跟所选名称:
wget -O latest-hugo.zip
上面的命令会将来自GitHub的最新hugo zip文件另存为
latest-hugo.zip
而不是其原始名称。
使用Wget命令将文件下载到特定目录
默认情况下,Wget会将下载的文件保存在当前工作目录中。 要将文件保存到特定位置,请使用
-P
选项:
wget -P /mnt/iso
通过上面的命令,我们告诉Wget将CentOS 7 iso文件保存到
/mnt/iso
目录。
如何使用Wget限制下载速度
要限制下载速度,请使用
--limit-rate
选项。 默认情况下,速度以字节/秒为单位。 将
k
为千字节,
m
为兆字节,
g
为千兆字节。
以下命令将下载Go二进制文件并将下载速度限制为1mb:
wget --limit-rate=1m
当您不希望wget消耗所有可用带宽时,此选项很有用。
如何使用Wget继续下载
您可以使用
-c
选项恢复下载。 如果在下载大文件期间断开连接,这很有用,而不是从头开始下载,则可以继续上一个。
在以下示例中,我们继续下载Ubuntu 18.04 iso文件:
wget -c
如果远程服务器不支持继续下载,则Wget将从头开始下载并覆盖现有文件。
如何使用Wget在后台下载
要在后台下载,请使用
-b
选项。 在以下示例中,我们在后台下载OpenSuse iso文件:
wget -b
默认情况下,输出重定向到当前目录中的
wget-log
文件。 要查看下载状态,请使用
tail
命令:
如何更改Wget的Wget用户代理
有时在下载文件时,可能会将远程服务器设置为阻止Wget User-Agent。 在这种情况下,要模拟其他浏览器,请传递
-U
选项。
wget --user-agent="Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Firefox/60.0"
上面的命令将模拟Firefox 60从
wget-forbidden.com
请求页面
如何使用Wget下载多个文件
在以下示例中,我们将下载带有
linux-distros.txt
文件中指定的URL的Arch Linux,Debian和Fedora iso文件:
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
使用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
wget -m -k -p
-k
选项将使Wget转换已下载文档中的链接,以使其适合本地查看。
-p
选项将告诉wget下载所有必需的文件,以显示HTML页面。
如何使用Wget跳过证书检查
如何使用Wget下载到标准输出
在下面的示例中,Wget将安静地(flag
-q
)下载并输出最新的WordPress版本到stdout(flag
-O -
),并将其通过管道传输到
tar
实用程序,后者会将存档提取到
/var/www
目录。
wget -q -O - "http://wordpress.org/latest.tar.gz" | tar -xzf - -C /var/www
结论
使用Wget,您可以下载多个文件,恢复部分下载,镜像网站,并根据需要组合Wget选项。
要了解有关Wget的更多信息,请访问GNU wget手册页。
wget终端






