Linux学习(二) wget命令的使用

最近在Linux下进行一些操作,在很多地方都用到了wget这个命令,记录一下一些有关wget的用法:

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

(1)支持断点下传功能;这一点,也是网络蚂蚁和FlashGet当年最大的卖点,现在,Wget也可以使用此功能,那些网络不是太好的用户可以放心了;

(2)同时支持FTP和HTTP下载方式;尽管现在大部分软件可以使用HTTP方式下载,但是,有些时候,仍然需要使用FTP方式下载软件;

(3)支持代理服务器;对安全强度很高的系统而言,一般不会将自己的系统直接暴露在互联网上,所以,支持代理是下载软件必须有的功能;

(4)设置方便简单;可能,习惯图形界面的用户已经不是太习惯命令行了,但是,命令行在设置上其实有更多的优点,最少,鼠标可以少点很多次,也不要担心是否错点鼠标;

(5)程序小,完全免费;程序小可以考虑不计,因为现在的硬盘实在太大了;完全免费就不得不考虑了,即使网络上有很多所谓的免费软件,但是,这些软件的广告却不是我们喜欢的;

wget虽然功能强大,但是使用起来还是比较简单的,基本的语法是:wget [参数列表] URL。下面就结合具体的例子来说明一下wget的用法。

1、下载整个http或者ftp站点。

wget http://place.your.url/here

这个命令可以将http://place.your.url/here 首页下载下来。使用-x会强制建立服务器上一模一样的目录,如果使用-nd参数,那么服务器上下载的所有内容都会加到本地当前目录。

wget -r http://place.your.url/here

这 个命令会按照递归的方法,下载服务器上所有的目录和文件,实质就是下载整个网站。这个命令一定要小心使用,因为在下载的时候,被下载网站指向的所有地址同 样会被下载,因此,如果这个网站引用了其他网站,那么被引用的网站也会被下载下来!基于这个原因,这个参数不常用。可以用-l number参数来指定下载的层次。例如只下载两层,那么使用-l 2。

要是您想制作镜像站点,那么可以使用-m参数,例如:wget -m http://place.your.url/here

这时wget会自动判断合适的参数来制作镜像站点。此时,wget会登录到服务器上,读入robots.txt并按robots.txt的规定来执行。

2、断点续传。

当文件特别大或者网络特别慢的时候,往往一个文件还没有下载完,连接就已经被切断,此时就需要断点续传。wget的断点续传是自动的,只需要使用-c参数,例如:

wget -c http://the.url.of/incomplete/file

使用断点续传要求服务器支持断点续传。-t参数表示重试次数,例如需要重试100次,那么就写-t 100,如果设成-t 0,那么表示无穷次重试,直到连接成功。-T参数表示超时等待时间,例如-T 120,表示等待120秒连接不上就算超时。

3、批量下载。

如果有多个文件需要下载,那么可以生成一个文件,把每个文件的URL写一行,例如生成文件download.txt,然后用命令:wget -i download.txt

这样就会把download.txt里面列出的每个URL都下载下来。(如果列的是文件就下载文件,如果列的是网站,那么下载首页)

4、选择性的下载。

可以指定让wget只下载一类文件,或者不下载什么文件。例如:

wget -m –reject=gif http://target.web.site/subdirectory

表示下载http://target.web.site/subdirectory,但是忽略gif文件。–accept=LIST 可以接受的文件类型,–reject=LIST拒绝接受的文件类型。

5、密码和认证。

wget只能处理利用用户名/密码方式限制访问的网站,可以利用两个参数:

–http-user=USER设置HTTP用户

–http-passwd=PASS设置HTTP密码

对于需要证书做认证的网站,就只能利用其他下载工具了,例如curl。

6、利用代理服务器进行下载。

如果用户的网络需要经过代理服务器,那么可以让wget通过代理服务器进行文件的下载。此时需要在当前用户的目录下创建一个.wgetrc文件。文件中可以设置代理服务器:

http-proxy = 111.111.111.111:8080

