Linux tail命令详解
一、tail命令介绍
Linux tail命令的用途是按照要求将指定的文件的最后部分输出到标准设备,一般是终端,通俗来讲,就是把某个文件的最后几行显示到终端上,如果该档案有更新,tail会自动刷新,确保你看到最新的档案内容。tail命令的语法格式如下:
tail [ -f ] [ -c Number | -n Number | -m Number| -b Number | -k Number ] [ File ]
参数说明如下表所示:
参数 | 功能 |
-f | 该参数用于监视文件的实时增加 |
-c Number | 从第Number个字节位置读取指定文件 |
-n Number | 从第Number行位置读取指定文件 |
-m Number | 从第Number个字符位置读取指定文件 |
-b Number | 从第Number个512字节块位置读取指定文件 |
-k Number | 从第Number个1KB字节块位置读取指定文件 |
在以上参数中,都涉及到Number,如果不指定Number,默认显示后10行,Number前面可使用正负号,表示该偏移从顶部还是从尾部开始计算。
二、tail命令使用实例
【例1】显示/etc/passwd,分别从顶部的第10行、底部的第10行开始显示
➜ test tail -n +10 /etc/passwd news:x:9:9:news:/var/spool/news:/usr/sbin/nologin # 本行是从顶部开始的第10行 uucp:x:10:10:uucp:/var/spool/uucp:/usr/sbin/nologin proxy:x:13:13:proxy:/bin:/usr/sbin/nologin www-data:x:33:33:www-data:/var/www:/usr/sbin/nologin ...... ...... baichunyu.bcy:x:1001:1001::/home/baichunyu.bcy:/home/linuxbrew/.linuxbrew/bin/zsh ➜ test tail -n 10 /etc/passwd tiger:x:1000:1000::/home/tiger:/bin/bash # 本行是从底部开始的第10行,即倒数第10行 falcon:x:2000:2000::/home/falcon:/bin/bash _chrony:x:106:110:Chrony daemon,,,:/var/lib/chrony:/bin/false _lldpd:x:107:112::/var/run/lldpd:/bin/false messagebus:x:108:113::/var/run/dbus:/bin/false unscd:x:109:114::/var/lib/unscd:/bin/false ganglia:x:1999:1999:Ganglia Monitor:/var/lib/ganglia:/bin/false Debian-exim:x:110:115::/var/spool/exim4:/bin/false statd:x:111:65534::/var/lib/nfs:/bin/false baichunyu.bcy:x:1001:1001::/home/baichunyu.bcy:/home/linuxbrew/.linuxbrew/bin/zsh ➜ test tail -n -10 /etc/passwd tiger:x:1000:1000::/home/tiger:/bin/bash # 本行也是从底部开始的第10行,即倒数第10行 falcon:x:2000:2000::/home/falcon:/bin/bash _chrony:x:106:110:Chrony daemon,,,:/var/lib/chrony:/bin/false _lldpd:x:107:112::/var/run/lldpd:/bin/false messagebus:x:108:113::/var/run/dbus:/bin/false unscd:x:109:114::/var/lib/unscd:/bin/false ganglia:x:1999:1999:Ganglia Monitor:/var/lib/ganglia:/bin/false Debian-exim:x:110:115::/var/spool/exim4:/bin/false statd:x:111:65534::/var/lib/nfs:/bin/false baichunyu.bcy:x:1001:1001::/home/baichunyu.bcy:/home/linuxbrew/.linuxbrew/bin/zsh
从上述结果中可以看出,Number前如果是正号(+),则偏移量Number是从顶部开始计算;Number前如果是负号(-),则偏移量Number是从底部开始计算;如果没有正负号,则默认是从底部开始计算。
【例2】监控/etc/passwd的后10行
➜ test tail -f /etc/passwd tiger:x:1000:1000::/home/tiger:/bin/bash falcon:x:2000:2000::/home/falcon:/bin/bash _chrony:x:106:110:Chrony daemon,,,:/var/lib/chrony:/bin/false _lldpd:x:107:112::/var/run/lldpd:/bin/false messagebus:x:108:113::/var/run/dbus:/bin/false unscd:x:109:114::/var/lib/unscd:/bin/false ganglia:x:1999:1999:Ganglia Monitor:/var/lib/ganglia:/bin/false Debian-exim:x:110:115::/var/spool/exim4:/bin/false statd:x:111:65534::/var/lib/nfs:/bin/false baichunyu.bcy:x:1001:1001::/home/baichunyu.bcy:/home/linuxbrew/.linuxbrew/bin/zsh # 此时光标停在这里,如果文件有实时更新,这里会实时显示