Linux 命令 wget 面试必备

Posted Linux猿

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux 命令 wget 面试必备相关的知识,希望对你有一定的参考价值。

在 Linux 中,wget 主要用于下载文件,是包含在 GNU 计划中的软件。支持通过 HTTP、HTTPS,以及 FTP 协议下载。

语法格式如下:

        wget [option]... [URL]...

option 表示参数,URL 表示下载文件的链接。

一、常用参数

-b, --background : 进入后台下载;

-o logfile, --output-file=logfile : 将命令执行信息输出到日志文件;

-O file, --output-document=file : 修改下载文件名;

-P prefix, --directory-prefix=prefix 下载文件到指定目录下;

-i file, --input-file=file : 下载文件中链接指向的文件;

 -c, --continue : 断点续传;

二、实例

2.1 不带参数

可以不带参数直接下载文件,文件存储到当前目录。

linuxy@linuxy:~/wget$ wget http://archive.ubuntu.com/ubuntu/pool/main/a/acl/acl_2.2.53-6_amd64.deb
--2021-06-05 22:34:46--  http://archive.ubuntu.com/ubuntu/pool/main/a/acl/acl_2.2.53-6_amd64.deb
正在解析主机 archive.ubuntu.com (archive.ubuntu.com)... 91.189.88.142, 91.189.88.152, 2001:67c:1360:8001::24, ...
正在连接 archive.ubuntu.com (archive.ubuntu.com)|91.189.88.142|:80... 已连接。
已发出 HTTP 请求,正在等待回应... 200 OK
长度: 37756 (37K) [application/x-debian-package]
正在保存至: “acl_2.2.53-6_amd64.deb”

acl_2.2.53-6_amd64.deb           100%[==========================================================>]  36.87K  98.6KB/s    用时 0.4s

2021-06-05 22:34:47 (98.6 KB/s) - 已保存 “acl_2.2.53-6_amd64.deb” [37756/37756])

linuxy@linuxy:~/wget$ ls
acl_2.2.53-6_amd64.deb
linuxy@linuxy:~/wget$

如果当前目录下已存在同名文件,则为新文件添加 ".N" 后缀,如下所示:

linuxy@linuxy:~/wget$ wget http://archive.ubuntu.com/ubuntu/pool/main/a/acl/acl_2.2.53-6_amd64.deb
--2021-06-05 22:56:45--  http://archive.ubuntu.com/ubuntu/pool/main/a/acl/acl_2.2.53-6_amd64.deb
正在解析主机 archive.ubuntu.com (archive.ubuntu.com)... 91.189.88.152, 91.189.88.142, 2001:67c:1360:8001::23, ...
正在连接 archive.ubuntu.com (archive.ubuntu.com)|91.189.88.152|:80... 已连接。
已发出 HTTP 请求,正在等待回应... 200 OK
长度: 37756 (37K) [application/x-debian-package]
正在保存至: “acl_2.2.53-6_amd64.deb.1”

acl_2.2.53-6_amd64.deb.1         100%[==========================================================>]  36.87K  34.4KB/s    用时 1.1s

2021-06-05 22:56:48 (34.4 KB/s) - 已保存 “acl_2.2.53-6_amd64.deb.1” [37756/37756])

linuxy@linuxy:~/wget$ ls
acl_2.2.53-6_amd64.deb  acl_2.2.53-6_amd64.deb.1
linuxy@linuxy:~/wget$

acl 第二次下载后重命名为  acl_2.2.53-6_amd64.deb.1。

2.2 -o 参数

linuxy@linuxy:~/wget$ wget -o wget-log-new http://archive.ubuntu.com/ubuntu/pool/main/a/acl/acl_2.2.53-6_amd64.deb
linuxy@linuxy:~/wget$ ls
acl_2.2.53-6_amd64.deb  wget-log-new
linuxy@linuxy:~/wget$

将命令输出信息存储到指定文件,命令行界面瞬间清爽啦!

2.3 -b 参数

linuxy@linuxy:~$ wget -b http://archive.ubuntu.com/ubuntu/pool/main/a/acl/acl_2.2.53-6_amd64.deb
继续在后台运行,pid 为 3300。
将把输出写入至 “wget-log”。

转到后台下载,下载后存储到当前目录。如果没有指定 -o 参数,命令输出信息将保存到当前目录下 wget-log 文件中。

