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

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

今天我们在来介绍一下 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

输出:

目录
相关文章
|
18天前
|
Web App开发 Linux 网络安全
工作中常用到的Linux命令
工作中常用到的Linux命令
|
18天前
|
Web App开发 Java Linux
Linux之Shell基本命令篇
Linux之Shell基本命令篇
Linux之Shell基本命令篇
|
5天前
|
机器学习/深度学习 缓存 监控
linux查看CPU、内存、网络、磁盘IO命令
`Linux`系统中,使用`top`命令查看CPU状态,要查看CPU详细信息,可利用`cat /proc/cpuinfo`相关命令。`free`命令用于查看内存使用情况。网络相关命令包括`ifconfig`(查看网卡状态)、`ifdown/ifup`(禁用/启用网卡)、`netstat`(列出网络连接,如`-tuln`组合)以及`nslookup`、`ping`、`telnet`、`traceroute`等。磁盘IO方面,`iostat`(如`-k -p ALL`)显示磁盘IO统计,`iotop`(如`-o -d 1`)则用于查看磁盘IO瓶颈。
|
15天前
|
NoSQL Linux Shell
常用的 Linux 命令
常用的 Linux 命令
36 9
|
2天前
|
监控 Linux Windows
50个必知的Linux命令技巧,你都掌握了吗?(下)
50个必知的Linux命令技巧,你都掌握了吗?(下)
|
2天前
|
Linux Shell Windows
Linux 常用基本命令
Linux 常用基本命令
|
3天前
|
Ubuntu Linux Shell
linux免交互登陆远程主机并执行命令(密钥对和Expect)
linux免交互登陆远程主机并执行命令(密钥对和Expect)
|
3天前
|
Linux
【Linux】常用命令
【Linux】常用命令
24 0
|
3天前
|
安全 Ubuntu Linux
Linux 网络操作命令Telnet
Linux 网络操作命令Telnet
16 0
Linux 网络操作命令Telnet
|
4天前
|
Linux 数据安全/隐私保护
Linux常用命令实例带注释
Linux常用命令实例带注释
30 0