(4)Linux的Redirect 重定向以及打包与压缩

💭 写在前面

本章仍然是继续对Linux 常用指令进行介绍,将讲解重定向、时间相关的指令、文件查找和打包压缩等指令。我们将初次理解 "Linux下一切皆文件"这一概念,我将通过一个有趣的故事去讲解它。

初识重定向(Redirect)

输出重定向 >

我们现在来正式介绍一下:

$ echo "内容" > [目标]    

本来应该写入到显示器的内容,把他写入到文件中,我们称之为 输出重定向

📌 注意事项: > 会清空原始的文件内容,进行重新写入。

追加重定向 >>

❓ 输出重定向 > 会清空原始内容,如果你不想清空原始内容呢?

💡 我们可以使用 " 追加重定向 >> " ,可以做到在原有内容后 "追加" :

  说明:追加重定向不会清空原始内容,而是在原始文件的结尾进行新增式的写入。

$ echo "内容" >> [目标]

 

输入重定向 < 

在这之前我们先来补充一下 cat 后面什么都不加:

$ cat

 cat 后面什么都不加,cat 就会默认从键盘(标准输入):

它一直复读我说的话我按什么都不出去,q 也给我反个 q,怎么退出呢?

所有的阻碍你命令行操作,先无脑 ctrl + c (暂停)就完事了,这些热键我们下面会细说。

输入重定向:将本来应该从键盘中读取的方式,改成从指定的文件中读取。

(不过我们用的最多的还是输出重定向和追加重定向)

初次理解 "Linux 下一切皆文件" 

Linux 操作系统有自己的设计哲学,它认为所有的东西都可以当作文件,

甚至你所看到的键盘、显示器、显卡等外设,都可以当作文件。

现阶段还没有去讲解系统方面的知识,至于底层是如何做到的我们暂时不深入讲解。

当前学习阶段我们可以感性理解 "Linux 下一期皆文件" 这句话。

我们把磁盘、显示器、网卡、显卡、键盘、鼠标等设备(我们统称之为外设),

都看作文件,以同样的方式看待这些设备。

注意事项:

Linux 是不把 CPU 看成文件的,因为 CPU 是要帮你完成 "一切皆文件" 的设计理念的,

而你要把 CPU 也当作文件,这显然是不合理的!

 时间相关的指令

data 指令

在 Linux 中我们可以直接输入 date 去查看当前的时间:

date      # 显示时间

默认输出的格式好像不符合我们日常生活的使用习惯啊,我们习惯的是 年月日 + 时间。

在显示方面,Linux 也是可以设定格式去显示时间的。

date +%Y:%m:%d      # date 指定格式显示时间

date 标记列表:格式设定为一个加号后接数个标记,其中常用的标记列表如下:

  •     %H : 小时(00..23)
  •     %M : 分钟(00..59)
  •     %S : 秒(00..61)
  •     %X : 相当于 %H:%M:%S %d : 日 (01..31)
  •     %m : 月份 (01..12)
  •     %Y : 完整年份 (0000..9999)
  •     %F : 相当于 %Y-%m-%d
     

 我们就可以通过这种方式去控制格式,显示我们想要显示的:

Linux 也同样支持修改时间:

  •     date -s                    // 设置当前时间,只有root权限才能设置,其他只能查看。
  •     date -s 20080523   // 设置成20080523,这样会把具体时间设置成空00:00:00
  •     date -s 01:01:01     // 设置具体时间,不会对日期做更改
  •     date -s "01:01:01 2008-05-23"       // 这样可以设置全部时间
  •     date -s "01:01:01 20080523"         // 这样可以设置全部时间
  •     date -s "2008-05-23 01:01:01"       // 这样可以设置全部时间
  •     date -s "20080523 01:01:01"         // 这样可以设置全部时间

Time stamp 时间戳 

概念: 1970 年 1 月 1 日午夜开始,到现在为止所累计的秒数,即为时间戳。

计算机插电之后就会一直有一个递增的数据,这个不断线性递增的数据就是时间戳。

date +%s    # 查看当前时间戳

那么问题来了,时间戳有什么用途呢?

它可以作为日志的一部分,如果一个项目比较大,必须得有日志的能力。

因为时间戳是不断递增的,递增值有很强的惟一性,所以在做日志信息归档的时候很方便。

日志我们一般从尾部看,时间 + 错误信息。日志,具有排查错误的能力!

在 Linux 中,时间是很重要的。

如果我想自己获取一下时间戳,系统中可以用 date +%s ,如果我们想自己写程序,也是可以的。

代码:获取时间戳 

 

 

(拼写一定要拼写正确)!!!!!!!!!!

cal 指令

在 Linux 中输入 cal 就显示出一个日历:

cal

指令功能 :用于查看日历等时间信息。

