在Linux中使用tail命令[5个示例]
tail 命令是显示文件内容或部分内容的几种方法之一。您还可以使用它实时监控对文件所做的更改。以下是一些常见示例。
在 Linux 中,有几个命令可以查看文件的内容。 Tail 命令就是其中之一。
顾名思义,tail 命令用于打印文件的结尾部分。这在处理对文件末尾进行新更改的配置文件时非常有用。
tail 命令还允许您实时查看对文件所做的更改。这广泛用于在解决问题时实时监控日志文件。
在本教程中,我将通过分享一些实际示例来展示如何使用 tail 命令。
Linux中tail命令的使用方法
要在终端中使用任何命令,必须以正确的语法执行该命令,因此我们首先从其语法开始。
tail [option] [file]
这里,
[option]
允许您调整命令的默认行为。[file]
是您输入要与 tail 命令配对的文件名的位置。
为了使事情易于理解,我将使用包含以下行的 Haruki.txt
文本文件:
Hear the Wind Sing (1979)
Pinball, 1973 (1980)
A Wild Sheep Chase (1982)
Hard-Boiled Wonderland and the End of the World (1985)
Norwegian Wood (1987)
Dance Dance Dance (1990)
South of the Border, West of the Sun (1992)
The Wind-Up Bird Chronicle (1994)
Sputnik Sweetheart (1999)
Kafka on the Shore (2002)
After Dark (2004)
1Q84 (2009-2010)
Colorless Tsukuru Tazaki and His Years of Pilgrimage (2013)
Men Without Women (2014)
Killing Commendatore (2017)
当不带任何选项执行 tail 命令时,它会打印文件的最后 10 行:
很明显,如果少于10行,tail命令将默认显示所有行。
但您可以做的不仅仅是这些!让我告诉你怎么做。
尾部命令示例
在本节中,我将分享 tail 命令的不同示例,使用其不同的选项。
您将看到一些命令示例,其中 <> 中有文本。这表明您需要将 < 和 > 中的内容替换为合适的值。
1.打印最后N行
正如我之前提到的,tail 命令默认打印最后十行,但您可能并不总是想要相同的行为。
要打印所需的最后 N 行数,您所要做的就是使用 -n
标志并附加要打印的最后 N 行数:
tail -n <Number-of-last-N-Lines> <File>
例如,在这里,我打印了名为 Haruki.txt
的文本文件的最后三行:
tail -n 3 Haruki.txt
您也可以在此处使用大于 10 的数字。
2. 打印第N行开始的所有内容
因此,如果您想要特定点的输出,这会非常方便。
为此,您必须使用 -n
标志并使用 +
符号附加要打印文件的行号:
tail -n +<Line-number> <File>
假设我想打印文本文件 Haruki.txt
中第五行的所有内容,那么我将使用以下命令:
tail -n +5 Haruki.txt
3. 打印输出的文件名
您可能会发现自己想要使用 tail 命令给出的输出来打印文件名。
一个很好的例子是,当使用 tail 命令将多个文件的输出重定向到单个文件时,并且您想要分离输出。
为此,您必须使用 -v
标志,这将为您提供详细的输出:
tail -v [File]
在这里,我使用了前面的示例,但这一次,我添加了详细输出的选项:
4.通过tail命令使用多个文件
有时,您可能想通过 tail 命令使用多个文件,这非常简单!您所要做的就是使用多个文件名,tail 命令将处理其余的事情:
tail <options> <File-1> <File-2> <File-n>
例如,这里打印了两个不同文本文件的最后三行:Haruki.txt
和 Premchand.txt
:
tail -n 3 Haruki.txt Premchand.txt
如果您仔细观察,它会默认打印文件名,这很好。
如果您想从输出中跳过文件名,请使用 -q
标志(安静模式):
tail -q <File-1> <File-2> <File-n>
5.实时监控文件的更改
这是 tail 命令的一个优秀特性。您不仅可以看到最后几行,还可以显示添加到其中的任何新行。多么酷啊!
为此,请在 tail 命令中使用 -f
(跟随)标志:
tail -f <File>
这是我在单个终端中使用多个窗口的示例。我在一个命令中执行了 tail 命令,在另一个命令中,我使用 echo 命令将文本附加到文件中:
系统管理员和开发人员使用它来实时查看日志文件。它有助于排除故障。
tail -F
是一个鲜为人知但稍微好一点的选项。在某些服务器配置中,日志文件会轮换并创建(再次使用相同的名称)。如果重新创建文件,tail -f
命令将不会跟踪更改。但是,tail -F
将等待文件创建并继续监视它。
很酷!不是吗?
tail 命令选项快速总结
以下是涵盖我在本教程中迄今为止提到的所有内容的简短摘要:
-n <number>
显示从文件末尾开始的 N 行
-n +<number>
打印第 N 行开始的所有内容
-v
在输出标头中包含文件名
-q
从输出中删除文件名
-f
实时监控文件的更改
-F
实时监控更改,等待(重新)创建文件
?️练习你所学到的
如果您想测试您最近学到的 tail 命令知识,这里有一些练习供您使用。
从我们的 GitHub 存储库下载 agatha.txt 文件。
现在执行以下操作。
打印文件的最后 12 行
仅打印文件的最后一行
将文件名添加到输出,同时显示从第 15 行开始的行
只打印第11行(与head命令结合)
您可以在社区中讨论练习题:
如果您对命令行完全陌生,我们为您提供了一个很好的起点。
? 我们每周都会分享更多 Linux 命令示例。请继续关注更多内容。如果您有任何疑问或建议,评论部分都是您的。