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
                         # 此时光标停在这里,如果文件有实时更新,这里会实时显示
posted @ 2021-09-24 11:10  白春雨  阅读(3679)  评论(0编辑  收藏  举报