Linux tail命令
tail命令
tail 命令可用于查看文件的内容,有一个常用的参数 -f 常用于查阅正在改变的日志文件。
tail -f filename 会把 filename 文件里的最尾部的内容显示在屏幕上,并且不断刷新,只要 filename 更新就可以看到最新的文件内容。
命令格式
1 | tail [参数] [文件] |
参数
1 | -c, --bytes=NUM 输出文件尾部的NUM(NUM为整数)个字节内容。 |
实例
tail file:显示文件的最后10行
要显示 notes.log 文件的最后 10 行,请输入以下命令:
1 | tail notes.log |
tail -f file:追踪显示 查看实时日志
要跟踪名为 notes.log 的文件的增长情况,请输入以下命令:
1 | tail -f notes.log |
此命令显示 notes.log 文件的最后 10 行。当将某些行添加至 notes.log 文件时,tail 命令会继续显示这些行。 显示一直继续,直到您按下(Ctrl-C)组合键停止显示。
tail -n +N file:从第N行显示到文件末尾
显示文件 notes.log 的内容,从第 20 行至文件末尾:
1 | tail -n +20 notes.log |
查看第100行至文件末尾:
1 | tail -n +100 itbilu.log |
tail -c N file:显示文件最后的N个字节
显示文件 notes.log 的最后 10 个字节:
1 | tail -c 10 notes.log |
1 | tail file #(显示文件file的最后10行) |
tail结合其他命令使用
结合其他命令使用tail
通过使用管道将标准输出从其他实用程序重定向到其他实用程序,可以将tail命令与其他命令结合使用。
例如,要监视apache访问日志文件并仅显示包含IP地址192.168.42.12的行,可以使用:
1 | tail -f /var/log/apache2/access.log | grep 192.168.42.12 |
以下ps命令将显示按CPU使用率排序的前十个正在运行的进程:
1 | ps aux | sort -nk +3 | tail -5 |
head和tail结合使用:查看从第N行到第M行
配合head命令,实现查看文件的第10到20行:
1 | head -20 itbilu.log | tail -10 |
实时日志查看与grep过滤关键字
通过-f参数,并配合grep命令,可以实现对文件内容的过滤。如:查看前几行、后几行、或前后几行,这时可以通过以下几个参数实现:
参数 | 描述 |
---|---|
-A <显示行数> | 除了显示符合匹配内容的那一行之外,并显示该行之后的内容 |
-B <显示行数> | 在显示符合匹配内容的那一行之外,并显示该行之前的内容 |
-C <显示行数>或-<显示行数> | 除了显示符合匹配内容的那一列之外,并显示该列之前以及之后的内容 |
控itbilu.log日志件,并查看含有’foo’关键字的前后5行:
1 | tail -f itbilu.log|grep 'foo' -C 5 |
或
1 | tail -f itbilu.log|grep 'foo' -5 |
同时显示多个文件
如果提供了多个文件作为tail命令的输入,它将显示每个文件的最后十行。
1 | tail filename1.txt filename2.txt |
您可以使用与显示单个文件时相同的选项。 此示例显示文件filename1.txt和filename2.txt的最后20行:
1 | tail -n 20 filename1.txt filename2.txt |
参考资料
https://www.runoob.com/linux/linux-comm-tail.html
https://wangchujiang.com/linux-command/c/tail.html
Linux tail命令与实时日志、文件查看及过滤:https://itbilu.com/linux/man/H1_dxWhz4.html
tail在线帮助文档:https://man7.org/linux/man-pages/man1/tail.1.html
https://zhuanlan.zhihu.com/p/105741730
https://www.yuque.com/gaoxizhi/linux/tail