Linux- 系统随你玩之--玩出花活的命令浏览器上

news2025/7/9 17:30:01

在这里插入图片描述

文章目录

  • 1、背景
  • 2、命令浏览器
    • 2.1、命令浏览器介绍
    • 2.2、特点
    • 2.3 常用功能选项
  • 3、实操
    • 3.1、使用 wget 下载文件
    • 3.2、 断点续传
    • 3.3、镜像整个站点
  • 4、 总结

1、背景

一位友人说他有台服务器,需要下载一个文件,但是没有视窗界面与下载工具,怎么办。
很多有经验的人可能已经有答案了,我与他讲过后,他会心的笑了,是的他下载成功了。

2、命令浏览器

看到这章节对应名称大家可能有疑问,什么是命令浏览器?我们都是用看的见的视窗浏览器比如 chrome、360、IE 等等浏览器。好了我来揭晓答案,今天的主角就是wget。

2.1、命令浏览器介绍

wget: “wget” 这个名称来源于 “World Wide Web” 与 “get” 的结合。

它是一个从网络上自动下载文件的自由工具,支持通过 HTTP、HTTPS、FTP 三个最常见的 TCP/IP协议 下载,并可以使用 HTTP 代理。
它的最大特色是自动下载, wget 可以在当前登录用户退出系统后还继续后台执行,直到下载任务完成。

2.2、特点

wget命令用来从指定的URL下载文件。wget非常稳定,它在带宽很窄的情况下和不稳定网络中有很强的适应性,如果是由于网络的原因下载失败,wget会不断的尝试,直到整个文件下载完毕。如果是服务器打断下载过程,它会再次联到服务器上从停止的地方继续下载。
这对从那些限定了链接时间的服务器上下载大文件非常有用。
wget体积小巧但功能完善,从上面可以看出它支持断点下载功能,同时支持FTP和HTTP下载方式,支持代理服务器和设置起来也方便简单。

从特点上看与我们一般的下载工具类似了,这么好我们需要用到 wget 指令可能会面临两个问题。

第一个是获取文件的下载 url
你可以在浏览器上找到要下载文件的链接地址,然后右键 -> 复制链接地址,既可获取该文件的下载 url。
第二个是在下载一些文件时,需要通过认证才可以下载,
如开发需要用的的JAVA JDK在Oracle的官网上下载JDK,需要登录之后才可以下载。 在这种情况下,我们需要先登录通过认证,再通过已经开始下载的文件获取文件的下载 url。

2.3 常用功能选项

wget命令的一般格式:

wget [options] [url]

wget [参数选项]

