tail

tail -200f test.log实时监控200行日志
tail -n 1000 test.log查询日志尾部最后1000行的日志
tail -n +1000 test.log查询1000行之后的所有日志

head

head -n 1000 test.log查询日志文件中的头1000行日志
head -n -1000 test.log查询日志文件除了最后1000行的其他所有日志

cat

cat -n test.log |grep “debug”查询关键字的日志

more

more命令和cat的功能一样都是查看文件里的内容,但有所不同的是more可以按页来查看文件的内容,还支持直接跳转行等功能。

more test.log查看日志

+n从笫n行开始显示
-n定义屏幕大小为n行
Enter向下n行,需要定义。默认为1行
Ctrl+F向下滚动一屏
空格键向下滚动一屏
Ctrl+B返回上一屏

less

less与more类似,但使用less可以随意浏览文件,而more仅能向前移动,却不能向后移动,而且less在查看之前不会加载整个文件。

less test.log查看日志

b向后翻一页
d向后翻半页
h显示帮助界面
Q退出less 命令
u向前滚动半页
y向前滚动一行
空格键滚动一行
回车键滚动一页

应用场景

场景一:按行号查看—-过滤出关键字附近的日志
cat -n test.log |grep “debug”得到关键日志的行号
cat -n test.log |tail -n +92|head -n 20选择关键字所在的中间一行. 然后查看这个关键字前10行和后10行的日志:
tail -n +100表示查询100行之后的日志
head -n 20则表示在前面的查询结果里再查前20条记录

场景二:根据日期查询日志
grep ‘2021-09-30 16:20:00’ test.log确定日志中是否有该时间点
sed -n ‘/2021-09-30 16:00:00/,/2021-09-30 16:20:00/p’ test.log查看时间节点内的日志
注意:日期必须是日志中打印出来的日志,否则无效. 注意: 日期必 须是日 志中打 印出来 的日志, 否则无 效.

场景三:日志内容特别多,打印在屏幕上不方便查看
使用more和less命令
cat -n test.log |grep “debug” |more分页打印,通过空格键翻页
使用 >xxx.txt 将查询到的日志保存到文件中,可以下载这个文件分析
cat -n test.log |grep “debug” >debug.txt