tail
是Linux中的一个常用命令,用于查看文件尾部的内容,它与head
命令相对应。我们常用它来查看日志文件,通过-f
参数可实时看文件的最新内容。
1. tail
命令介绍
命令格式
tail [选项...] [文件...] tail [-F | -f ] [-q] [-c # | -n #] [file ...]
将每个文件的最后10行打印到标准输出。
当指定多个时,则每个文件前面都有一个标题,表示文件名。
如果没有指定,或者指定的文件为是-
,则读取标准输入。
参数
-c, --bytes=K 输出最后 K 个字节;也可以使用 -c +K 指定从第K字节开始输出 -f, --follow[={name|descriptor}] 跟踪文件的增长,并实时输出所增长的数据; 缺省选项参数可以是'文件名'或'描述符' -F 等价于 --follow=name --retry -n, --lines=K 输出最后 K 行,而不是最后10行; 也可以使用 -n +K指定从第K行开始输出 --max-unchanged-stats=N 使用 --follow=name,在N次跌代大小仍未改变时重新打开一个文件,查看它是否已取消链接或重命名(这是旋转日志文件的常见情况) ----pid=PID 结合 -f 使用,在进程ID、PID死掉后终止 -q, --quiet, --silent 不输出所提供文件的标头 --retry 当文件不可访问时,重试打开文件 -s, --sleep-interval=N 结合 -f 使用,休眠大约 N 秒 迭代之间的间隔默认为 1.0; 结合 inotify 和 --pid=P,在每 N 秒后至少检查进行 P 一次 -v, --verbose 总是输出所提供文件的标头 --help 显示帮助信息并退出 --version 显示版本信息并退出 指定 K 时(字节数或行数)如果以'+'开头,则表示从第 K 行或字节处开始打印;否则,打印文件中的最后 K 项。 K 还可以计量单位和乘数后缀的形式指定,如:b 512, kB 1000, K 1024, MB 1000*1000, M 1024*1024, GB 1000*1000*1000, G 1024*1024*1024,以及 T, P, E, Z, Y 等
2. tail
命令的使用
查看文件内容
现有itbilu.log日志文件,查看其后5行:
$ tail -n -5 itbilu.log // 或 $ tail -n 5 itbilu.log // 或 $ tail -5 itbilu.log
查看第100行至文件末尾:
$ tail -n +100 itbilu.log // 或 $ tail +100 itbilu.log
配合head
命令,实现查看文件的第10到20行:
$ head -20 itbilu.log | tail -10
实时查看日志
通过-f
参数,我们可以实时查看文件的新增内容:
$ tail -f itbilu.log
注意:使用-f
参数时不会中断文件监视,需要通过ctrl+c
手动结束。
实时日志查看与grep
过滤关键字
通过-f
参数,并配合grep命令,可以实现对文件内容的过滤。如:查看前几行、后几行、或前后几行,这时可以通过以下几个参数实现:
-A <显示行数> 除了显示符合匹配内容的那一行之外,并显示该行之后的内容 -B <显示行数> 在显示符合匹配内容的那一行之外,并显示该行之前的内容 -C <显示行数>或-<显示行数> 除了显示符合匹配内容的那一列之外,并显示该列之前后的内容
监控itbilu.log日志件,并查看含有'foo'关键字的前后5行:
$ tail -f itbilu.log|grep 'foo' -C 5 // 或 $ tail -f itbilu.log|grep 'foo' -5