-V, --version 显示wget的版本后退出
-h, --help 打印语法帮助
-b, --background 启动后转入后台执行
-e, --execute=COMMAND 执行`.wgetrc’格式的命令,wgetrc格式参见/etc/wgetrc或~/.wgetrc
文件参数—记录和输入文件(定义软件log文件的输出方式等
-o, --output-file=FILE 把记录写到FILE文件中
-a, --append-output=FILE 把记录追加到FILE文件中
-d, --debug 打印调试输出
-q, --quiet 安静模式(没有输出)
-v, --verbose 冗长模式(这是缺省设置)
-nv, --non-verbose 关掉冗长模式,但不是安静模式
-i, --input-file=FILE 下载在FILE文件中出现的URLs
-F, --force-html 把输入文件当作HTML格式文件对待
-B, --base=URL 将URL作为在-F -i参数指定的文件中出现的相对链接的前缀
    --sslcertfile=FILE 可选客户端证书
    --sslcertkey=KEYFILE 可选客户端证书的KEYFILE
    --egd-file=FILE 指定EGD socket的文件名
下载参数—下载参数定义下载重复次数、保存文件名等
    --bind-address=ADDRESS 指定本地使用地址(主机名或IP,当本地有多个IP或名字时使用)
-t, --tries=NUMBER 设定最大尝试链接次数(0 表示无限制).
-O --output-document=FILE 把文档写到FILE文件中
-nc, --no-clobber 不要覆盖存在的文件或使用.#前缀
-c, --continue 接着下载没下载完的文件
   --progress=TYPE 设定进程条标记
-N, --timestamping 不要重新下载文件除非比本地文件新
-S, --server-response 打印服务器的回应
  --spider 不下载任何东西
-T, --timeout=SECONDS 设定响应超时的秒数
-w, --wait=SECONDS 两次尝试之间间隔SECONDS秒
   --waitretry=SECONDS 在重新链接之间等待1…SECONDS秒
   --random-wait 在下载之间等待0…2*WAIT秒
-Y, --proxy=on/off 打开或关闭代理
-Q, --quota=NUMBER 设置下载的容量限制
  --limit-rate=RATE 限定下载输率
目录参数(主要设置下载文件保存目录与原来文件(服务器文件)的目录对应关系)
-nd   --no-directories 不创建目录
-x,   --force-directories 强制创建目录
-nH, --no-host-directories 不创建主机目录
-P,   --directory-prefix=PREFIX 将文件保存到目录 PREFIX/…
    --cut-dirs=NUMBER 忽略 NUMBER层远程目录

  • HTTP参数 设(置一些与HTTP下载有关的属性)
      --http-user=USER 设定HTTP用户名为 USER.
      --http-passwd=PASS 设定http密码为 PASS.
    -C, --cache=on/off 允许/不允许服务器端的数据缓存 (一般情况下允许).
    -E, --html-extension 将所有text/html文档以.html扩展名保存
      --ignore-length 忽略 Content-Length头域
       --header=STRING 在headers中插入字符串 STRING
      --proxy-user=USER 设定代理的用户名为 USER
      --proxy-passwd=PASS 设定代理的密码为 PASS
      --referer=URL 在HTTP请求中包含 `Referer: URL’头
    -s, --save-headers 保存HTTP头到文件
    -U, --user-agent=AGENT 设定代理的名称为 AGENT而不是 Wget/VERSION.
       --no-http-keep-alive 关闭 HTTP活动链接 (永远链接).
       --cookies=off 不使用 cookies.
      --load-cookies=FILE 在开始会话前从文件 FILE中加载cookie
      --save-cookies=FILE 在会话结束后将 cookies保存到 FILE文件中
  • FTP 选项
    -nr, --dont-remove-listing 不移走 `.listing’文件
    -g, --glob=on/off 打开或关闭文件名的 globbing机制
       --passive-ftp 使用被动传输模式 (缺省值).
       --active-ftp 使用主动传输模式
       --retr-symlinks 在递归的时候,将链接指向文件(而不是目录)
  • 递归下载 (在下载一个网站或者网站的一个目录的时候,我们需要知道的下载的层次,这些参数就可以设置。)
    -r, --recursive 递归下载--慎用!
    -l, --level=NUMBER 最大递归深度 (inf 或 0 代表无穷).
       --delete-after 在现在完毕后局部删除文件
    -k, --convert-links 转换非相对链接为相对链接
    -K, --backup-converted 在转换文件X之前,将之备份为 X.orig
    -m, --mirror 等价于 -r -N -l inf -nr.
    -p, --page-requisites 下载显示HTML文件的所有图片
  • 递归下载中的包含和不包含(accept/reject)
    -A, --accept=LIST 分号分隔的被接受扩展名的列表
    -R, --reject=LIST 分号分隔的不被接受的扩展名的列表
    -D, --domains=LIST 分号分隔的被接受域的列表
       --exclude-domains=LIST 分号分隔的不被接受的域的列表
       --follow-ftp 跟踪HTML文档中的FTP链接
       --follow-tags=LIST 分号分隔的被跟踪的HTML标签的列表
    -G, --ignore-tags=LIST 分号分隔的被忽略的HTML标签的列表
    -H, --span-hosts 当递归时转到外部主机
    -L, --relative 仅仅跟踪相对链接
    -I, --include-directories=LIST 允许目录的列表
    -X, --exclude-directories=LIST 不被包含目录的列表
    -np, --no-parent 不要追溯到父目录

3、实操

3.1、使用 wget 下载文件

  1. wget 命令可以用来下载指定链接的文件。
    默认情况下,下载的文件将保存到当前工作目录中的同名文件中。

wget https://lupic.cdn.bcebos.com/20191111/2007104348%2318.jpg

在这里插入图片描述
2. 如果不想保存在本地,而只是想标准输出(stdout)里,可以使用 --output-document 选项,同时后面再跟上一个 - 号。
wget https://lupic.cdn.bcebos.com/20191111/2007104348%2318.jpg --output-document
在这里插入图片描述
3. 如果你想给下载的文件重新命名,那么可以使用 --output-document 选项(或者更简便,直接使用 -O 即可):

$ wget https://lupic.cdn.bcebos.com/20191111/2007104348%2318.jpg
–output-document newfile.jpg

  1. 下载一系列文件
    如果你要下载的是很多个小文件,那么 wget 命令也可以帮你轻松实现。
    但是,这里还需要使用一些 bash 语法来实现目的。
    一般来讲,这些文件的名称都有一定的规律,比如:2007_1.txt,2007_2.txt,2007_3.txt,等等,那么你就需要使用类似这样的命令:

wget http://lupic.cdn.bcebos.com/20191111/2007_{1..4}.txt

3.2、 断点续传

我们经常遇到要下载文件非常大,因为网络的原因有可能出现一次性无法下载完全的情况。
这种情况下如果每次都要重新下载,那么都不知道要下载到猴年马月。
这时我们就可以使用 --continue 选项(或者 -c )来实现断点续传,而不需要重新进行下载。

3.3、镜像整个站点

我们有时候也会遇到想对某个网站进行整个站点下载,包括其目录结构的情况,怎么办了?
放心也是有办法的,这时候就需要用到 wget的 --mirror 参数选项了。
这个选项等同于 --recursive --level inf --timestamping --no-remove-listing,
从参数选项中看这意味着它是无限递归的,因此你可以下载到指定域上的所有内容。
如果你想使用 wget 存档站点,这个时候可以使用选项 --no-cookies --page-requisites --convert-links 也可用于确保每个页面都是最新的、最完整的。

4、 总结

使用wget 命令来实现类似浏览器上的功能还是很方便的。今天讲了很多了,我们把有关它的内容留在下一篇内容上讲吧。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/406309.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Cobalt Strike----(1)

团队服务器 Cobalt Strike 分为客户端组件和服务器组件。服务器组件,也就是团队服务器,是Beacon payload 的控制器,也是 Cobalt Strike 社会工程功能的托管主机。团队服务器还存储由Cobalt Strike 收集的数据,并管理日志记录。Cob…

猿创征文|【Typescript】搭建TS的编译环境

🍳作者:贤蛋大眼萌,一名很普通但不想普通的程序媛\color{#FF0000}{贤蛋 大眼萌 ,一名很普通但不想普通的程序媛}贤蛋大眼萌,一名很普通但不想普通的程序媛🤳 🙊语录:多一些不为什么的…

vue修改 el-input 输入框默认背景色

vue修改 el-input 输入框默认背景色 实际项目需要修改默认的 输入框背景色 &#xff0c;因为原本的默认框背景色设置属性 :disabledtrue 之后显示不是很清晰&#xff0c;所以需要配置相应的规则 原本的不能修改的输入样式&#xff0c;显示的不是很清晰 加上样式之后的效果 <…

自学黑客,一般人我劝你还是算了吧

写在开篇 笔者本人 17 年就读于一所普通的本科学校&#xff0c;20 年 6 月在三年经验的时候顺利通过校招实习面试进入大厂&#xff0c;现就职于某大厂安全联合实验室。 我为啥说自学黑客&#xff0c;一般人我还是劝你算了吧。因为我就是那个不一般的人。 首先我谈下对黑客&…

十大经典排序算法(上)

目录 1.1冒泡排序 1. 算法步骤 3.什么时候最快 4. 什么时候最慢 5.代码实现 1.2选择排序 1. 算法步骤 2. 动图演示 3.代码实现 1.3 插入排序 1. 算法步骤 2. 动图演示 3. 算法实现 1.4 希尔排序 1. 算法步骤 2. 动图演示 3.代码实现 1.5 归并排序 1. 算法步骤 2…

Android: 彻底搞懂Lifecycle——使用篇

系列文章目录 第一章 Android: 彻底搞懂Lifecycle——使用篇 第二章 Android: 彻底搞懂Lifcycle——原理篇 文章目录系列文章目录前言一、Lifecycle是什么&#xff1f;1. 应用场景2. 示例二、Lifecycle使用1. 泳&#xff08;用&#xff09;裤&#xff08;库&#xff09;第一步…

PyQt5(一) PyQt5安装及配置,从文件夹读取图片并显示,模拟生成素描图像

目录 一、环境配置 1.1 安装PyQt5 1.2 安装Qt工具包 1.3 配置环境变量 1.4 测试PyQt5 1.5 配置PyCharm 二、QtDesigner 窗口简单介绍 2.1 初始界面 2.2 控件介绍 三、相关函数 3.1 读取文件函数 3.1.1 打开本地图片 3.1.2 保存图片到本地 3.1.3 打开文件夹 3.1.4 打…

微信小程序|基于小程序+C#制作一个考试答题小程序

基于小程序+C#制作一个考试答题小程序打破传统线下考试答题的边界线问题,使考试不用再局限与某个统一的场所,只要有设备,哪里都能考试。 一、小程序

【动态规划】最长上升子序列、最大子数组和题解及代码实现

Halo&#xff0c;这里是Ppeua。平时主要更新C语言&#xff0c;C&#xff0c;数据结构算法......感兴趣就关注我吧&#xff01;你定不会失望。 &#x1f308;个人主页&#xff1a;主页链接 &#x1f308;算法专栏&#xff1a;专栏链接 我会一直往里填充内容哒&#xff01; &…

功能测试用例多次录制后,我丢掉了selenium,选择龙测AI-TestOps云平台

目录一、如何使用龙测AI-TestOps云平台1、进入龙测AI-TestOps云平台2、新建项目3、新建流程图4、创建任务5、查看任务状态6、查看报告、图片7、下载流程图、测试报告、excel用例二、龙测AI-TestOps云平台AI功能介绍1、NLP2、视频AI转流程图三、总结功能测试用例多次录制后&…

写着简单跑得又快的数据库语言 SPL

数据库语言的目标SQL为什么不行SPL为什么能行 数据库语言的目标 要说清这个目标&#xff0c;先要理解数据库是做什么的。 数据库这个软件&#xff0c;名字中有个“库”字&#xff0c;会让人觉得它主要是为了存储的。其实不然&#xff0c;数据库实现的重要功能有两条&#xf…

【微信小程序】按钮还能这样用?

目录 &#x1f353;button 按钮的基本使用 &#x1f349;各种神奇的按钮 &#x1f353;button 按钮的基本使用 按钮组件 功能比 HTML 中的 button 按钮丰富 通过 open-type 属性可以调用微信提供的各种功能&#xff08;客服、转发、获取用户授权、获取用户信息等&#xff09;…

占有统治地位的Transformer究竟是什么

讲个有趣的小故事我高二那年从乙班考入了甲班&#xff0c;对于那时的我 偏科英语最高只有108班级平均英语成绩125暴躁难为人女英语老师&#xff0c;使我上英语课时战战兢兢。英语老师很时尚&#xff0c;喜欢搞花里胡哨的词语让我们放松&#xff0c;也很尊重我虽然暴躁但维护着我…

前端系列——vue2+高德地图web端开发(使用和引入)

vue2高德地图web端开发&#xff08;使用和引入&#xff09;前言基础准备工作高德地图的个人开发者注册高德api网址1.点击进行注册2.注册完之后进入控制台3.创建新应用4.添加高德 2.0 新增创建vue2的项目npm 引入高德官方文档1.安装2.进入项目3. NPM 方式安装使用 Loader4.在com…

【RabbitMQ】什么是RabbitMQ?RabbitMQ有什么用?应用场景有那些?

目录 一、什么是RabbitMQ&#xff1f; 二、RabbitMQ是干什么的&#xff1f; 三、RabbitMQ的常见作用有那些&#xff1f; 四、RabbitMQ的应用场景有那些&#xff1f; 场景一&#xff1a;用户订单&#xff0c;库存处理。【服务间解耦】 场景二&#xff1a;用户注册&#xf…

javaScript实现倒计时功能

目录 一、主要思路 二、css样式 三、html代码 四、js内容 五、完整代码展示 六、效果展示 一、主要思路 1.通过内置时间函数实例化日期对象获取当前时间 new Date。 2.因为时间无法减去时间&#xff0c;有可能生成负数&#xff0c;所以采用时间戳的方法得到毫秒数形式的…

(完整版)2022大厂Java八股文面试题库|附答案

Java基础 说下面向对象四大特性Java语言有些特点什么是Java程序的主类&#xff1f;应用程序和小程序的主类有何不同&#xff1f;访问修饰符public,private,protected,以及不写&#xff08;默认&#xff09;时的区别&#xff1f;float f3.4;是否正确&#xff1f;Java有没有goto…

Spring Boot(四):Spring Boot启动原理分析

文章目录 Spring Boot启动原理分析 一、依赖导入原理 二、Spring Boot包扫描原理 三、Spring Boot自动配置原理 Spring Boot启动原理分析 一、依赖导入原理 父项目版本控制 ctrl 点击spring-boot-starter-parent进入 继续点击&#xff0c;进入spring-boot-dependencies…

微前端-qiankun

概念 使用框架&#xff1a;qiankun 介绍&#xff1a; qiankun 是一个基于 single-spa 的微前端实现库&#xff0c;旨在帮助大家能更简单、无痛的构建一个生产可用微前端架构系统。 qiankun官网&#xff1a;Go 当使用 iframe 整合系统时&#xff0c;假设我们有系统 A, 当我们…

MySQL+Navicat安装配置教程(超级详细、保姆级)

MySQLNavicat安装配置教程&#xff08;超级详细、保姆级&#xff09;一、 下载MySQL1. 选择想要安装的版本&#xff0c;点击Download下载二、安装MySQL1. 选择设置类型2. 选择安装的产品和功能3. 先选中“MySQL Server 5.7.31” &#xff0c;之后点击下方的蓝色“Advanced Opti…