初识Linux · 基本指令(完)

目录

前言:

基本指令

1.1 有关重定向

1.2 有关文件查看

1.3 有关时间戳和日志

1.4 有关文件查找和压缩


前言:

本文是Linux基本指令的最后一节了,涉及的指令较多~

有了前文的铺垫,我们知道指令的最基本的知识点是指令就是可执行程序,知道这个就够了,其次,我们在这里引入一个思想,Linux中一切皆文件,即便是显示器,也是文件,至于为什么,看下文咯。


基本指令

1.1 有关重定向

我们之前创建文件都是mkdir创建目录,touch创建文件,今天引入的第一个指令,echo:

第一个使用:

第二个使用:

我们从这两个使用入手,第一个,前言提到了在Linux中一切皆为文件,所以第一个echo 输入Hello Linux到显示器这个文件里面,所以指令结束就在显示器上输入了该字符串。

那么我们如何证明显示器也是个文件呢?

我们可以在选项卡那里复制一个当前选项卡:

然后我们就可以拥有两个窗口了:

我们在第一个窗口输入 ls /dev/pts -l:

这是没有加入第二个文件的时候,我们得到了如上结果,加入了第二个窗口,我们就可以得到:

好像猜想快成立了?

那么我们直接echo到0号文件,看能不能打印东西:

那么我们在0号窗口往1号窗口打印呢?

当我们在0号窗口输入了,0号窗口是没有反应的,1号有反应,此时证明就完成了。

那么证明的时候用到了 > 符号,这个的意思就是 输出重定向

重定向好理解吧?为什么我们直接输入echo "xxx"就能直接在该窗口打印东西呢,因为默认的输出方向是显示器,那么我们重定向到某个文件,都可以执行该操作,所以我们重定向到第二个显示器,完成了打印。

那么echo是对文件起作用的,我们不妨试试:

发现文本内容发生了改变,这是因为输出重定向默认的是覆盖写,就会C语言的文本操作是一样的,打开了关闭之后,没有就创建文件,有文件可以直接覆盖写,所以这里的用处还有:

但是!我们还可以更简单一点:

这是输出重定向,但是有一天我不想覆盖写,我想追加写怎么办?这时候就需要>>,这时候就可以追加,而不是覆盖:

默认也可以创建,但是加了一个空行,后面继续追加。这是输出重定向。

同理,有输出就有输入,我们现在来看看输入重定向:

cat后面可以直接空行,代表输入从键盘里面读取,所以我输入什么它就打印什么,重定向就是加<:

当然可以不加,但是底层原理是不一样的,这里先不做了解,有关重定向介绍这么多。

1.2 有关文件查看

为了便于观察,我们先来创建一大堆的fake文件:

如图 请问你敢使用cat来看文件吗?

敢就瞬间刷屏到10000,所以使用cat的时候有一个很重要的点就是,数据容易被刷过去,那么为了支持更好的查看大文件,我们可以使用more 或者是 less:

默认到了22个文件,如果想要继续查看就回车逐行查看,这里less就比较香了,less支持数字键盘的上下查看,但是它们的本质都是铺满屏幕,然后逐行查看,实际还是有点麻烦,当然了,也有部分子指令,比如-n打印行号等。

在Linux中还有指令,例如head tail同样是查看文件的,默认是10行,我们也可以指定行数:

tail同理:

那么问题来了,我们如何查看文本中间的内容呢?有一种复杂粗暴的方法是从该文件拷贝多少多少行到tmp文件,然后在tmp文件使用head 或者是 tail,那可就太麻烦了,我们不妨使用|。这个东西的名字叫做管道,到后面会详细介绍,这里我们可以理解为同时使用两条指令:

可以理解为head -8010 big.txt 是管道的入口,tail是管道的出口,出口就像是进行数据传输的一样,后面会详细介绍。

查看文本数据我们还可以了解一个指令,叫做wc,用来统计文本行数的:

了解一下就可以了。

1.3 有关时间戳和日志

在Linux中有两个十分重要的概念,一个是时间,一个是日志,时间的重要性不言而喻,日志的重要性可能很多人没有概念,日记知道吧,我们不妨把日志理解为日记,当程序报错的时候,我们可以通过日志来查看最近一次程序的各种结果啊什么的,那么我们今天只是简单看看日志,主要内容还是时间:

这些是日志的一部分,有日志肯定有日历啦,日历的查看使用cal指令,子指令只有3个:

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

主要内容是时间,相信大家有编程语言的基础,自然知道时间戳是怎么来的,时间戳来源于格林威治,一群大佬开会,说要统一一下时间,于是在格林威治的1970年1月1日00:00开始计算时间,我们现在的时间当时的时间,对应的秒数就是时间戳,那么我们如何查看时间呢?

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

更多格式如下:

无非就是记住每个单位对应的首字符即可。

当然了,还有简写,一个是F等同于年月日,一个是X等同于时分秒。

我们有了时间戳的概念,时间如何转换为时间戳呢?或相反。

同样用到指令:

date +%s是时间转换为时间戳,时间戳转换为时间的指令如下:

1嘛,就是格林威治时间的第一秒。

1.4 有关文件查找和压缩

文件查找使用到的指令第一个是find,和which不同的是find是根据名字来找,并且一次查找之后,系统会存储结果,进行第二次相同的查找就会快很多了:

但是呢,文件量一多,find的遍历是比较漫长的,基于系统的树形结构开始查找的。

还有一种是grep,文本过滤器,可以正向过滤也可以反向过滤:

就像这样。

正向过滤是 -n 反向过滤式-v -n输出行号,就留个看官自己实验了。

那么文件的查找 创建 以及重定向等问题已经介绍完了,文件如何压缩呢?

压缩使用的指令式zip或者tar,压缩的形式不同产生的后缀就不同。

首先我们思考,为什么文件需要压缩?

1 因为压缩之后体积缩小 下载速率变快 2 压缩之后不会轻易丢失文件 。

打包指令咱们这里就不挖坑了,直接压缩的话,会导致只压缩了一个目录,所以我们需要递归压缩:

这样就压缩成功了,我们接下来试试解压:

unzip -d 目录 代表解压到某个特定的目录里面。

然后是tar压缩,我们这里理解多个子指令,-cvzf,-xvzf,c是创建 x的解压,v是压缩的时候显示文件,z是检查同时具有 gzip 的属性?先不管。

解压还要加-C。

我们先来试试压缩:

解压同理:

文件的部分操作暂时介绍这么多,然后呢,有几个有意思的指令介绍给大家:

1 bc指令,Linux中的计算器:

没什么用就是哈哈哈

2 看操作系统内核版本uname -r


感谢阅读!

  • 35
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值