在linux可以用find查找一个文件,可以用grep查找符合要求的文件内容,但是有的时候希望查看文件的前几行或者后几行(其实这种场景经常可以遇到,比如接触到日志分析的时候),那就应该使用head和tail这两个工具了,head是输出文件从开头的内容,tail显示文件结尾的内容
首先先创建一个测试文件,完全的显示有20行

head file 输出目标文件的前10行
默认情况下head输出目标文件的前10行
执行head file (文件名叫做file)结果

head -n 数字 file 输出指定行数
比如 head -n 5 file 就会输出开头5行
linux中很多数字都可以加上正负号,head也不例外
head -n -5 file 输出除了末尾5行以外的全部行

那就不难看出使用逻辑,head一定是从开头开始输出的
而所谓的-n 不能够理解为是行数的意思,而是输出到第几行为止
其中+0 和 -0 的效果一样,+n和直接写n的效果一样
比如-n 5就是输出到第5行为止,也就是 输出 1-5 行
-5就是输出到扣掉最后五行为止
head -c 数字 file 按照字节数输出
head -c 10 file

head file1 file2 多文件输出

head -q file1 file2 不用提示文件名

配合其他使用
同样的head的输出和cat,echo的输出一样,也可以通过管道传递给其他命令使用
head -n 15 file | grep "10" --color=auto

或者输出向到新的文件

还可以接受其他操作的输出替代文件
也就是 head 后面不用跟上 file
例如

祝你玩得开心