Linux 下载利器 wget 命令详解及应用实例

admin 2025年5月18日18:04:52评论4 views字数 6987阅读23分17秒阅读模式

Linux必备下载命令之wget详解

文章目录

  1. wget简介
  2. wget语法
  3. wget选项
  4. wget应用实例
  5. wget拓展实例

wget简介

Linux wget是一个用于命令行下下载文件的工具,对于Linux用户尤其是网络管理员而言必不可少。在处理软件下载或从远程服务器恢复备份到本地服务器等事务时,如果使用虚拟主机,以往需先下载到本地磁盘再用ftp工具上传到服务器,而在Linux VPS环境下,wget可直接下载到服务器。

wget工具体积小但功能完善,具有以下功能和特点:

  1. 支持断点下传:对于网络状况不佳的用户很友好。
  2. 支持FTP和HTTP下载方式:能满足不同场景的下载需求。
  3. 支持代理服务器:适应安全强度高的系统环境。
  4. 设置方便简单:尽管命令行操作对于习惯图形界面的用户可能不太友好,但在设置上有诸多优点。
  5. 程序小且完全免费:避免了软件广告的干扰。

wget是在Linux下开发的开源软件,作者是Hrvoje Niksic,后被移植到包括Windows在内的多个平台。

1. 语法

wget [选项]... [URL]...

2. 选项

启动

选项
描述
-V, --version
显示Wget的版本信息并退出
-h, --help
打印此帮助
-b, --background
启动后转入后台
-e, --execute=命令
运行一个“.wgetrc”风格的命令

日志和输入文件

选项
描述
-d, --debug
打印大量调试信息
-q, --quiet
安静模式(无信息输出)
-a, --append-output=文件
将日志信息添加至文件
-nv, --no-verbose
关闭详尽输出,但不进入安静模式
-o, --output-file=文件
将信息写入文件
-v, --verbose
详尽的输出(此为默认值)
--report-speed=类型
以指定类型报告带宽,类型可以是bits
-i, --input-file=文件
把输入文件当成HTML文件,下载本地或外部文件中的URL
-F, --force-html
解析相对于URL的HTML输入文件链接(与 -i 一起使用)
-B, --base=URL
指定基础URL
--config=文件
指定要使用的配置文件
--no-cookies
不使用cookies
--rejected-log=文件
将拒绝URL的原因写入文件

下载

选项
描述
-t, --tries=数字
设置重试次数(0代表无限制)
-O, --output-document=文件
将文档写入指定文件
--retry-connrefused
即使拒绝连接也重试
-nc, --no-clobber
不要下载已存在将被覆盖的文件
--no-netrc
不尝试从.netrc获取凭据
-C, --continue
断点续传下载文件
--progress=类型
选择进度条类型
--start-pos=偏移量
从由零计数的偏移量开始下载
--show-progress
在任意啰嗦状态下都显示进度条
-N, --timestamping
只获取比本地文件新的文件
--no-if-modified-since
不要在时间戳模式下使用if-条件请求
--no-use-server-timestamps
不用服务器上的时间戳来设置本地文件
-S, --server-response
打印服务器响应
--spider
不下载任何文件,用于测试链接
-T, --timeout=SECONDS
将所有超时设为指定秒数
--dns-timeout=SECS
设置DNS查寻超时为指定秒数
--connect-timeout=SECS
设置连接超时为指定秒数
-w, --wait=SECONDS
等待间隔为指定秒数
--read-timeout=SECS
设置读取超时为指定秒数
-W, --waitretry=SECONDS
在获取文件的重试期间等待指定秒数
--random-wait
获取多个文件时,每次随机等待间隔
--no-proxy
禁止使用代理
-Q, --quota=数字
设置获取配额为指定字节数
--bind-address=ADDRESS
绑定至本地主机上的指定地址(主机名或是IP)
--limit-rate=RATE
限制下载速率为指定速率
--no-dns-cache
关闭DNS查询缓存
--restrict-file-names=系统
限定文件名中的字符为指定系统允许的字符
--ignore-case
匹配文件/目录时忽略大小写
-4, --inet4-only
仅连接至IPv4地址
-6, --inet6-only
仅连接至IPv6地址
--prefer-family=地址族
首先连接至指定家族(IPv6,IPv4或none)的地址
--user=用户
设置ftp和http的用户名
--password=密码
设置ftp和http的密码
--ask-password
提示输入密码
--use-askpass=命令
指定用于请求用户名和密码的凭据管理器
--local-encoding=ENC
使用ENC作为IRI(国际化资源标识符)的本地编码
--remote-encoding=ENC
使用ENC作为默认远程编码
--no-iri
关闭IRI支持
--unlink
覆盖前移除文件
--no-xattr
不要在文件的拓展属性中储存元数据

目录

