myfreax

Linux tail命令教程

tail命令可用在Unix,类Unix系统和FreeDOS上,显示一个或多个文件或管道数据的最后一部分,默认为10行。它还可以用于实时监控文件更改

4 min read
By myfreax
Linux tail命令教程

tail命令可用在Unix,类Unix系统和FreeDOS上,显示一个或多个文件或管道数据的最后一部分,默认为10行。它还可以用于实时监控文件更改。

tail命令最常见的用途之一是观察和分析随时间变化的日志和文件,通常与其他工具如grep组合使用。

在本教程中,我们将通过实际示例和最常见tail选项的详细向您展示如何使用Linux tail命令。

在讨论如何使用tail命令之前,让我们先回顾一下基本语法。tail命令表达式采用的形式是tail [OPTION]... [FILE]...

OPTION选项。我们将在下一节中介绍最常见的选项,FILE零个或多个输入文件名。如果未指定文件名,或者文件名为-,则tail将读取标准输入。

在没有任何选项的情况下使用最简单的形式,例如tail filename.txt命令将显示最后10行。

显示指定行数,你可使用-n/--lines选项指定要显示的行数,您也可以省略-n选项并仅使用连字符-和数字,它们之间没有空格。

tail -n 50 filename.txt命令显示文件filename.txt的最后50行,tail -50 filename.txt这是使用连字符-和数字的等价命令。

打印指定的字节可以使用tail命令用-c/--bytes选项。您还可以在数字后面使用乘数来指定要打印的字节数。

你可以将字节数乘以512,kB乘以1000,K乘以1024,MB乘以1000000,M乘以1048576,依此类推。

tail -c 500 filename.txt命令显示filename.txt 文件中的最后500个字节的数据。tail -c 2k filename.txt命令打印filename.txt文件的最后两千字节2048。

实时查看文件变化,也就是监控文件的更改,可使用tail的-f/--follow选项。此选项对于监视日志文件特别有用。

tail -f /var/log/nginx/error.log命令要显示文件/var/log/nginx/error.log的最后10行,并监视文件以获取更新。

使用-f选项监控文件时你可以按Ctrl+C终止tail命令 。如果你监听文件暂时不存在,但是想要在创建文件之后可以监听文件的变化。

可以使用tail命令-F选项,该选项允许你文件不存在情况下监听文件。当你运行时你可能看到提示。

tail: cannot open 'test.txt' for reading: No such file or directory这是一个正常的提示,可以不用关心。

当tail命令跟随的日志文件更新时,此选项很有用。当与-F选项一起使用时,tail命令将在文件再次可用时立即重新打开该文件。

显示多个文件,如果提供多个​​文件作为tail命令的输入,它将显示每个文件的最后十行。您可以使用与显示单个文件时相同的选项。

tail -n 20 filename1.txt filename2.txt命令显示文件filename1.txtfilename2.txt的最后20行。

tail命令可以与其他命令组合通过管道,从tail的标准输出通过管道作为另一个命令的标准输入。

tail -f /var/log/apache2/access.log | grep 192.168.42.12命令监视apache访问日志文件并仅显示包含IP地址是192.168.42.12的行。

ps aux | sort -nk +3 | tail -5命令将显示按CPU使用情况排序的前十个正在运行的进程。

至此,您应该很好地理解如何使用Linux tail命令。