如何在 Linux 中使用 Wget 命令

Suraj Joshi 2023年1月30日
  1. 检查 Linux 是否安装了 wget
  2. wget 命令的语法
  3. wget 下载文件
  4. 使用自定义文件名保存使用 wget 下载的文件
  5. 使用 wget 将下载的文件保存到特定的目录下
  6. 使用 wget 指定下载速度
  7. 使用 wget 恢复下载
  8. 在后台使用 wget 下载文件
  9. 改变 wget 的用户代理
  10. 使用 wget 同时下载多个文件
  11. 使用 wget 命令通过 FTP 下载文件
  12. 使用 wget 创建网站的副本
  13. 使用 Wget 时跳过证书检查
如何在 Linux 中使用 Wget 命令

我们可以在 Linux 中使用 wget 命令通过 HTTP、HTTPS 和 FTP 协议从互联网上下载文件,并提供多种选项,如一次下载多个文件、在后台下载、限制带宽等。

检查 Linux 是否安装了 wget

我们只要在终端上输入 wget 命令,就可以检查系统中是否安装了 wget

如果 wget 安装在我们的系统中,我们得到的输出是:

wget: missing URL
Usage: wget [OPTION]... [URL]...

Try 'wget --help' for more options.

如果 wget 没有安装在我们的系统中,我们得到的输出为:

Command 'wget' not found, but can be installed with:

sudo snap install wget

如果系统中没有安装 wget,我们可以使用下面的命令进行安装。

在 Ubuntu 和 Debian 中安装 wget

sudo apt install wget

在 CentOS 和 Fedora 中安装 wget

sudo yum install wget

wget 命令的语法

wget [options] [url]

options 是各种可用于定制下载过程的选项,url 是指需要下载或同步文件的 URL

wget 下载文件

要使用 wget 命令下载文件,我们只需在 wget 后面指定文件仓库的 URL 即可。

wget https://bloximages.newyork1.vip.townnews.com/redandblack.com/content/tncms/assets/v3/editorial/4/59/45940eb2-5403-11e9-a843-db0e4491cc90/5ca13d8453042.image.jpg

输出:

--2020-09-28 19:29:15--  https://bloximages.newyork1.vip.townnews.com/redandblack.com/content/tncms/assets/v3/editorial/4/59/45940eb2-5403-11e9-a843-db0e4491cc90/5ca13d8453042.image.jpg
Resolving bloximages.newyork1.vip.townnews.com (bloximages.newyork1.vip.townnews.com)... 104.18.130.43, 104.18.131.43
Connecting to bloximages.newyork1.vip.townnews.com (bloximages.newyork1.vip.townnews.com)|104.18.130.43|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 33241 (32K) [image/jpeg]
Saving to: '5ca13d8453042.image.jpg'

5ca13d8453042.image 100%[===================>]  32.46K  --.-KB/s    in 0.003s  

2020-09-28 19:29:15 (11.1 MB/s) - '5ca13d8453042.image.jpg' saved [33241/33241]

它在给定的 URL 下载图像文件,然后将下载的文件保存在我们当前的工作目录中。

该命令首先解析 URL 的 IP 地址,然后开始下载。我们也可以在终端中看到下载进度条。

如果我们不想在终端中看到任何输出,可以在 wget 命令中使用 -q 选项。

使用自定义文件名保存使用 wget 下载的文件

默认情况下,下载的文件名称与网络上的相同。如果我们想用不同的文件名保存文件,我们可以在 -O 标志后指定文件名。

wget -O linux.jpg https://bloximages.newyork1.vip.townnews.com/redandblack.com/content/tncms/assets/v3/editorial/4/59/45940eb2-5403-11e9-a843-db0e4491cc90/5ca13d8453042.image.jpg

它将下载的文件保存在我们当前的工作目录中,文件名为 linux.jpg

使用 wget 将下载的文件保存到特定的目录下

默认情况下,所有下载的文件都会保存在当前的工作目录中。要将下载的文件保存在特定的目录中,我们使用 -P 选项,并在后面加上需要保存下载文件的目录位置。

wget -P Downloads/Linux_Images https://bloximages.newyork1.vip.townnews.com/redandblack.com/content/tncms/assets/v3/editorial/4/59/45940eb2-5403-11e9-a843-db0e4491cc90/5ca13d8453042.image.jpg

它将下载的图片保存在下载目录下的 Linux_Images 目录中。

使用 wget 指定下载速度

如果我们不想使用所有可用的带宽来使用 wget 下载文件,则可以使用 --limit-rate 选项来限制文件的下载速度。

wget -P --limit-rate=5m https://bloximages.newyork1.vip.townnews.com/redandblack.com/content/tncms/assets/v3/editorial/4/59/45940eb2-5403-11e9-a843-db0e4491cc90/5ca13d8453042.image.jpg

它将下载速度限制为 5mb。

使用 wget 恢复下载

如果我们的网络连接在下载一个大文件的过程中突然中断,重新开始下载文件将是一项繁琐的工作。在这种情况下,我们可以使用 -c 选项恢复下载。

wget -c https://bloximages.newyork1.vip.townnews.com/redandblack.com/content/tncms/assets/v3/editorial/4/59/45940eb2-5403-11e9-a843-db0e4491cc90/5ca13d8453042.image.jpg

在某些情况下,服务器可能不支持恢复下载,在这种情况下,下载将从头开始。

在后台使用 wget 下载文件

要在后台使用 wget 下载文件,我们在命令中添加 -b 选项。

wget -b https://releases.ubuntu.com/20.04/ubuntu-20.04.1-desktop-amd64.iso

它将在后台下载 Ubuntu 20.04 镜像文件。

要查看文件的下载状态,我们使用以下命令。

tail -f wget-log

改变 wget 的用户代理

在某些情况下,服务器可能会阻止 wget 用户代理。在这种情况下,我们可以使用 -U 选项来模拟不同的浏览器。

get --user-agent="Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Firefox/68.0" <url>

在这种情况下,Mozilla 68 将从 <url> 中请求文件。

使用 wget 同时下载多个文件

要使用 wget 下载多个文件,我们制作一个 .txt,在单独的一行上列出要下载的每个文件的 URL。然后我们使用 wget 命令,在 -i 选项后面加上包含 URLs 的文件路径。

wget -i files.txt

这将从 files.txt 文件中指定的 URL 下载所有文件。

使用 wget 命令通过 FTP 下载文件

要使用 wget 命令通过 FTP 下载文件,我们使用 --ftp-user 选项指定用户名,使用 --ftp-password 选项指定密码。

wget --ftp-user=username --ftp-password=password <url>

它使用 FTP 协议从指定的 URL 下载文件。

使用 wget 创建网站的副本

要使用 wget 创建一个网站的副本,我们使用 -m 选项,后面跟着要复制的 URL。

wget -m https://abc.com

这将通过下载网站所需的所有内部链接和静态文件来创建一个 abc.com 的副本。

如果我们想运行下载的网站,我们还需要添加 -k-p 选项。

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

使用 Wget 时跳过证书检查

有时,我们需要从主机上下载一个文件,但没有有效的 SSL 证书,使用 HTTPS 协议。在这种情况下,我们使用 --no-check-certificate 选项来跳过证书检查。

wget --no-check-certificate <url>
作者: Suraj Joshi
Suraj Joshi avatar Suraj Joshi avatar

Suraj Joshi is a backend software engineer at Matrice.ai.

LinkedIn