如果只有一个参数,则表示年份(1-9999),如有两个参数,则表示月份和年份。

cal [参数][月份][年份]

常用选项:

  • -3  显示系统前一个月,当前月,下一个月的月历

  • -j   显示在当年中的第几天(一年日期按天算,从1月1号算起,默认显示当前月在一年中的天数)
  • -y  显示当前年份的日历

 

 思考:Linux 命令的时间和日历存在的意义是什么?

有些语言是基于 Linux 命令组成起来的语言,比如 shell 。因为脚本也是要打日志的,所以脚本也是需要有时间的。现在用命令行看时间的人很少,但是如果把时间倒退到 40 年前,就会有人去拿命令行去查看时间。

文件查找 

find 指令(查找)

 find 路径 -[选项]

指令功能 :用于在文件树种查找文件,并作出相应的处理(可能访问磁盘)。

 指令介绍:

  •     Linux 下 find 命令在目录结构中搜索文件,并执行指定的操作。
  •     Linux 下 find 命令提供了相当多的查找条件,功能很强大。由于 find 具有强大的功能,所以它的选项也很 多,其中大部分选项都值得我们花时间来了解一下。
  •     即使系统中含有网络文件系统(NFS),find 命令在该文件系统中同样有效,只你具有相应的权限。
  •     在运行一个非常消耗资源的 find 命令时,很多人都倾向于把它放在后台执行,因为遍历一个大的文件系 统可能会花费很长的时间 (这里是指30G字节以上的文件系统)

常用选项:

name 按照文件名查找文件 

用法演示:查找C语言的 stdio.h | 在家目录下查找所有 test.c 文件 

 

在家目录下查找所有的test.c文件

 

grep 命令(行文本过滤工具)

在我们之前形成的有十万行的大文本 large.txt 中,

如果我想把其中的 1234 关键字的行拎出来,我们就可以使用 grep 命令:

$ grep '1234' large.txt    # 显示large.txt中带有1234的行

 

 grep [选项] 搜寻字符串 文件

指令功能 :在文件中搜索字符串,将找到的行打印出来。

 常用选项:

  • -i   忽略大小写的不同,所以大小写视为相同。
  • -n  顺便输出行号。
  • -v  反向选择(反选),凡是具有关键字的文本行,去掉并保留没有匹配关键字的行。

注意事项:

① 只要某行存在你要找的关键字,整行都会被保留显示出来,所以称 grep 为行文本过滤工具。

② grep 匹配时是明确大小写的 ,如果想忽略大小写,须加 -i 选项。

操作演示: 

①  -v 反向选择  |  -iv 忽略大小写并反向选择

-n 选项,将查找的结果带上匹配行所在行号 

 打包与压缩

zip 指令 

zip [压缩文件.zip] [目录或文件]

当前目录下会多出一个红色的压缩文件

假设要压缩一个目录下所有的文件:

使用指令: zip -r xxx.zip xxx文件 

 

unzip 指令 

那么如何解压呢?

unzip [目标]     # 解压目标文件

操作演示:我们可以使用 zip 指令对应的 unzip 指令对它进行解压操作:

我们先把lesson1移到lesson3中,再进行解压

 

 tar 指令

一般一个压缩包是需要有两个步骤的:① 打包    ② 压缩。

我们还要讲一种压缩方式,这种压缩方式也是 Linux 中最常见的一种 —— tar 指令。

tar [-cxtzjvf] 文件与目录 .... 参数

指令功能 :打包 / 解包(不打开它,直接看内容)

常用选项:

  •     -c   建立一个压缩文件的参数指令(create 的意思)。
  •     -x   解开一个压缩文件的参数指令!
  •     -t    查看 tarfile 里面的文件!
  •     -z   是否同时具有 gzip 的属性?以及是否需要用 gzip 压缩?
  •     -j    是否同时具有 bzip2 的属性?以及是否需要用 bzip2 压缩?
  •     -v   压缩的过程中显示文件!这个常用,但不建议用在背景执行过程!
  •     -f   使用档名,请留意,在 f 之后要立即接档名!不要再加参数!
  •     -C  解压到指定目录。

 

(test.tzg是输入错误的产物) ,,,一定要输入正确

通过此种操作,我们把lesson1压缩成为test.tgz

解压缩,我们先把本体lesson1删除,在进行解压缩-------回来了,都回来了

  • tar zcvf 、tar xzvf 在压缩过程中显示文件
  • -C 选项,解压到指定目录下

 大家可以自行尝试!!!

其他常见指令

bc 命令 

Linux 下,我们可以用 bc 命令很方便地进行浮点运算:

echo " [计算内容] " | bc

uname -r 指令

不同的平台下对应的指针大小是不一样的,在 VS32 位下指针对应的大小是 4 个字节,

