Linux tail命令该如何使用?这篇文章讲的十分详细!

举报
wljslmz 发表于 2023/03/26 20:29:27 2023/03/26
【摘要】 今天我们在来介绍一下 tail,顾名思义,tail 命令输出单个或多个文件的最后部分内容。默认情况下,tail 命令将会打印文件的最后 10 行内容。在实际应用中,我们经常用它来实时读取日志文件。tail 命令的语法结构如下所示:tail [options] [files]作为演示,我们使用如下文件内容来介绍 tail 命令:你好,这里是wljslmz。我的公众号ID为:wljslmz我的博...

今天我们在来介绍一下 tail,顾名思义,tail 命令输出单个或多个文件的最后部分内容。默认情况下,tail 命令将会打印文件的最后 10 行内容。在实际应用中,我们经常用它来实时读取日志文件。

tail 命令的语法结构如下所示:

tail [options] [files]

作为演示,我们使用如下文件内容来介绍 tail 命令:

你好,这里是wljslmz。

我的公众号ID为:

wljslmz

我的博客+论坛网址为:

https://www.wljslmz.cn/

推荐一个工程师导航网址:

https://www.wljslmz.com/

刚刚我们提到过,tail 命令默认会显示文件的最后 10 行内容,但是当文件内容总共不足 10 行时,会显示整个文件的内容。

当然大多数情况下,我们不使用它的默认行为,而是根据实际情况来选择应用,接下来我们根据例子来逐个介绍下。

使用 tail 命令打印文件的最后 x 行内容

打印文件的最后 x 行内容(而不是默认的最后 10 行),可参考如下语法结构:

tail -n x <filename>

比如,查看文件的最后 5 行内容:

tail -n 5 wljslmz

输出:

小提示:你也可以直接使用 tail -x 而不是 tail -n x 来显示最后 x 行内容。

打印从 x 行开始往后的所有内容

如果想要打印从 x 行开始往后的所有内容,可使用 +x 选项,如下所示:

tail -n +x <filename>

比如,我们的示例文档,想要打印从第 7 行开始的所有内容,如下:

tail -n +7 wljslmz

输出:

使用 tail 命令同时查看多个文件

使用 tail 命令可以同时查看多个文件。其语法结构如下所示:

tail -n N <file1> <file2> <file3>

与 head 命令类似,查看的各个文件名会显示在输出中。比如,我们想要查看 wljslmz 和 yunwei 的最后 3 行,如下所示:

tail -n3 wljslmz yunwei

输出:

提示,使用 -q 选项可以在输出中不显示文件名信息。

使用 tail 命令实时监视文件

假设我们有一个文件,其内容会实时增加(比如日志文件),tail 命令可以帮助我们实时查看新添加到文件中的内容。这个功能可通过使用 -f 选项来实现:

tail -f <log-file>

示例:

tail -f wljslmz

输出:

上述命令会首先显示文件的最后 10 行内容,然后当文件有新的内容增加时,也会将新的内容实时输出到终端中。这个功能被广泛用于读取日志文件,这也可能是 tail 命令最常见的用法。

提示:如果使用 -F 选项代替 -f 选项,tail 命令会等待输入文件创建(如果不存在)后,在实时显示文件的内容。

在管道重定向中使用 tail 命令

tail 命令还可以结合管道重定向来使用。比如,假如在一个目录中有许多文件,我们只想查看最后 3 个修改过的文件,那么可以按如下方式:

ls -ltr | tail -n3

示例:

ls -ltr | tail -n3 wljslmz

输出:

上述命令中,ls -lrt 按时间顺序倒叙列出所有文件,然后通过管道重定向将输出给到 tail 命令,tail 命令解析这个输出,只显示其最后的 3 行,这 3 行内容就是我们所需要的最近 3 个修改的文件列表。

在 tail 命令的输出中显示行号

我们在查看某个文档的时候,如果文档中可以显示行号,那么对于我们来说是非常友好的,比如我们想要查看当前正在阅读的在多少行,整个文件有多少行内容,等等。

不过,tail 命令并没有内置的显示行号的功能。不过我们可以通过其他方式来实现这一功能,那就是通过使用 nl 命令以及管道重定向结合 tail 命令来实现。

nl 命令可以在文件内容中显示行号,将其输出通过管道重定向到 tail 命令中,就可以满足我们的需求。如下所示:

nl <filename> | tail -3

示例:

nl wljslmz | tail -3

输出:

【版权声明】本文为华为云社区用户原创内容,未经允许不得转载,如需转载请自行联系原作者进行授权。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。