引言:

关于headtail的使用在之前学习Linux的时候就有所了解,但是仅仅是仅限于了解的层次,没有过多的使用,后续的项目中,也是很少使用,一般是用到什么查什么或者一点点的查找记录,没有直接查找范围行数据或者日志的习惯,但是在最的一场面试中,面试官问了我一个问题就是在Linux中,现在项目出现问题输出日志需要查找范围行内的日志记录,问我怎么查找,加上当时的紧张氛围,我连head和tail都忘了,加之前面面试官大哥的多方面“友情提示---我是废物”,导致我最后的一点倔强也没了,所剩的就是自己好菜啊,基础太弱了。这次大哥的面试让我感觉自己真的还需要花一些时间放在以往没有注重的基础上面。基于大哥提的linux的问题,我在统一在一次复习Linux时注重的学习了一下。废话不多说了,咱们上才艺!!!

1.head和tail的使用

head 显示文件头部内容

  • head 用于显示文件的开头部分内容,默认情况下 head 指令显示文件的前 10 行内容。

1.基本语法

  • head 文件 (功能描述:查看文件头10行内容)
  • head -n 5 文件 (功能描述:查看文件头5行内容,5可以是任意行数)

2.选项说明

  • -n<行数> 指定显示头部内容的行数

3.实操案例

//查看文件的头2行 
[root@hadoop101 ~]# head -n 2 smartd.conf

tail输出文件尾部内容

  • tail 用于输出文件中尾部的内容,默认情况下 tail 指令显示文件的后 10 行内容。

1.基本语法

(1)tail 文件 (功能描述:查看文件尾部10行内容)

(2)tail -n 5 文件 (功能描述:查看文件尾部5行内容,5可以是任意行数)

(3)tail -f 文件 (功能描述:实时追踪该文档的所有更新)

2. 选项说明

  • -n<行数> 输出文件尾部 n 行内容
  • -f 显示文件最新追加的内容,监视文件变化

3.案例实操

//查看文件尾 1 行内容 
[root@hadoop101 ~]# tail -n 1 smartd.conf 
//实时追踪该档的所有更新 
[root@hadoop101 ~]# tail -f houge.txt

2.head,tail查看文件指定某行/某几行的内容

1、查看文件a.txt的第6行

sed -n '6p' a.txt

2、查看文件a.txt的第6、7行

sed -n '6,7p' a.txt

3、查看文件a.txt的前3行

cat a.txt | head -n 3
或
head a.txt -n 3

4、查看文件a.txt的后3行:

cat a.txt | tail -n 3
或
tail a.txt -n 3

5、查看文件a.txt,从第5行开始显示

cat a.txt | tail -n +5
或
tail a.txt -n +5

6、查看文件a.txt,从第5行开始显示3行

cat a.txt | tail -n +5| head -n 3

7、查看文件a.txt,显示第50行到第200行

cat a.txt | tail -n +50 | head -n 150
或
cat a.txt | head -n 200 | tail -n +50