要查看不同的行数,请使用-n(行数)选项:
tail -n 15 word-list.txt
实际上,您可以省略“-n”,只使用连字符“-”和数字。确保它们之间没有空格。从技术上讲,这是一个过时的命令表单,但它仍然在手册页中,并且仍然有效。
tail -12 word-list.txt
对多个文件使用Tail
您可以让Tail一次处理多个文件。只需在命令行上传递文件名:
tail -n 4 list-1.txt list-2.txt list-3.txt
每个文件都会显示一个小标题,这样您就可以知道这些行属于哪个文件。
显示从文件开头开始的行
+(从开始计数)修饰符使尾部显示从文件开头开始的行,从特定行号开始。如果您的文件非常长,并且您选择了靠近文件开头的一行,那么您将得到很多发送到终端窗口的输出。如果是这样的话,通过管道从Tail输出到LESS是有意义的。
tail +440 list-1.txt
您可以以受控方式翻阅文本。
由于此文件中恰好有20,445行,因此此命令相当于使用“-6”选项:
tail +20440 list-1.txt
使用带尾部的字节
您可以使用-c(字节)选项告诉Tail使用以字节为单位的偏移量,而不是以行为单位的偏移量。如果您有一个格式化为常规大小记录的文本文件,这可能会很有用。请注意,换行符被视为一个字节。此命令将显示文件中的最后93个字节:
tail -c 93 list-2.txt
您可以将-c(字节)选项与+(从文件开始计数)修饰符组合使用,并指定从文件开始计数的偏移量(以字节为单位):
tail -c +351053 list-e.txt
连接到尾部的管道
早些时候,我们通过管道将Tail的输出转换为LESS。我们还可以将其他命令的输出通过管道传输到Tail。
要识别修改时间最早的五个文件或文件夹,可以使用带有ls的-t(按修改时间排序)选项,并将输出通过管道传输到Tail。
ls -tl | tail -5
HEAD命令列出从文件开头开始的文本行。我们可以结合使用Tail和Tail来提取文件的一部分。现在,我们使用head命令从文件中提取前200行。它被输送到尾部,尾部提取最后10行。这给我们提供了从191行到200行的结果。即前200行中的最后10行:
head -n 200 list-1.txt | tail -10
此命令列出了最耗费内存的五个进程。
ps aux | sort -nk +4 | tail -5
我们来分析一下。
ps命令显示有关正在运行的进程的信息。使用的选项包括:
答:列出所有进程,而不仅仅是当前用户的进程。 u:显示面向用户的输出。 x:列出所有进程,包括那些不在TTY内运行的进程。
SORT命令对ps的输出进行排序。我们在排序中使用的选项包括:
N:我按数字排序。 K+4:按第四列排序。
Tail-5命令显示排序输出中的最后五个进程。这是最耗费内存的五个进程。
使用Tail实时跟踪文件
使用Tail可以轻松跟踪到达文件(通常是日志文件)的新文本条目。在命令行上传递文件名,并使用-f(跟随)选项。
tail -f geek-1.log
当每个新的日志条目添加到日志文件中时,Tail会更新其在终端窗口中的显示。
您可以优化输出,使其仅包含特定相关或感兴趣的行。在这里,我们使用grep仅显示包含单词“Average”的行:
tail -f geek-1.log | grep average
要跟踪对两个或更多文件的更改,请在命令行上传递文件名:
tail -f -n 5 geek-1.log geek-2.log
每个条目都标记有一个标头,该标头显示文本来自哪个文件。
每次新条目到达后续文件时,显示都会更新。要指定更新周期,请使用-s(休眠周期)选项。这告诉Tail在两次文件检查之间等待若干秒(在本例中为5秒)。
tail -f -s 5 geek-1.log
诚然,您不能通过查看屏幕截图来判断,但是文件的更新是每两秒进行一次。新文件条目每五秒在终端窗口中显示一次。
当您将文本添加到多个文件时,可以隐藏指示文本来自哪个日志文件的标头。使用-q(安静)选项执行此操作:
tail -f -q geek-1.log geek-2.log
文件的输出以文本的无缝混合形式显示。没有任何迹象表明每个条目来自哪个日志文件。
尾巴还是有价值的
虽然现在由Jouralctl提供对系统日志文件的访问,但Tail仍然可以提供很多功能。当它与其他命令结合使用时,通过管道进入或退出尾部时尤其如此。
systemd可能已经改变了格局,但传统实用程序仍然有一席之地,这些实用程序符合Unix的理念,即做一件事并做好它。