选项
描述
-nd, --no-directories
不创建目录
-x, --force-directories
强制创建目录
-nH, --no-host-directories
不要创建主(host)目录
--protocol-directories
在目录中使用协议名称
-P, --directory-prefix=前缀
保存文件到指定前缀目录
--cut-dirs=数字
忽略远程目录中指定个目录层

HTTP选项

选项
描述
--http-password=密码
设置http密码
--http-user=用户
设置http用户名
--no-cache
不使用服务器缓存的数据
--default-page=NAME
改变默认页(通常是“index.html”)
-E, --adjust-extension
以合适的扩展名保存HTML/CSS文档
--ignore-length
忽略头部的‘Content-Length’区域
--header=字符串
在头部插入指定字符串
--max-redirect
每页所允许的最大重定向
--proxy-password=密码
使用指定密码作为代理密码
--save-headers
将HTTP头保存至文件
--proxy-user=用户
使用指定用户作为代理用户名
--referer=URL
在HTTP请求头包含‘Referer: URL’
-U, --user-agent=代理
标识自己为指定代理而不是Wget/VERSION
--no-http-keep-alive
禁用HTTP keep-alive(持久连接)
--no-cookies
不使用cookies
--keep-session-cookies
载入并保存会话(非永久)cookies
--load-cookies=文件
会话开始前从指定文件中载入cookies
--save-cookies=文件
会话结束后保存cookies至指定文件
--post-data=字符串
使用POST方式,把指定字串作为数据发送
--post-file=文件
使用POST方式,发送指定文件内容
--method=HTTP方法
在请求中使用指定的HTTP方法
--content-disposition
当选择本地文件名时允许Content-头部(实验中)
--content-on-error
在服务器错误时输出接收到的内容
--auth-no-challenge
不先等待服务器询问就发送基本HTTP验证信息

HTTPS (SSL/TLS)选项

选项
描述
--secure-protocol=PR
选择安全协议,可选值有auto, SSLv2, SSLv3, TLSv1, TLSv1_1, TLSv1_2等
--https-only
只跟随安全的HTTPS链接
--no-check-certificate
不要验证服务器的证书
--certificate=文件
客户端证书文件
--certificate-type=类型
客户端证书类型,PEM或DER
--private-key=文件
私钥文件
--ca-certificate=文件
带有一组CA证书的文件
--private-key-type=类型
私钥文件类型,PEM或DER
--ca-directory=DIR
保存CA证书的哈希列表的目录
--pinnedpubkey=文件/散列值
用于验证节点的公钥(PEM/DER)文件或码、任何数量的sha256散列值,以base64编码
--random-file=文件
用于初始化SSL伪随机数生成器(PRNG)的文件

HSTS选项

选项
描述
--no-hsts
禁用HSTS
--hsts-file
数据库路径(将覆盖默认值)

FTP选项

选项
描述
--ftp-user=用户
设置ftp用户名
--ftp-password=密码
设置ftp密码
--no-remove-listing
不要删除‘.listing’文件
--no-passive-ftp
禁用“passive”传输模式
--preserve-permissions
保留远程文件的权限
--retr-symlinks
递归目录时,获取链接的文件(而非目录)

FTPS选项

选项
描述
--ftps-implicit
使用隐式FTPS(默认端口990)
--ftps-clear-data-connection
只加密控制信道;数据传输使用明文
--ftps-fallback-to-ftp
回落到FTP,如果目标服务器不支持FTPS
--ftps-resume-ssl
打开数据连接时继续控制连接中的SSL/TLS

WARC选项

选项
描述
--warc-header=字符串
在头部插入指定字符串
--warc-max-size=数字
将WARC的最大尺寸设置为指定数字
--warc-file=文件名
在一个.warc.gz文件里保持请求/响应数据
--no-glob
不在FTP文件名中使用通配符展开
--warc-cdx
写入CDX索引文件
--warc-dedup=文件名
不要记录列在此CDX文件内的记录
--no-warc-digests
不要计算SHA1摘要
--no-warc-keep-log
不要在WARC记录中存储日志文件
--warc-tempdir=目录
WARC写入器的临时文件目录

递归下载

选项
描述
-r, --recursive
指定递归下载
-l, --level=数字
最大递归深度(inf或0代表无限制,即全部下载)
--delete-after
下载完成后删除本地文件
-k, --convert-links
让下载得到的HTML或CSS中的链接指向本地文件
--convert-file-only
只转换URL的文件部分(一般叫做“基础文件名”)
--backups=N
写入文件X前,轮换移动最多N个备份文件
-K, --backup-converted
在转换文件X前先将它备份为X.orig
-m, --mirror
-N -r -l inf --no-remove-listing的缩写形式,用于镜像站点
-p, --page-requisites
下载所有用于显示HTML页面的图片之类的元素
--strict-comments
用严格方式(SGML)处理HTML注释

递归接受/拒绝

