本文是因为(笔者使用的windows系统)使用过好几次wget后,始终存在各种细节问题,于是下定决定细致的研究一下,并记录下其中细节。

下载与安装

第一步:下载wget,网络地址:http://downloads.sourceforge.net/gnuwin32/wget-1.11.4-1-setup.exe(这个地址传播较广,可自行搜索)

第二步:执行wget.exe安装文件,TIPS:网络上说的不能安装在C盘programes files文件夹,经笔者测试不受影响,所以可以任意选择安装位置。

第三步:找到安装后wget.exe文件所在位置,笔者在:C:\Program Files\GnuWin32\bin,将GNU_HOME = C:\Program Files\GnuWin32\bin添加到系统环境变量中,并在系统变量中再加入;%GNU_HOME%\bin(前面分号是为了隔离前面添加的变量的),而非用户环境变量,如图红框所示:

命令详解及测试

我们从最基本的开始一点点进行学习。

1.-V,--version 显示软件版本号,也可使用长参数--version,以下同,结果如下:

2.-h,--help显示软件帮助信息,可查看所有命令及使用简介,结果如图:

3.-e,--execute=COMMAND 执行一个 “.wgetrc”命令,.wgetrc命令其实是一个参数列表,wgetrc格式参见/etc/wgetrc或~/.wgetrc,直接将软件需要的参数写在一起,这个列表在C:\Program Files\GnuWin32\etc底下,这是笔者本地路径,wgetrc文件命令都是注释状态,如果要使用需先取消注释。举例为wget -e robots=off URL等同于wget --execute=robots=off URL。参考:http://www.cnblogs.com/HappyThree/archive/2013/02/04/2892413.html。wget默认会根据网站的robots.txt进行操作,使用-e robots=off参数即可绕过该限制;

4.-o,--output-file=FILE 将软件输出信息保存到文件,你不希望下载信息直接显示在终端而是在一个日志文件,可以使用该命令:
wget -o download.log URL,等同于wget --output-file=download.log URL

5.-a,--append-output=FILE将软件输出信息追加到文件,结果如下:

6.-d,--debug显示输出信息;

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

8.-i,--input-file=FILE 从文件中取得URL,下载filelist.txt中所包含的链接的所有文件,wget -i filelist.txt,本地须有一个链接列表,必须含如http,http是这样的协议头,不然不识别,最终执行结果如下,会逐行读取文件:

9.-np, --no-parent,不追溯至父目录。

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

11.-O --output-document=FILE 指定下载目录和文件名;

12.-nc, --no-clobber 不要覆盖已经存在的文件;当文件存在时会提示:File 'index.html' already there;not retrieving.

13.-N,--timestamping只下载比本地新的文件;

14.-T,--timeout=SECONDS 设置超时时间;

15.-Y,--proxy=on/off 关闭代理;

16.-nd --no-directories 不建立目录,若下载全站,该值不设置会默认建立以域名为名字的目录,指定则不建立目录;使用-x会强制建立服务器上一模一样的目录,如果使用-nd参数,那么服务器上下载的所有内容都会加到本地当前目录。

17.-x,--force-directories 强制建立目录,即便一个文件也会强制建立目录;

18.HTTP参数设置一些与HTTP下载有关的属性。

--http-user=USER设置HTTP用户
--http-passwd=PASS设置HTTP密码
--proxy-user=USER设置代理用户
--proxy-passwd=PASS设置代理密码

19.-r,--recursive 下载整个网站、目录(小心使用),防止陷入死循环,也即跟踪链接到外部网站去。

20.-l,--level=NUMBER 下载层次,防止无限循环,得在知道层次的情况下,否则可能遗漏文件:

21.-A,--accept=LIST 可以接受的文件类型,可以接受逗号;

22.-R,--reject=LIST拒绝接受的文件类型,跟上面正好相反,可以接受逗号;

23.-D,--domains=LIST可以接受的域名,用逗号分隔;

24.--exclude-domains=LIST拒绝的域名,用逗号分隔,与23相反;

25.-L,--relative 下载关联链接,指定关联的其他链接,防止无限递归。

26.--follow-ftp 只下载FTP链接,特殊需求;

27.-H,--span-hosts 可以下载外面的主机,指定对外面主机是否下载。

28.-I,--include-directories=LIST允许的目录,在知道目录结构的前提下设置可以下载的。