ftp-proxy = 111.111.111.111:8080

分别表示http的代理服务器和ftp的代理服务器。如果代理服务器需要密码则使用:

–proxy-user=USER设置代理用户

–proxy-passwd=PASS设置代理密码

这两个参数。

使用参数–proxy=on/off 使用或者关闭代理。

wget还有很多有用的功能,需要用户去挖掘。

附录:

命令格式:

wget [参数列表] [目标软件、网页的网址]

-V,–version 显示软件版本号然后退出;

-h,–help显示软件帮助信息;

-e,–execute=COMMAND 执行一个 “.wgetrc”命令

-o,–output-file=FILE 将软件输出信息保存到文件;

-a,–append-output=FILE将软件输出信息追加到文件;

-d,–debug显示输出信息;

-q,–quiet 不显示输出信息;

-i,–input-file=FILE 从文件中取得URL;

-t,–tries=NUMBER 是否下载次数(0表示无穷次)

-O –output-document=FILE下载文件保存为别的文件名

-nc, –no-clobber 不要覆盖已经存在的文件

-N,–timestamping只下载比本地新的文件

-T,–timeout=SECONDS 设置超时时间

-Y,–proxy=on/off 关闭代理

-nd,–no-directories 不建立目录

-x,–force-directories 强制建立目录

–http-user=USER设置HTTP用户

–http-passwd=PASS设置HTTP密码

–proxy-user=USER设置代理用户

–proxy-passwd=PASS设置代理密码

-r,–recursive 下载整个网站、目录(小心使用)

-l,–level=NUMBER 下载层次

-A,–accept=LIST 可以接受的文件类型

-R,–reject=LIST拒绝接受的文件类型

-D,–domains=LIST可以接受的域名

–exclude-domains=LIST拒绝的域名

-L,–relative 下载关联链接

–follow-ftp 只下载FTP链接

-H,–span-hosts 可以下载外面的主机

-I,–include-directories=LIST允许的目录

-X,–exclude-directories=LIST 拒绝的目录

中文文档名在平常的情况下会被编码, 但是在 –cut-dirs 时又是正常的,

wget -r -np -nH –cut-dirs=3 ftp://host/test/

测试.txt

wget -r -np -nH -nd ftp://host/test/

%B4%FA%B8%D5.txt

wget “ftp://host/test/*”

%B4%FA%B8%D5.txt

由于不知名的原因,可能是为了避开特殊档名, wget 会自动将抓取档名的部分用 encode_string 处理过, 所以该 patch 就把被 encode_string 处理成 “%3A” 这种东西, 用 decode_string 还原成 “:”,并套用在目录与档案名称的部分,decode_string 是 wget 内建的函式。

wget -t0 -c -nH -x -np -b -m -P /home/sunny/NOD32view/  http://downloads1.kaspersky-labs.com/bases/ -o wget.log

原文地址:http://linux.blogbus.com/logs/46636997.html

时间: 2024-11-08 17:45:15

Linux学习(二) wget命令的使用的相关文章

linux学习笔记-type命令

语法: type [-tpa] name 参数: type:    不加任何参数时,type会显示出name是外部命令还是内部bash内置命令 -t:      当加入-t参数时,type会将name以下面这些字眼显示出它的意义 file:表示为外部命令 alias:表示该命令为命令别名所设置的名称 builtin:表示该命令为bash内置的命令功能 -p:     如果后面接的name为外部命令时,才显示完整文件名 -a:     会有path变量定义的路径中,将所有含有name的命令都列出来

Linux学习之touch命令

Linux学习之touch命令 Linux的touch命令一般用来更改文档或目录的日期时间,包括存取时间和更改时间,或者新建一个不存在的文件. 1.命令格式: touch [选项]... 文件... 2.命令参数: -a   或--time=atime或--time=access或--time=use 只更改存取时间. -c   或--no-create 不建立任何文档. -d 使用指定的日期时间,而非现在的时间. -f 此参数将忽略不予处理,仅负责解决BSD版本touch指令的兼容性问题. -

