时间、查找、打包、行过滤与指令的运行——linux指令学习(二)

        前言:本节内容标题虽然为指令,但是并不只是讲指令, 更多的是和指令相关的一些原理性的东西。 如果友友只想要查一查某个指令的用法, 很抱歉, 本节不是那种带有字典性质的文章。但是如果友友是想要来学习的, 那么本篇文章很适合, 而且非常适合初入linux的小白。

时间指令date

        date能够打印当前或者某个时间的日期。 使用方法如下
        什么都不加直接date : 

        date后面也可以加上参数, 比如加上+%Y-%m-%d%H%M%S, 其中Y是年, m是月,是日, H是时, M分, S是秒:(注意, 中间的分隔符可以自己控制)

也可以使用冒号

也可以不加某些参数,比如说不加年, 不加日

最重要的一种用法就是使用date +%s,  这个是打印时间戳:

        那么, 知道了时间相关指令。 那么这些指令有什么作用呢?

        在我们工作后, 公司中都要写日志。当程序运行到某个关键的时刻的时候, 都要打印日志。日志的内容有着分类: 时间、日志等级、日志的具体信息、 其他信息。所以,时间的指令,尤其是时间戳的概念和公司要写的日志密切相关。

        因为对于时间戳来说, 时间戳是一个从1970年1月1日到现在所经过的秒数。这个数字是一直在增大的。 它单调递增, 所以我们如果规定一个起始时间, 一个终止时间。 那么它就很容易进行范围的查找。这就是为什么公司日志和时间戳密切相关。

        而我们使用时间戳。 date指令也可以将某一个时刻的时间戳换算成年月日的形式, 如图:

另外:注意这里打印的时间是北京时间。 而时间戳的规定是从伦敦(好像是伦敦, 0度经线位置)1970年1月1日零时, 所以我们打印0时间戳的时候, 打印的是八点:

补充:linux日历

cal可以打印linux中的日历, 后面参数可以加某个年份就会打印出该年所有月份的日历:

        

查找

查找指令有三个:find, which, whereis

  • find:find 路径 -name 文件名——》在某个路径下寻找所有文件名是要查找的文件名的文件, 它真的会在磁盘中进行全面查找。 (这里可以使用*号配合查找)
  • which: which 指令——》主要是在特定目录下寻找某个指令, 特定目录就是/usr/bin:
  • whereis:whereis也是在特定的路径下进行查找, 使用whereis不仅可以找到文件所在路径, 还可以找到man手册, 压缩包, 安装包静态库之类的东西:

行过滤grep

        grep是行过滤文件指令, 它能够过滤掉文本中不需要的行, 只打印我们想要的或者我们想要知道的文本行。 

        用法:grep 文本内容 文本。 意思就是将文本中那些没有文本内容的行过滤掉不打印, 纸打印存在文本内容的行。 

        同时grep上也可以添加指令

  • -v: -v指令能够将文本中原本应该打印的过滤掉, 原本应该过滤掉的重新打印。 
  • -i: -i能够在进行文本选择是否过滤的时候忽略文本内容的大小写。
  • -n: 打印行号

grep后面也可以加上多个文件或者目录。 如果跟目录, 就要在前面加上-R选项, 意思是递归搜索。 最终结果都是打印文件路径 : 文件内容。

打包和压缩

首先, 我们要想明白为什么要打包和压缩, 打包和压缩有什么好处。

        首先, 能够被打包和压缩的, 一定是一个整体。 那么它们就不能轻易的分开, 如果我们没有把文件打包, 那么在传输过程中就容易丢失文件。 而打包就是将多个文件——》一个文件, 不容易造成文件的丢失。 

        其次, 压缩文件后还能减小文件的体积, 方便我们下载, 减少占用磁盘空间。 这里起始最重要的是方便我们下载。

        打包的工具有zip, tar, unzip

//zip

zip是一个linux中的软件(也可以叫做打包压缩方案, 打包压缩方案有很多, 想windows中的好压, 快压等等都是不同的压缩软件, 也叫压缩方案), 所以我们要先使用root账号下载。

        下载后我们就可以使用zip压缩或者解压文件。 使用方法:

zip 文件名 要压缩的文件:将选择的文件进行压缩, 如果要压缩的是一个文件夹, 就要加上-r——》zip -r 文件名 要压缩的文件, 也可以使用多个文件进行压缩——》zip 文件名 要压缩的文件1 要压缩的文件2……