29.-X,--exclude-directories=LIST 拒绝的目录,在知道目录结构的前提下设置不可以下载的。
30.wget可以使用用户设置文件".wgetrc"来读取很多设置,我们这里主要利用这个文件来是设置代理服务器。使用者用什么用户登录,那么什么用户主目录下的".wgetrc"文件就起作用。例如,"root"用户如果想使用".wgetrc"来设置代理服务器,"/root/.wgetrc"就起作用,下面给出一个".wgetrc"文件的内容,读者可以参照这个例子来编写自己的"wgetrc"文件:http-proxy = 111.111.111.111:8080  ftp-proxy = 111.111.111.111:8080。这两行的含义是,代理服务器IP地址为:111.111.111.111,端口号为:8080。第一行指定HTTP协议所使用的代理服务器,第二行指定FTP协议所使用的代理服务器。
31.-b, --background 启动后转入后台执行;
32.-v, --verbose 冗长模式(这是缺省设置),-nv, --non-verbose 关掉冗长模式,但不是安静模式;(下图第一个为冗长模式,也即默认;第二个为nv模式,很明显显示信息少的多了)

33.-F, --force-html 把输入文件当作HTML格式文件对待;

34.-B, --base=URL 将URL作为在-F -i参数指定的文件中出现的相对链接的前缀,意思是需要下载的目标文件中间所含的相对路径文件。

35.以下三个暂做记录,应该不太常用。

--sslcertfile=FILE 可选客户端证书
--sslcertkey=KEYFILE 可选客户端证书的KEYFILE
--egd-file=FILE 指定EGD socket的文件名

36.--bind-address=ADDRESS 指定本地使用地址(主机名或IP,当本地有多个IP或名字时使用),本地地址可通过ipconfig /all在控制台查看:

37.-c, --continue 接着下载没下载完的文件,断点续传;

38.--progress=TYPE 设定进程条标记,选择下载进度条的形式,合法的type有“dot”和“bar”(默认)两种;

39.-S, --server-response打印服务器的回应;

中断cmd正在执行的任务:按 Ctrl+C,退出cmd:exit

40.--spider 不下载任何东西;

41.-w, --wait=SECONDS 两次尝试之间间隔SECONDS秒;

42.--waitretry=SECONDS 在重新链接之间等待1...SECONDS秒;

43.--random-wait 在下载之间等待0...2*WAIT秒;

44.-Q, --quota=NUMBER 设置下载的容量限制;

45.--limit-rate=RATE 限定下载速率
46.-nH, --no-host-directories 不创建主机目录;
默认创建主机目录如下:
47.-P, --directory-prefix=PREFIX 将文件保存到目录 PREFIX/...,也即指定本地保存目录;
48.--cut-dirs=NUMBER 忽略 NUMBER层远程目录,指定远程目录多少层不下载;
49.-C, --cache=on/off 允许/不允许服务器端的数据缓存(一般情况下允许);
50.-E, --html-extension 将所有text/html文档以.html扩展名保存,对下载的文件进行扩展名强制指定,比如远程是.htm的,本地指定为.html;
51.--ignore-length 忽略 `Content-Length'头域,Content-length:用于描述HTTP消息实体的传输长度;
52.--header=STRING 在headers中插入字符串 STRING;
53.--referer=URL 在HTTP请求中包含 `Referer: URL'头;
54.-s, --save-headers 保存HTTP头到文件;

55.-U, --user-agent=AGENT 设定代理的名称为 AGENT而不是 Wget/VERSION;

56.--no-http-keep-alive 关闭 HTTP活动链接 (永远链接);

57.--cookies=off 不使用 cookies;--load-cookies=FILE 在开始会话前从文件 FILE中加载cookie;--save-cookies=FILE 在会话结束后将 cookies保存到 FILE文件中

58.FTP 选项:

-nr, --dont-remove-listing 不移走 `.listing'文件
-g, --glob=on/off 打开或关闭文件名的 globbing机制
--passive-ftp 使用被动传输模式 (缺省值).
--active-ftp 使用主动传输模式
--retr-symlinks 在递归的时候,将链接指向文件(而不是目录)
59.--delete-after 在完毕后局部删除文件;
60.-k, --convert-links 转换非相对链接为相对链接;
61.-K, --backup-converted 在转换文件X之前,将之备份为 X.orig;

62.-m, --mirror 等价于 -r -N -l inf -nr;

63.-p, --page-requisites 下载显示HTML文件的所有图片;

命令好多,63个,逐一测试了一遍。留个印象,使用的时候,随用随看随取就好了。中文手册:http://dwz.cn/4QH6aM

好用的wget命令从下载添加环境变量到各参数详解的更多相关文章

  1. windows下命令行终端使用rz上传文件参数详解

    rz命令: (X) = option applies to XMODEM only (Y) = option applies to YMODEM only (Z) = option applies t ...

  2. Windows的命令行查看,修改,删除,添加环境变量

    查看当前所有可用的环境变量:输入 set 即可查看. 显示某环境变量: 例如:echo %SystemDrive% 类似linux下面的echo $PATH这种用法. 首先明确一点:所有的在cmd命令 ...

  3. linux命令(11)下查看和添加环境变量

    &PATH:决定了shell将到哪些目录中去寻找命令或者程序,PATH值是一系列的目录,当你要运行一个程序时,Linux在这些目录下进行搜寻编译链接. 编辑PATH 声明,其格式为: PATH ...

  4. Windows 如何在cmd命令行中查看、修改、删除与添加环境变量

    转自:http://www.cnblogs.com/saptechnique/archive/2013/02/17/2914222.html 首先明确一点: 所有的在cmd命令行下对环境变量的修改只对 ...

  5. 使用setx 命令添加环境变量(Windows)

    背景 用GUI的方法可能添加环境变量可能会比较麻烦,为此可采用命令行操作的方式. 步骤 以管理员身份运行 cmd 输入 setx /M "%path%" "%path%[ ...

  6. 如何在cmd命令行中查看、修改、删除与添加环境变量,语法格式例子:set path;echo %APPDATA%

    如何在cmd命令行中查看.修改.删除与添加环境变量 首先明确一点: 所有的在cmd命令行下对环境变量的修改只对当前窗口有效,不是永久性的修改.也就是说当关闭此cmd命令行窗口后,将不再起作用.永久性修 ...

  7. jenkins添加环境变量 ,win 10的 环境变量如下,win7 就是不加也可以运行,不报 “python 不是内部命令 ” 的错误。

    jenkins 添加win 10的 环境变量如下,win7 就是不加也可以运行,不报 “python 不是内部命令 ” 的错误,暂时不知道怎么回事.    jenkins这样添加环境变量 .

  8. 命令行输入Jmeter提示不是内部或外部命令,处理方式:添加环境变量

    命令行输入Jmeter提示不是内部或外部命令,需要在环境变量path中添加jmeter的bin目录绝对路径 我的电脑 > 右击 >属性 > 高级系统变量 > 环境变量 > ...

  9. linux命令(11)环境变量:查看和添加环境变量

    linux 环境变量系统: 系统级别:/etc/profile./etc/bashrc/ ./etc/environment 用户级别:~/.profile.~/.bashrc. ~/.bash_pr ...

随机推荐

  1. JAVA调用R

    JAVA很适合开发应用系统,但是数学建模和计算能力非其所长,如果该系统需要进行大量的统计或者优化的计算,调用R是一种很好的方式.JAVA负责系统的构建,R用来做运算引擎,从而实现应用型和分析性相结合的 ...

  2. HTML5学习总结——canvas绘制象棋(canvas绘图)

    一.HTML5学习总结——canvas绘制象棋 1.第一次:canvas绘制象棋(笨方法)示例代码: <!DOCTYPE html> <html> <head> & ...

  3. win10 下visual studio 2015 在调试模式下不能跟踪源文件

    win10 下visual studio 2015 在调试模式下不能跟踪源文件,只要一调试就会关闭(隐藏)打开的文档,非常不方便.经过一番折腾,发现是配置的问题. 如果安装多个版本的VS,请删除对应版 ...

  4. 从DOM操作看Vue&React的前端组件化,顺带补齐React的demo

    前言 接上文:谈谈我对前端组件化中“组件”的理解,顺带写个Vue与React的demo 上次写完博客后,有朋友反应第一内容有点深,看着迷迷糊糊:第二是感觉没什么使用场景,太过业务化,还不如直接写Vue ...

  5. Javascript高性能编程-提高数据访问速度

         hasOwnProperty()仅检索实例不检索原型,in即检索实例,又检索原型      成员嵌套越深,访问速度越慢,只在必要的情况下使用对象成员.      如果在同一个函数中你要多次读 ...

  6. CSS3写折纸

    <!DOCTYPE HTML> <html> <head> <meta http-equiv="Content-Type" content ...

  7. 用 Excel 测试“绘制两点间连线”的算法

    最近在研究和制作数字示波器,其中涉及一个小算法:需要将 ADC 采样的数值在 TFT LCD 屏幕上面显示并且用“线”连接起来. ADC 按照时序对输入电压采样后,记录的是一个个的数值,如果显示的时候 ...

  8. 一步步实现ABAP后台导入EXCEL到数据库【1】

    在SAP的应用当中,导入.导出EXCEL文件的情况是一个常见的需求,有时候用户需要将大量数据定期导入到SAP的数据库中.这种情况下,使用导入程序在前台导入可能要花费不少的时间,如果能安排导入程序为后台 ...

  9. web.xml 配置中classpath: 与classpath*:的区别

    首先 classpath是指 WEB-INF文件夹下的classes目录 解释classes含义: 1.存放各种资源配置文件 eg.init.properties log4j.properties s ...

  10. C#语言基础——函数

    函数一个较大的程序一般应分为若干个程序块,每一个模块用来实现一个特定的功能.所有的高级语言中都有子程序这个概念,用子程序实现模块的功能.在C#语言中,子程序的作用是由一个主函数和若干个函数构成.由主函 ...