2.4  -O 参数

linuxy@linuxy:~/wget$ wget -O acl.deb http://archive.ubuntu.com/ubuntu/pool/main/a/acl/acl_2.2.53-6_amd64.deb
--2021-06-05 21:51:15--  http://archive.ubuntu.com/ubuntu/pool/main/a/acl/acl_2.2.53-6_amd64.deb
正在解析主机 archive.ubuntu.com (archive.ubuntu.com)... 91.189.88.152, 91.189.88.142, 2001:67c:1360:8001::23, ...
正在连接 archive.ubuntu.com (archive.ubuntu.com)|91.189.88.152|:80... 已连接。
已发出 HTTP 请求,正在等待回应... 200 OK
长度: 37756 (37K) [application/x-debian-package]
正在保存至: “acl.deb”

acl.deb                          100%[==========================================================>]  36.87K  41.0KB/s    用时 0.9s

2021-06-05 21:51:17 (41.0 KB/s) - 已保存 “acl.deb” [37756/37756])

linuxy@linuxy:~/wget$ ls
acl.deb
linuxy@linuxy:~/wget$

将下载的文件重命名为 acl.deb。

2.5 -P 参数

将文件下载到指定目录下,如下所示:

linuxy@linuxy:~/wget$ wget -P /tmp http://archive.ubuntu.com/ubuntu/pool/main/a/acl/acl_2.2.53-6_amd64.deb
--2021-06-05 23:03:22--  http://archive.ubuntu.com/ubuntu/pool/main/a/acl/acl_2.2.53-6_amd64.deb
正在解析主机 archive.ubuntu.com (archive.ubuntu.com)... 91.189.88.152, 91.189.88.142, 2001:67c:1360:8001::24, ...
正在连接 archive.ubuntu.com (archive.ubuntu.com)|91.189.88.152|:80... 已连接。
已发出 HTTP 请求,正在等待回应... 200 OK
长度: 37756 (37K) [application/x-debian-package]
正在保存至: “/tmp/acl_2.2.53-6_amd64.deb”

acl_2.2.53-6_amd64.deb           100%[==========================================================>]  36.87K  20.1KB/s    用时 1.8s

2021-06-05 23:03:26 (20.1 KB/s) - 已保存 “/tmp/acl_2.2.53-6_amd64.deb” [37756/37756])

linuxy@linuxy:~/wget$ ls -l /tmp/acl_2.2.53-6_amd64.deb
-rw-rw-r-- 1 linuxy linuxy 37756 3月  10  2020 /tmp/acl_2.2.53-6_amd64.deb
linuxy@linuxy:~/wget$ ls
linuxy@linuxy:~/wget$

文件被下载到 /tmp 目录下。 

2.6 -c 参数

断点续传指的是从上次已经下载的地方继续下载,不用重新下载,需要服务器支持断点续传功能。

使用 wget 下载 vim,下载到 61% 的时候中断下载,如下所示:

linuxy@linuxy:~/wget$ wget -c http://archive.ubuntu.com/ubuntu/pool/main/v/vim/vim_8.1.2269-1ubuntu5_amd64.deb
--2021-06-05 22:41:18--  http://archive.ubuntu.com/ubuntu/pool/main/v/vim/vim_8.1.2269-1ubuntu5_amd64.deb
正在解析主机 archive.ubuntu.com (archive.ubuntu.com)... 91.189.88.152, 91.189.88.142, 2001:67c:1360:8001::24, ...
正在连接 archive.ubuntu.com (archive.ubuntu.com)|91.189.88.152|:80... 已连接。
已发出 HTTP 请求,正在等待回应... 206 Partial Content
长度: 1237624 (1.2M),剩余 1224077 (1.2M) [application/x-debian-package]
正在保存至: “vim_8.1.2269-1ubuntu5_amd64.deb”

vim_8.1.2269-1ubuntu5_amd64.deb   61%[===================================>                       ] 745.06K  16.8KB/s    剩余 27s

然后,再次下载,第二次下载从上次 61% 处继续下载,如下所示:

linuxy@linuxy:~/wget$ wget -c http://archive.ubuntu.com/ubuntu/pool/main/v/vim/vim_8.1.2269-1ubuntu5_amd64.deb
--2021-06-05 22:42:04--  http://archive.ubuntu.com/ubuntu/pool/main/v/vim/vim_8.1.2269-1ubuntu5_amd64.deb
正在解析主机 archive.ubuntu.com (archive.ubuntu.com)... 91.189.88.152, 91.189.88.142, 2001:67c:1360:8001::24, ...
正在连接 archive.ubuntu.com (archive.ubuntu.com)|91.189.88.152|:80... 已连接。
已发出 HTTP 请求,正在等待回应... 206 Partial Content
长度: 1237624 (1.2M),剩余 471355 (460K) [application/x-debian-package]
正在保存至: “vim_8.1.2269-1ubuntu5_amd64.deb”

vim_8.1.2269-1ubuntu5_amd64.deb  100%[++++++++++++++++++++++++++++++++++++======================>]   1.18M  25.4KB/s    用时 17s

2021-06-05 22:42:22 (27.1 KB/s) - 已保存 “vim_8.1.2269-1ubuntu5_amd64.deb” [1237624/1237624])

linuxy@linuxy:~/wget$

 已经下载的 61% 标注为 “+”。

 2.7 -i 下载多个文件

linuxy@linuxy:~/wget$ cat download
http://archive.ubuntu.com/ubuntu/pool/main/a/acl/acl_2.2.53-6_amd64.deb
http://ports.ubuntu.com/pool/main/c/curl/curl_7.68.0-1ubuntu2_arm64.deb
linuxy@linuxy:~/wget$ wget -i download
--2021-06-05 22:04:37--  http://archive.ubuntu.com/ubuntu/pool/main/a/acl/acl_2.2.53-6_amd64.deb
正在解析主机 archive.ubuntu.com (archive.ubuntu.com)... 91.189.88.152, 91.189.88.142, 2001:67c:1360:8001::24, ...
正在连接 archive.ubuntu.com (archive.ubuntu.com)|91.189.88.152|:80... 已连接。
已发出 HTTP 请求,正在等待回应... 200 OK
长度: 37756 (37K) [application/x-debian-package]
正在保存至: “acl_2.2.53-6_amd64.deb”

acl_2.2.53-6_amd64.deb           100%[==========================================================>]  36.87K  20.3KB/s    用时 19s

2021-06-05 22:05:00 (1.92 KB/s) - 已保存 “acl_2.2.53-6_amd64.deb” [37756/37756])

--2021-06-05 22:05:00--  http://ports.ubuntu.com/pool/main/c/curl/curl_7.68.0-1ubuntu2_arm64.deb
正在解析主机 ports.ubuntu.com (ports.ubuntu.com)... 91.189.91.39, 91.189.91.38, 2001:67c:1562::18, ...
正在连接 ports.ubuntu.com (ports.ubuntu.com)|91.189.91.39|:80... 已连接。
已发出 HTTP 请求,正在等待回应... 200 OK
长度: 156608 (153K) [application/x-debian-package]
正在保存至: “curl_7.68.0-1ubuntu2_arm64.deb”

curl_7.68.0-1ubuntu2_arm64.deb   100%[==========================================================>] 152.94K  33.2KB/s    用时 12s

2021-06-05 22:05:14 (12.5 KB/s) - 已保存 “curl_7.68.0-1ubuntu2_arm64.deb” [156608/156608])

下载完毕 --2021-06-05 22:05:14--
总用时:37s
下载了:2 个文件,31s (6.04 KB/s) 中的 190K
linuxy@linuxy:~/wget$

wget 后直接添加多个链接也可以实现一次下载多个文件,但是这样太麻烦啦!

使用 -i 参数,可以将多个链接存储到文件中,一次下载文件中的所有链接指向的文件。

三、总结

wget 是一个常用的 Linux 命令,常用的功能包括下载文件、下载多个文件、断点续传、后台下载等。

参考文献:

[1] https://www.jianshu.com/p/59bb131bc2ab

[2] https://linuxize.com/post/wget-command-examples/

 

以上是关于Linux 命令 wget 面试必备的主要内容,如果未能解决你的问题,请参考以下文章

Linux netstat命令详解,高级面试必备

玩转20条linux命令,小白面试必备

wget 递归下载整个网站(网站扒皮必备)

wget 递归下载整个网站(网站扒皮必备)

linux12k8s -->16 kubernetes必备面试题

Windows 终端常用命令,必备!