在64位下系统,我们的指针大小就是 8 字节。我们该怎么知道当前系统的体系结构信息呢?

我们可以用 uname -a 查看系统中的很多信息,如果只想看内核版本,可以输 uname -r:

uname [选项]
  •  指令功能 :获取电脑和操作系统的相关信息
  • 指令介绍: uname 可显示 Liunx 主机所用的操作系统的版本、硬件的名称等基本信息。
  • 常用选项:-a 详细输出所有信息,依次为内核名称,主机名,内核版本号,内核版本,硬件名,处理器类 型,硬件平台类型,操作系统名称。

关机  

注意事项:如果使用的是云服务器,云服务器是不需要关机的,永远不关机。

shutdown [选项] ** 常见选项: **

🔨 指令功能 :关机

📜 常用选项:

  • -h  将系统的服务停掉后,立即关机。
  • -r   在将系统的服务停掉之后就重新启动 -t sec :
  • -t   后面加秒数,为 "过几秒后关机" 的意思

 

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

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

相关文章

如何在本地Docker中部署MinIO服务并实现远程访问管理界面

文章目录 前言1. Docker 部署MinIO2. 本地访问MinIO3. Linux安装Cpolar4. 配置MinIO公网地址5. 远程访问MinIO管理界面6. 固定MinIO公网地址 前言 MinIO是一个开源的对象存储服务器&#xff0c;可以在各种环境中运行&#xff0c;例如本地、Docker容器、Kubernetes集群等。它兼…

全国巡展“2024人工智能展·世亚智博会”3月上海·4月杭州·6月北京

近年来&#xff0c;我国积极布局人工智能产业&#xff0c;竞跑“未来赛道”。随着各行业、各领域对人工智能需求的日益增长&#xff0c;与实体经济深度融合的新模式不断涌现&#xff0c;形成了具有中国特色的研发体系和应用生态&#xff0c;引领着经济社会各领域从数字化、网络…

web前端项目-影视网站开发

影视网站 本项目主要使用到了 HTML&#xff1b;CSS&#xff1b;JavaScript脚本技术&#xff1b;AJAX无刷新技术&#xff1b;jQuery等技术实现了动态影视网页 运行效果&#xff1a; 一&#xff1a;index.html <!DOCTYPE> <html lang"en"> <head>…

python采集电影数据JS逆向, 并制作可视化

嗨喽~大家好呀&#xff0c;这里是魔王呐 ❤ ~! python更多源码/资料/解答/教程等 点击此处跳转文末名片免费获取 环境使用&#xff1a; Python 3.10 Pycharm nodejs 模块使用&#xff1a; requests -> pip install requests execjs -> pip install pyexecjs json …

电流源输出的是直流电还是交流电(高精度电流源)

电流源是一种能够提供电流输出的电子设备&#xff0c;它可以产生直流电流或交流电流&#xff0c;具体取决于其设计和应用的需要。 首先&#xff0c;我们来讨论电流源输出直流电的情况。直流电是指电流的方向始终保持不变的电流形式。在一些特定的应用中&#xff0c;需要稳定的、…

【全志T113-i】OK113i-S开发板-适配10寸LCD显示

前言 本文介绍如何在OK113i-S开发板上适配一个自己的10寸LCD。 OK113i-S 是一个优秀的开发板&#xff0c;支持lvds 单8&#xff0c;双8显示&#xff0c;最大分辨率1280x800 也支持RG666显示&#xff0c;由于我手头只有lvds 单8&#xff0c;40pin的显示器&#xff0c;今天我就…

设计模式—装饰模式

与其明天开始&#xff0c;不如现在行动&#xff01; 文章目录 装饰模式—穿衣服&#x1f48e;总结 装饰模式—穿衣服 装饰模式&#xff08;Decorator&#xff09;可以动态的给对象添加一些额外的职责。 Component是定义一个对象接口&#xff0c;可以给这些对象动态地添加职责。…

Flutter ios 使用ListView 。滚动时 AppBar 改变颜色问题

在Ios 中 列表滚动条向下滚动一段距离后 会导致 AppBar 颜色改变 可以给 AppBar 或者 AppBarTheme。 scrolledUnderElevation: 0.0 属性 全局&#xff1a; MaterialApp(theme: ThemeData(appBarTheme: AppBarTheme(scrolledUnderElevation: 0.0)) ) 局部&#xff1a; App…

代码随想录算法训练营第二十天 |654.最大二叉树 、 617.合并二叉树 、700.二叉搜索树中的搜索 、 98.验证二叉搜索树

今天学习内容&#xff1a;654.最大二叉树 、 617.合并二叉树 、700.二叉搜索树中的搜索 、 98.验证二叉搜索树 讲解&#xff1a;代码随想录 654.最大二叉树 力扣&#xff08;LeetCode&#xff09;官网 - 全球极客挚爱的技术成长平台 最大二叉树的构建过程如上&#xff0c;图…

