Linux常用查看日志文件命令

3,670 阅读2分钟

查看日志常用命令

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

  lessmore类似,但使用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 查看时间节点内的日志
注意:日期必须是日志中打印出来的日志,否则无效.\color{red} 注意:日期必须是日志中打印出来的日志,否则无效.

场景三:日志内容特别多,打印在屏幕上不方便查看

  1. 使用more和less命令
    cat -n test.log |grep "debug" |more 分页打印,通过空格键翻页
  2. 使用 >xxx.txt 将查询到的日志保存到文件中,可以下载这个文件分析
    cat -n test.log |grep "debug" >debug.txt