linux命令之wget

佐手、 提交于 2020-11-09 17:31:33

微信公众号:北风中独行的蜗牛

wget是在Linux下开发的开放源代码的软件,作者是Hrvoje Niksic,后来被移植到包括Windows在内的各个平台上。它有以下功能和特点:

(1)支持断点下传功能;这一点,也是网络蚂蚁和FlashGet当年最大的卖点,现在,Wget也可以使用此功能,那些网络不是太好的用户可以放心了;
(2)同时支持FTP和HTTP下载方式;尽管现在大部分软件可以使用HTTP方式下载,但是,有些时候,仍然需要使用FTP方式下载软件;
(3)支持代理服务器;对安全强度很高的系统而言,一般不会将自己的系统直接暴露在互联网上,所以,支持代理是下载软件必须有的功能;
(4)设置方便简单;可能,习惯图形界面的用户已经不是太习惯命令行了,但是,命令行在设置上其实有更多的优点,最少,鼠标可以少点很多次,也不要担心是否错点鼠标;
(5)程序小,完全免费;程序小可以考虑不计,因为现在的硬盘实在太大了;完全免费就不得不考虑了,即使网络上有很多所谓的免费软件,但是,这些软件的广告却不是我们喜欢的;

wget这个命令Linux系统一般都会有自带,如果没有的话直接安装上就可以:yum -y install wget 即可。

wget的功能很强大,但是使用起来却很简单 wget [参数] url 即可。

  1. 下载单个文件,以ElasticSearch为例,wget url,不用加任何参数,这个是最简单的,进度会自动显示在命令行上:

wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.1.0.tar.gz
  1. 指定文件名。给下载到本地的文件指定一个文件名。用到参数 -O, O是大写也可以是小写的,大写会显示进度,小写不显示进度,例如:

wget -O elasticsearch https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.1.0.tar.gz
  1. 如果想上下载的时候不显示详细信息,即后台默默的下载,用参数 -b,下载的详细信息会打印到wegt-log 中,如下:

[root@VM_0_11_centos software]# wget -b  https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.1.0.tar.gz
Continuing in background, pid 21932.
Output will be written to ‘wget-log’

4:可以设置下载的速度:-limit-rate=100k:

 wget -limit-rate=100k  https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.1.0.tar.gz
  1. 断点续传功能:参数为-c

wget -c  https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.1.0.tar.gz
  1. 测试连接是否可用  --spider

[root@VM_0_11_centos software]# wget --spider https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.1.0.tar.gz
Spider mode enabled. Check if remote file exists.
--2020-03-31 09:26:47--  https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.1.0.tar.gz
Resolving artifacts.elastic.co (artifacts.elastic.co)... 151.101.230.222, 2a04:4e42:1a::734
Connecting to artifacts.elastic.co (artifacts.elastic.co)|151.101.230.222|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 28535876 (27M) [binary/octet-stream]
Remote file exists.
  1. 下载一个文件由于网络原因什么的可能会失败,wget默认会重试20次,20次这个也可以自己改,使用参数  --tries=30 例如:
    wget --tries=30   https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.1.0.tar.gz

  2. wget可以一次下载多个文件:使用参数 -i file.txt. 意思是将多个url参数写到一个文件,一个url一行,比如

[root@VM_0_11_centos software]# cat download.txt 
 https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.1.0.tar.gz
 https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-5.2.2.tar.gz
 [root@VM_0_11_centos software]# wget -i download.txt 
  1. 参数–mirror 是下载整个镜像网站,意思就是把整个网站的所有相关文件都给下载下来:

wget –mirror -p –convert-links -P ./LOCAL URL
–miror:开户镜像下载
-p:下载所有为了html页面显示正常的文件
–convert-links:下载后,转换成本地的链接
-P ./LOCAL:保存所有文件和目录到本地指定目录
  1. 指定不下载某一个类文件,参数为--reject=xxx ,例如指定不下载图片:

 wget --reject=png  --mirror -p --convert-links -P./baidu https://www.baidu.com
  1. 使用-Q 限制文件的大小,此参数只有在下载多个文件的时候才起作用。比如

 wget -Q5M -i download.txt 
  1. 参数 -r -A 下载指定参数的文件:
    下载一个网站的所有图片
    下载一个网站的所有视频
    下载一个网站的所有PDF文件
    wget -r -A.pdf url

  2. FTP下载:

  匿名下载 wget -ftp URL
  指定名字下载:wget -ftp-user=xxx -ftp-password=-xxx URL

14、密码和认证。

wget只能处理利用用户名/密码方式限制访问的网站,可以利用两个参数: 
–http-user=USER设置HTTP用户 
–http-passwd=PASS设置HTTP密码 
对于需要证书做认证的网站,就只能利用其他下载工具了,例如curl。 
  1. 利用代理服务器下载:

如果用户的网络需要经过代理服务器,那么可以让wget通过代理服务器进行文件的下载。此时需要在当前用户的目录下创建一个.wgetrc文件。文件中可以设置代理服务器: 
http-proxy = 111.111.111.111:8080 
ftp-proxy = 111.111.111.111:8080 
分别表示http的代理服务器和ftp的代理服务器。如果代理服务器需要密码则使用: 
–proxy-user=USER设置代理用户 
–proxy-passwd=PASS设置代理密码 

参考:https://www.cnblogs.com/semonxv/p/3816366.html
https://www.cnblogs.com/cindy-cindy/p/6847502.html


本文分享自微信公众号 - 北风中独行的蜗牛(manong_xiaodong)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!