目录

linux 查看日志常用命令

这篇文章展示了linux查看日志常用命令

1 linux 查看日志常用命令

1.1 head

head 命令可用于查看文件的开头部分的内容,常用的参数 -n 用于显示行数,默认为 10,即显示 10 行的内容。

1.1.1 命令格式

head [参数] [文件]

1.1.2 参数

  • -n<行数> 显示的行数

1.1.3 实例

1
2
3
4
5
# 查询日志文件中的头 10 行日志;
head -n 10 test.log 

# 查询日志文件除了最后 10 行的其他所有日志;
head -n -10 test.log

1.2 tail

tail 命令可用于查看文件的内容,常用参数-f查阅正在改变的日志文件

1.2.1 命令格式

tail [参数] [文件]

1.2.2 参数

  • -f 循环读取

  • -n<行数> 显示文件的尾部 n 行内容

1.2.3 实例

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
# 实时读取 test.log 日志文件的更新内容
tail -f test.log

# 实时监控 100 行日志
tail -100f test.log

# 查询日志尾部最后 10 行的日志
tail -n 10 test.log

# 查询10行之后的所有日志
tail -n +10 test.log 

1.3 cat

cat(英文全拼:concatenate)命令用于连接文件并打印到标准输出设备上

1.3.1 命令格式

cat [参数] [文件]

1.3.2 参数

-n--number:由 1 开始对所有输出的行数编号

1.3.3 实例

1
2
# 查看 test.log 日志文件所有内容,并显示行号
cat -n test.log

1.4 grep

grep 命令用于查找文件里符合条件的字符串

1.4.1 命令格式

grep [参数] [范本样式] [文件或目录…]

1.4.2 参数

  • -C<显示行数>--context=<显示行数>-<显示行数> : 除了显示符合样式的那一行之外,并显示该行之前后的内容
  • –color=auto : 高亮颜色显示
  • -n--line-number : 在显示符合样式的那一行之前,标示出该行的列数编号
  • -i--ignore-case : 忽略字符大小写的差别
  • -e<范本样式>--regexp=<范本样式> : 根据正则表达式匹配文件中对应的行

1.4.3 实例

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
# 查看 test.log 日志文件中匹配指定字符串的行
grep '被查找的字符' test.log

# 查看 test.log 日志文件中匹配指定字符串的行(不区分大小写)
grep -i '被查找的字符' test.log

# 查看 test.log 日志文件中与正则表达式匹配的行
grep -e '正则表达式' test.log

# 查看 test.log 日志文件中,除了显示符合样式的那一行之外,并显示该行之前以及之后的内容
grep -C 10 '被查找的字符' test.log

# 查看 test.log 日志文件中满足样式的行,高亮显示
grep --color=auto '被查找的字符' test.log

2 应用场景一:按行号查看—过滤出关键字附近的日志

1
2
3
4
5
cat -n test.log |grep "debug" # 得到关键日志的行号

cat -n test.log |tail -n +92|head -n 20 # 选择关键字所在的中间一行. 然后查看这个关键字前10行和后10行的日志
  # tail -n +92表示查询92行之后的日志
  # head -n 20 则表示在前面的查询结果里再查前20条记录

3 应用场景二:根据日期查询日志

1
sed -n '/2022-05-01 16:17:20/,/2022-05-01 16:17:36/p' test.log
  • 特别说明:上面的两个日期必须是日志中打印出来的日志,否则无效;
  • grep '2014-12-17 16:17:20' test.log来确定日志中是否有该时间点

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

4.1 使用more和less命令

1
 cat -n test.log |grep "debug" |more # 这样就分页打印了,通过点击空格键翻页

4.2 使用 >xxx.txt 将其保存到文件中,到时可以拉下这个文件分析

1
cat -n test.log |grep "debug" >debug.txt

6 参考资料