选项
描述
-A, --accept=列表
逗号分隔的可接受的扩展名列表
-R, --reject=列表
逗号分隔的要拒绝的扩展名列表
--reject-regex=REGEX
匹配拒绝的URL的正则表达式
--accept-regex=REGEX
匹配接受的URL的正则表达式
--regex-type=类型
正则类型(posix
-D, --domains=列表
逗号分隔的可接受的域名列表
--exclude-domains=列表
逗号分隔的要拒绝的域名列表
--follow-tags=列表
逗号分隔的跟踪的HTML标识列表
--follow-ftp
跟踪HTML文档中的FTP链接
--ignore-tags=列表
逗号分隔的忽略的HTML标识列表
-H, --span-hosts
递归时转向外部主机
-I, --include-directories=列表
允许目录的列表
-L, --relative
仅跟踪相对链接
-X, --exclude-directories=列表
排除目录的列表
--trust-server-names
使用重定向URL的最后一段作为本地文件名
-np, --no-parent
不追溯至父目录

3. 实例

  1. 使用wget下载单个文件:从网络下载一个文件并保存在当前目录,例如:wget http://cn.wordpress.org/wordpress-3.1-zh_CN.zip ,下载过程中会显示进度条。
  2. 使用wget -O下载并以不同的文件名保存:wget默认以链接中最后一个符合“/”后面的字符命名,可能导致文件名不正确。可使用 -O参数指定文件名,如:wget -O wordpress.zip http://www.centos.bz/download.php?id=1080
  3. 使用wget –limit -rate限速下载:当下载大文件且还需下载其他文件时,可限速下载,例如:wget –limit-rate=300k http://cn.wordpress.org/wordpress-3.1-zh_CN.zip
  4. 使用wget -c断点续传:下载大文件中断时,使用 -c参数可继续下载,如:wget -c http://cn.wordpress.org/wordpress-3.1-zh_CN.zip
  5. 使用wget -b后台下载:下载大文件时可使用 -b参数进行后台下载,如:wget -b http://cn.wordpress.org/wordpress-3.1-zh_CN.zip ,可通过tail -f wget-log查看下载进度。
  6. 伪装代理名称下载:有些网站会根据代理名称拒绝下载请求,可使用–user-agent参数伪装,如:wget –user-agent=”Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/534.16 (KHTML, like Gecko) Chrome/10.0.648.204 Safari/534.16″ [下载链接]
  7. 使用wget –spider测试下载链接:在定时下载前或检测网站可用性、检查死链接时,可使用–spider参数,如:wget –spider URL ,链接正确会显示相关成功信息,链接错误则显示错误信息。
  8. 使用wget –tries增加重试次数:wget默认重试20次连接下载文件,可使用–tries增加重试次数,如:wget –tries=40 URL
  9. 使用wget -i下载多个文件:先保存下载链接文件,如:
cat > filelist.txt 
url1 
url2 
url3 
url4 

然后使用wget -i filelist.txt下载。 10. 使用wget –mirror镜像网站:下载整个网站到本地,例如:wget –mirror -p –convert-links -P ./LOCAL URL ,其中–miror开启镜像下载,-p下载所有为了html页面显示正常的文件,–convert-links下载后转换成本地的链接,-P ./LOCAL保存所有文件和目录到本地指定目录。 11. 使用wget –reject过滤指定格式下载:不想下载网站中的图片时,可使用:wget –reject=gif url 12. 使用wget -o把下载信息存入日志文件:不想让下载信息直接显示在终端,可使用:wget -o download.log URL 13. 使用wget -Q限制总下载文件大小:限制递归下载文件总大小,如:wget -Q5m -i filelist.txt ,该参数对单个文件下载不起作用。 14. 使用wget -r -A下载指定格式文件:可用于下载网站的指定格式文件,如下载所有PDF文件:wget -r -A.pdf url 15. 使用wget FTP下载:匿名ftp下载:wget ftp-url ;用户名和密码认证的ftp下载:wget –ftp-user=USERNAME –ftp-password=PASSWORD url

拓展功能

  1. 下载整个http或者ftp站点:wget http://place.your.url/here可下载首页;wget -r http://place.your.url/here会递归下载整个网站,使用时需谨慎,可通过-l number指定下载层次;制作镜像站点可使用-m参数,如:wget -m http://place.your.url/here 。
  2. 断点续传:使用 -c参数实现断点续传,如:wget -c http://the.url.of/incomplete/file ,-t参数设置重试次数,-T参数设置超时等待时间。
  3. 批量下载:生成包含多个URL的文件,如download.txt,使用wget -i download.txt下载文件中的所有URL。
  4. 选择性的下载:通过–reject=LIST忽略指定类型文件,–accept=LIST指定接受的文件类型,如

原文始发于微信公众号(土拨鼠的安全屋):Linux 下载利器 wget 命令详解及应用实例

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2025年5月18日18:04:52
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   Linux 下载利器 wget 命令详解及应用实例https://cn-sec.com/archives/4077112.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息