//unzip

zip和unzip是对应的, unzip就是解压。 用法如下:

  • unzip 文件名: 就是将对应文件名的压缩包解压
  • unzip 文件名 -d 要解压到的路径: 将文件名对应的压缩包解压到某个路径。

//tar

tar也能够进行压缩和解压操作。 这是系统中自动配备的压缩方案。不需要进行下载。 这里列出三种常用用法:

  • tar czf 文件名 要压缩的文件 : 将要压缩的文件压缩
  • tar tzf 文件名: 预览压缩包
  • tar xzf 文件名: 解压压缩包

bc计算器

bc是linux中的计算器,类似于windows中的浮点。

uname

uname可以打印和计算机相关的信息。 

uname - a是打印全部的信息:

        第二个蓝框框打印的是linux的内核版本, 第三个蓝框框是计算机的体系结构, x86是代表32位。 x86_64 等同于 x64。

        如果我们只想获取计算机的体系结构, 那么就可以使用uname -r, 那么就只获得内核版本以及体系结构

//lscpu可以查看当前cpu的版本:

//tab

tab健可以快速打出指令, 连点两次tab可以打印出我们可以使用的指令个数。 

//cral + r

cral + r可以对历史中的指令进行搜索, 然后快速打出指令。 但是cral只会保存我们最近使用的1000条指令, 可以修改。 同时使用history可以进行查看。

指令的运行

        如何理解指令的运行。 

首先我们要先理解什么是命令行, 什么是命令行解释器。

        首先, 图中的用户名, 主机名, 当前目录, 以及命令行提示符等等这些, 组成了命令行。 这其实是就是bash命令行。 bash是一种命令行解释器。 

        命令行解释器有: shell, bash、sh, 这些shell包含了bash,sh。 它是所有命令行解释器的同城。 windows的图形化界面本质上也是一种命令行解释器。 

        那么, 为什么要有命令行解释器, 这需要知道命令行解释器的作用和意义:命令行解释器可以将命令翻译给操作系统的核心处理。 同时还能将核心的处理结果翻译给使用者。也就是说命令行解释器是对命令行进行解释, 同时还能变相的保护操作系统, 可以对于用户的非法请求进行拦截。

       为什么说命令行解释器会保护操作系统?这需要从宏观和微观角度理解操作系统。 

       首先, 宏观上的操作linux就是linux上面的各种应用, 命令行解释器以及linux内核组合成的linux机器。 但是微观上面的操作系统就是linux内核。 kernel。 linux内核并不相信用户, 所以会在外面设置一个shell, 壳子。 来作为与用户进行交互的中转层, 也就是命令行解释器。

        

        而且,我们所有的指令操作, 最终都会在linux内核中进行执行。 而操作系统, 也就是linux内核的操作难度较高, 我们不能直接对linux内核打交道, 所以我们需要有一个命令行解释器进行辅助。

知道了这些之后, 我们就可以知道, 我们输入的指令, 其实就是我们输入一串字符。 然后命令行解释器将这些指令翻译给linux内核, 然后内核运行出结果再交给命令行解释器, 命令行解释器再显示给我们。

--------以上, 就是本节全部内容。 下面是本节内容的笔记

相关推荐

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-10 12:02:01       4 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-10 12:02:01       5 阅读
  3. 在Django里面运行非项目文件

    2024-07-10 12:02:01       4 阅读
  4. Python语言-面向对象

    2024-07-10 12:02:01       5 阅读

热门阅读

  1. AWS EKS上GPU工作负载自动扩缩容的异常排查指南

    2024-07-10 12:02:01       9 阅读
  2. 深入WebKit内核:揭秘HTML与XML的识别之谜

    2024-07-10 12:02:01       9 阅读
  3. shell脚本实现mysql 数据库备份

    2024-07-10 12:02:01       9 阅读
  4. 数据结构第11节: B树

    2024-07-10 12:02:01       12 阅读
  5. Spring Boot与RSocket的集成

    2024-07-10 12:02:01       11 阅读
  6. 责任链模式

    2024-07-10 12:02:01       9 阅读
  7. docker run/build Dockerfile 修改及完善

    2024-07-10 12:02:01       8 阅读