Linux学习之awk命令

一. AWK 说明    awk是一种编程语言,用于在linux/unix下对文本和数据进行处理.数据可以来自标准输入.一个或多个文件,或其它命令的输出.它支持用户自定义函数和动态正则表达式等先进功能,是linux/unix下的一个强大编程工具.它在命令行中使用,但更多是作为脚本来使用. awk的处理文本和数据的方式:它逐行扫描文件,从第一行到最后一行,寻找匹配的特定模式的行,并在这些行上进行你想要的操作.如果没有指定处理动作,则把匹配的行显示到标准输出(屏幕),如果没有指定模式,则所有被操作所

linux 学习2 常用命令

1.显示日期的指令: date 2.   [Tab]按键---具有『命令补全』不『档案补齐』的功能 3:  su和 sudo  su用于用户之间的切换.  su在不加任何参数,默认为切换到root用户; su 加参数 - ,表示默认切换到root用户,并且改变到root用户的环境: sudo用于普通用户可以使用root权限来执行指定命令. sudo : 暂时切换到超级用户模式以执行超级用户权限,提示输入密码时该密码为当前用户的密码,而不是超级账户的密码.不过有时间限制,Ubuntu默认为一次时长

Linux学习笔记——常用命令(二)

++++++++++++++++++++++++++++++文件搜索命令+++++++++++++++++++++++++++++++ 19) 文件搜索:find 语法:find [搜索范围][匹配条件] 选项:-name(根据文件名搜索)     -iname(不区分大小写)     -size(根据文件大小查找\+n -n n)     -user(根据所有者查找) -cmin(根据文件属性修改时间查找) -mmin(根据文件内容修改时间查找)     -amin(根据最近访问时间来查找)

Linux学习之常用命令(二)

1.上次介绍了一些常用的系统命令,这次又总结了一些小命令,故分享一下: 网卡地址查询的命令: ifconfig #不同于Windows系统,它的是ifconfig而不是ipconfig ip -a #同样可以查询ip地址 2.查看系统的内核以及架构内容: uname #用于查询系统版本以及相关信息 先查询它的文档帮助: -a参数表示print all 查看系统的负载数,说句笑话,如果这个数超过5,就会睡不着觉了...,肯定是系统过载了,得想方法解决,否则严重会导致系统崩溃,今天新闻就报道了谷歌和

linux应用之wget命令详解

wget是linux最常用的下载命令, 一般的使用方法是: wget + 空格 + 要下载文件的url路径 例如: # wget linuxsense.org/xxxx/xxx.tar.gz">http://www.linuxsense.org/xxxx/xxx.tar.gz 简单说一下-c参数, 这个也非常常见, 可以断点续传, 如果不小心终止了, 可以继续使用命令接着下载 例如: # wget -c http://www.linuxsense.org/xxxx/xxx.tar.gz 下

Linux学习之nl命令

nl命令在linux系统中用来计算文件中行号.nl 可以将输出的文件内容自动的加上行号!其默认的结果与 cat -n 有点不太一样, nl 可以将行号做比较多的显示设计,包括位数与是否自动补齐 0 等等的功能. 1.命令格式: nl [选项]... [文件]... 2.命令参数: -b  :指定行号指定的方式,主要有两种: -b a :表示不论是否为空行,也同样列出行号(类似 cat -n): -b t :如果有空行,空的那一行不要列出行号(默认值): -n  :列出行号表示的方法,主要有三种:

Linux学习日记(常用命令)

su sudo passwd 重置密码 系统信息 arch 显示机器的处理器架构(1) uname -m 显示机器的处理器架构(2) uname -r 显示正在使用的内核版本 dmidecode -q 显示硬件系统部件 - (SMBIOS / DMI) hdparm -i /dev/hda 罗列一个磁盘的架构特性 hdparm -tT /dev/sda 在磁盘上执行测试性读取操作 cat /proc/cpuinfo 显示CPU info的信息 cat /proc/interrupts 显示中断