当要查看上千行的大文件时,我们可不会用cat命令把整个文件内容给打印出来,相反,我们可能只需要看文件的一小部分地内容(例如文件的前十行和后十行),我们也有可能需要打印出来前n行或后n行,也有可能打印除了前n行或后n行之外的所有行,也有可能需要实时监控log日志的更新,那么怎么实现呢?下面一起来看一下linux下使用率极高的head ,tail两个命令。
一 head
1.命令参数:
-q 隐藏文件名-v 显示文件名-c <字节> 显示字节数-n <行数> 显示的行数 行数> 字节>
2.使用实例: 显示文件前n行
[test@VM_0_15_centos ~]$ head -n 5 passwd root:x:0:0:root:/root:/bin/bashbin:x:1:1:bin:/bin:/sbin/nologindaemon:x:2:2:daemon:/sbin:/sbin/nologinadm:x:3:4:adm:/var/adm:/sbin/nologinlp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
显示文件前n个字节
[test@VM_0_15_centos ~]$ head -c 100 passwd root:x:0:0:root:/root:/bin/bashbin:x:1:1:bin:/bin:/sbin/nologindaemon:x:2:2:daemon:/sbin:/sbin/nol
显示文件的除了最后n个字节以外的内容
[test@VM_0_15_centos ~]$ cat passwd root:x:0:0:root:/root:/bin/bashbin:x:1:1:bin:/bin:/sbin/nologindaemon:x:2:2:daemon:/sbin:/sbin/nologinadm:x:3:4:adm:/var/adm:/sbin/nologinlp:x:4:7:lp:/var/spool/lpd:/sbin/nologinhalt:x:7:0:halt:/sbin:/sbin/halt[test@VM_0_15_centos ~]$ head -c -100 passwd root:x:0:0:root:/root:/bin/bashbin:x:1:1:bin:/bin:/sbin/nologindaemon:x:2:2:daemon:/sbin:/sbin/nologinadm:x:3:4:a
输出文件除了最后n行的全部内容
adm:x:3:4:a[test@VM_0_15_centos ~]$ cat passwd root:x:0:0:root:/root:/bin/bashbin:x:1:1:bin:/bin:/sbin/nologindaemon:x:2:2:daemon:/sbin:/sbin/nologinadm:x:3:4:adm:/var/adm:/sbin/nologinlp:x:4:7:lp:/var/spool/lpd:/sbin/nologinhalt:x:7:0:halt:/sbin:/sbin/halt[test@VM_0_15_centos ~]$ head -n -3 passwd root:x:0:0:root:/root:/bin/bashbin:x:1:1:bin:/bin:/sbin/nologindaemon:x:2:2:daemon:/sbin:/sbin/nologin
二 tail tail 命令从指定点开始将文件写到标准输出.使用tail命令的-f选项可以方便的查阅正在改变的日志文件,tail -f filename会把filename里最尾部的内容 显示在屏幕上,并且不但刷新,使你看到最新的文件内容 1 命令参数
-f 循环读取-q 不显示处理信息-v 显示详细的处理信息-c <数目> 显示的字节数-n <行数> 显示行数--pid=PID 与-f合用,表示在进程ID,PID死掉之后结束. -q, --quiet, --silent 从不输出给出文件名的首部 -s, --sleep-interval=S 与-f合用,表示在每次反复的间隔休眠S秒 行数> 数目>
2 使用实例 显示末尾五行 命令:tail -n 5 test.txt
[test@VM_0_15_centos ~]$ tail -n 5 test.txt 2019-082019-092019-102019-112019-12
循环查看文件内容
tail -f test.txt
从第五行开始显示
[test@VM_0_15_centos ~]$ tail -n +5 test.txt 2019-052019-062019-072019-082019-092019-102019-112019-12