STM32----HAL库函数

1.STM32系统框架 1.1 Cortex-M内核&芯片 1.2 F1系统框架 4个主动单元4个被动单元 AHB&#xff1a;高级高性能总线 APH&#xff1a;高级外围总线 其中 1 为 主动单元 &#xff0c; 2为被动单元 总线时钟频率&…

低代码开发平台的优势及应用场景分析

文章目录 低代码是什么&#xff1f;低代码起源低代码分类低代码的能力低代码的需求市场需要专业开发者需要数字化转型需要 低代码的趋势如何快速入门低代码开发低代码应用领域 低代码是什么&#xff1f; 低代码&#xff08;Low-code&#xff09;是著名研究机构Forrester于2014…

充电器如何测试?有哪些测试参数?用电源模块自动化测试系统测试需要哪些步骤?

充电器测试参数 1. 输入、输出电压测试 通过万用表或者其它精密测试设备测量充电器的输入、输出电压测试&#xff0c;检测输入、输出电压是否在规定范围内&#xff0c;以免造成设备损坏。 2. 输入、输出电流测试 测试充电器的输入、输出电流&#xff0c;确保其符合设计要求&…

【AIGC重塑教育】AI大模型驱动的教育变革与实践

文章目录 &#x1f354;现状&#x1f6f8;解决方法✨为什么要使用ai&#x1f386;彩蛋 &#x1f354;现状 AI正迅猛地改变着我们的生活。根据高盛发布的一份报告&#xff0c;AI有可能取代3亿个全职工作岗位&#xff0c;影响全球18%的工作岗位。在欧美&#xff0c;或许四分之一…

配电室综合监测系统

配电室综合监测系统是一种集成了自动化、智能化等技术手段的电力监控系统。它通过对配电室内的电力设备进行实时监控、数据分析和处理&#xff0c;能够提高电力设备的安全性和效率&#xff0c;及时发现并解决电力故障和潜在问题&#xff0c;保证电力系统的稳定运行。 该系统通常…

秒搜全网闲鱼商品!一键实现商品详情关键词搜索的酷炫电商API接口!

在如今的电商时代&#xff0c;商品搜索已经成为一个非常重要的功能。当用户在电商平台上浏览商品时&#xff0c;如果能够快速而准确地搜索到自己感兴趣的商品&#xff0c;无疑会提升用户的购物体验&#xff0c;进而增加平台的销售额。联讯数据将介绍一款名为“闲鱼商品秒搜API”…

10天玩转Python第10天:python unittest框架 全面详解与代码示例

目录 1.unittest 组成2.断言3.参数化4.测试报告 今日内容 unittest 框架的组成 TestLoaderFixture 断言跳过(某些用例由于某些原因不想执行)参数化测试报告 ​​​​ 1.unittest 组成 TestLoader (测试加载) TestLoader (测试加载), 作用和 TestSuite 的作用是一样的, 对 T…

亚信安慧AntDB数据库助力智慧高速建设

随着新型智慧交通业务的迅速发展&#xff0c;各地高速公路在管控、收费和监测方面的数据管理变得至关重要。智慧公路信息化建设已成为高速公路建设的核心。AntDB数据库在某省级客户中发挥关键作用&#xff0c;帮助构建协同共享、高效的统一智慧管理平台&#xff0c;为高速公路的…

内网BUG管理系统本地部署并结合内网穿透实现异地远程访问

文章目录 前言1. 本地安装配置BUG管理系统2. 内网穿透2.1 安装cpolar内网穿透2.2 创建隧道映射本地服务3. 测试公网远程访问4. 配置固定二级子域名4.1 保留一个二级子域名5.1 配置二级子域名6. 使用固定二级子域名远程 前言 BUG管理软件,作为软件测试工程师的必备工具之一。在…

app上架-.您的应用在首次打开或运行中,未见使用权限对应的相关功能或服务时,提前向用户弹窗申请开启【已安装应用列表】权限,不符合华为应用市场审核标准。

上架提示 您的应用在首次打开或运行中&#xff0c;未见使用权限对应的相关功能或服务时&#xff0c;提前向用户弹窗申请开启【已安装应用列表】权限&#xff0c;不符合华为应用市场审核标准。 测试步骤&#xff1a;首次打开APP&#xff0c;在首页页面&#xff0c;非服务所必须…

实验4.1 静态路由的配置

实验4.1 静态路由的配置 一、任务描述二、任务分析三、具体要求四、实验拓扑五、任务实施1.设置交换机和路由器的基本配置。2.使用display ip interface brief命令查看接口配置信息。3.配置静态路由&#xff0c;实现全网互通。 六、任务验收七、任务小结 一、任务描述 某公司刚…