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.txt
与filename2.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命令。