如何在 Linux 中使用 Wget 命令
-
检查 Linux 是否安装了
wget
-
wget
命令的语法 -
用
wget
下载文件 -
使用自定义文件名保存使用
wget
下载的文件 -
使用
wget
将下载的文件保存到特定的目录下 -
使用
wget
指定下载速度 -
使用
wget
恢复下载 -
在后台使用
wget
下载文件 -
改变
wget
的用户代理 -
使用
wget
同时下载多个文件 -
使用
wget
命令通过 FTP 下载文件 -
使用
wget
创建网站的副本 - 使用 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 is a backend software engineer at Matrice.ai.
LinkedIn