00:00
接下来呢,我们再来介绍两个查看文件内容的特殊方法,那就是一个叫head,一个叫ta啊,Had,因为我们知道英文里边这是头的意思嘛,所以它指的就是要显示当前文件头部的内容,也就是说开头的几行是啥,我要看一眼,默认情况下had,然后一个文件的话,显示的就是这个文件的头十行内容。那如果说我要指定前五行,或者说前十五行,20行怎么指定呢?加一个杠N选项,后边跟上指定的行数就可以了,所以这个整体来讲还是非常简单的啊啊,那我们这里面测一下吧,比方说had啊,那那我们直接就用之前的这个很大的文本文档啊,我们看一下诶,它的前十行,这十行这是空格什么的都算的啊,所以我们可以数一下,就是一共就是十行啊,那如果说我们想多看一点的话,那就T-N,比方说20。然后再加上当前的名字啊,那这样的话,我们能看到的就会多一点啊,那这是关于这个had的使用,非常简单,那有had当然就会有K,有头就有尾嘛。
01:12
Had是我们当前文件最开始的几行,那till当然就是最末尾的几行啊,默认情况下till指令只显示最后的十行内容,当然了,你也可以加一个杠N选项,指定显示多少行啊,所以这个我们也非常简单的来测一下ta。之前的这个文本文件,哎,那我们看这就是最后的这一部分的显示啊,啊,那当然了,我们也可以。Ta-N就五行。然后加上这个文本文件啊,我们可以看到啊,因为这个是最后它本身这个换行符的问题啊,最后一行没有换行符,所以说我们这个是显示的好像就错了一行似的啊,这个我们只要一回车,这就又过来了。啊,那关于这一个配偶呢?其实这个用法都很简单,跟hide一样,最关键的是它还有另外一个非常有趣的选项,叫做杠F。
02:07
杠F是什么意思呢?F就是follow的意思,意思就是我不光是要看它末尾当前到底有哪几行内容,我还要跟踪,接下来他如果有新增数据的话,有新增内容的话,我要实时的把它监控到显示出来。所以我们就会发现这个ta-F,它可以用来实时的追踪这个文本文档的所有的更新变化,诶,所以这个在实际应用的时候其实是非常的有用啊,因为我们想到啊,你像我们往往会打开一个日志文件啊,它这个日志文件的话,我们可能实时希望去追踪它的变化吧,刚才到底发生了什么事情,我要实时看到,那怎么样呢?哎,你直接用Q-F就可以看到它新增的所有内,而且我们知道日志嘛,它是不停增长的,不会改之前的内容啊,所以这个K-F也就是适合用在这种持续增长,而且不会修改之前的内容,只是往后追加的这种情况,就特别适合用这个命令来做跟踪监控。
03:11
啊呃,那那这里面我们来给大家做一个测试。啊,那这个其实比较简单啊,那就是直接要Q-F啊,我们这个就不要用之前的这个很大的这个文件啊,我们用这个infer吧。诶,我们看首先它是默认要输出十行嘛,所以把这个信息就全部都列在这儿了,但是我们看他根本就没有退出,没有执行完,为什么呢。因为这就相当于我们起了一个进程,挂在这里,要监控当前文件状态。啊,那所以这里面我们可以另外再建一个当前的控制台命令行做一个交互式的使用,哎,那就是说这边我在监控这边就往那个文件里边去加东西啊,比方说我这里边可以echo一个,这个就随便了啊,Echo一个hello。注意要追加,因为大家想到我们当前就是监控它的变话,你如果要是直接覆盖的话,那显然这个就不对了啊,如果你要是做覆盖的话,它会提示文件已被截断啊,大家可以去自己测一下,我们这里面就直接追加,追加到当前的in上。
04:16
Hello,追加进去,然后我们回过头来看一眼,果然就多了一个哈。啊,那这里面我们再去追加一个。I一个比方说,Welcome。In,诶,那这里边就会又多一个welcome啊,我们这里边多写了一个E啊,这个不重要,我们所有的追加的内容都会直接显示在这里做一个监控。啊啊,那那这里还有很好玩的功能,就是说你还可以暂停,怎么暂停呢?我这里按一个CTRL加S。然后接下来输出的,比方说这个快点输出。In追加,我们再回过头来看,这里就没有了。不会再输出了,我我继续输出二。
05:01
Infer。回过头来看,还是没有啊,诶,那那这个什么意思呢?这就相当于我们那边暂时的停止这边的监控了,但事实上这里所有的变化。它还是会记录下来的,诶那什么时候呢?那就把这个暂停相当于在重新启动,再继续按什么继续呢?刚才CTRLS是暂停,那现在按CTRL加Q就是继续,继续的时候我们看到之前暂停收到的那些数据啊,追加的数据一下子就全显示出来了。啊,所以这个还是比较好玩的一个功能,那怎么样去退出呢?我不想监控了,怎么退出呢?直接按CTRL加C啊,就相当于我们结束进程的那个快捷键啊,CTRLC直接把它退出就可以。啊,这就是Q-F的一些,呃,主要的用法,在实际工作当中,这个其实非常的有用。这里还需要给大家多说一点啊,就是有细心的同学可以下去之后多做一些测试,大家测试可能就会发现啊,我这儿ta-F的时候监控这个文件,前面我们这里是直接用eo往后面追加了,那如果我直接复写会怎么样呢?诶直接会复写的话,它会报一个类似于错误的东西,他会说文件已截断啊,就相当于当前的这个追加监控是出了状况,出了问题啊,你你当然就是这个复写之后,相当于我们修改了之前的内容嘛,你现在如果要重新追加的话,那看它还可以重新继续监控啊,但是它会显示一个文件与截段,那另外还有一个问题就是假如说我们现在是直接用V去打开当前的infer。
06:34
然后去做一个,呃,在后边做一个追加,然后在保存看这边的话,你会发现它是没有任何变化的。这是为什么呢?诶,这个问题涉及到这个Linux文件系统里边的一些更加底层的概念啊,啊,这就是Linux文件系统里边所有硬盘分区的文件呀,都会分配一个编号。那这个编号呢,一般情况我们就直接管它叫做index。
07:03
这个号我们可以把它叫做索引节点号啊,啊,所以当前的每一个文件底层的存储方式呢,其实是所谓的。I know啊,就是所谓的这个带索引的节点,那对应的那个编号就叫做索引节点号啊,那这个索引号呢,其实我们如果要是仔细看的话啊,可以用LS命令直接看到的。我们在这儿先退出看一眼啊,LS加上杠I参数的话,后边想看哪个文件,比方说呃,这个INF这个文件啊,我们可以直接看到前面的这个数字,这就是当前它的索引号。就是当前在底层啊,我们这个文件快速进行索引的时候,硬件上进行这个文件块安排的时候啊,有一个专门的编号,这就是这个,那所以前面我们这里边在跟踪的时候,跟踪的其实是什么呢。其实是按照这个索引号去跟踪的。好,那假如说我们做一个V,然后下边啊,这个我们直接shift加J到最后一行,然后按一个小写O啊进入插入对吧,我这里边再加一个四,然后我们做一个保存。
08:10
那这个时候我们再看呢。这个索引号就变了。所以在这种情况下,你如果啊,当然这里面我们是已经退出了,没有在监控啊,如果说我们还在监控的话,你会发现它根本就不会显示在这里,为什么呢?诶就是因为索引号变了,它其实已经变成了,本质上啊,可以认为它已经变成了另外一个文件。啊,那所以这个时候我们的。Ta-F去做实时监控,就监控不到这个,这个算一点扩展的内容啊,大家下来之后可以根据自己测试的结果去加深一些理解,我们这里只要会用K-F去做一个日志的实时监控就可以了。
我来说两句