Linux 日志查看核心命令(动态跟踪 + 文件查阅,全覆盖工作常用)

✅ 一、「实时动态查看日志」(最常用,排查线上实时报错 / 业务流水)

✅ 1. tail ------ 日志动态跟踪首选,必学!

✅ 核心用法(90% 场景用这 2 个):

  • tail -f filename.log实时滚动查看日志尾部 ,新增内容秒刷新,按Ctrl+C退出。
  • tail -F filename.log:比-f更实用,日志文件被切割 / 重命名后,会自动跟踪新文件,线上必用!✅ 补充:tail -n 200 filename.log 可直接查看日志最后 200 行,兼顾「查历史 + 盯实时」。

✅ 2. less ------ 动态查看 + 交互式翻阅,日志分析神器

✅ 核心用法(动态 + 翻阅一体,比 tail 功能更强):

  • less +F filename.log:等同于tail -F,实时跟踪日志尾部;
  • 优势:跟踪时按Ctrl+C 可暂停,用↑/↓翻阅历史日志,按F恢复实时跟踪,完美适配「看实时 + 查上下文」场景。✅ 高频快捷键:/关键字搜索、n下一个匹配、N上一个匹配、q退出。

✅ 3. multitail ------ 多日志文件同时动态跟踪

可分屏实时查看多个日志文件 ,适合需要同时监控业务日志 + 错误日志的场景,需手动安装(yum install multitail)。示例:multitail app.log error.log

✅ 二、「日志文件静态查阅」(查历史日志、筛选 / 检索内容)

✅ 基础查阅(快速看文件内容)

  1. cat :一次性读取整个日志文件 ,适合小日志,例:cat filename.log;✅ 常用组合:cat -n filename.log(显示行号)、cat filename.log | more(分页查看)。
  2. more :分页查看日志,只能向下翻页(空格翻页、Enter 换行、q 退出),适合大文件快速浏览。
  3. less :静态查阅天花板,支持上下翻页、关键字搜索、行号定位 ,大日志文件首选,示例:less filename.log

✅ 关键字筛选检索(排查报错核心,必背组合)

所有命令均可搭配管道符|+ 过滤命令,精准提取日志,是工作核心用法!

  1. grep ------ 日志筛选第一利器,按关键字过滤✅ 高频用法:

    • grep "ERROR" filename.log:筛选日志中含ERROR的行;
    • grep -i "error" filename.log:忽略大小写筛选;
    • grep -n "ERROR" filename.log:显示匹配行的行号
    • grep -C 5 "ERROR" filename.log:显示匹配行的上下 5 行上下文(查报错原因必备);
    • grep -E "ERROR|WARN" filename.log:同时筛选ERRORWARN两行内容。
  2. head ------ 查看日志开头内容 示例:head filename.log(默认前 10 行)、head -n 100 filename.log(前 100 行),适合看日志头部的配置 / 启动信息。

✅ 日志内容进阶处理(排序、去重、统计)

适用于日志分析、统计报错频次等场景,组合使用效率拉满:

  • sort:日志排序,例:cat log.log | sort(按字符排序)、cat log.log | sort -n(按数字排序);
  • uniq:去重统计,例:cat log.log | grep "ERROR" | uniq -c(统计每种 ERROR 出现次数);
  • wc:统计行数 / 字数,例:grep "ERROR" log.log | wc -l(统计 ERROR 出现的总行数)。

✅ 三、「日志切割 / 归档 / 查看压缩日志」(解决大日志、压缩日志痛点)

✅ 1. 查看压缩日志文件(线上日志常压缩为.gz 格式)

无需解压,直接查看,节省磁盘空间:

  • zcat filename.log.gz:一次性查看 gz 压缩日志;
  • zless filename.log.gz:分页 + 搜索查看 gz 压缩日志(推荐);
  • zgrep "ERROR" filename.log.gz:直接筛选 gz 日志中的关键字。

✅ 2. 大日志切割(避免单日志文件过大,无法打开)

  • split:按行数 / 大小切割日志,例:split -l 100000 filename.log log_part_(按 10 万行切割,生成 log_part_aa、log_part_ab);
  • 搭配使用:split -l 100000 filename.log && grep "ERROR" log_part_*(切割后批量筛选)。

✅ 四、「工作高频组合拳」(直接复制即用,覆盖 99% 日志场景)

✅ 场景 1:实时监控日志 + 筛选报错

tail -F app.log | grep -i "error"

✅ 场景 2:查报错 + 看上下 10 行上下文

grep -C 10 "NullPointerException" app.log

✅ 场景 3:统计日志中所有报错的出现次数

grep "ERROR" app.log | sort | uniq -c | sort -nr

✅ 场景 4:分页查看大日志 + 搜索关键字

less app.log → 按/关键字搜索 → n翻下一个匹配项

✅ 场景 5:查看压缩日志中的报错

zgrep -C 5 "WARN" app.log.gz

✅ 补充:日志相关小技巧

  1. 日志内容过多时,可将筛选结果写入新文件:grep "ERROR" app.log > error.log
  2. 按时间筛选日志(适用于带时间戳的日志):grep "2025-12-25 10:00" app.log
  3. 线上日志默认路径:/var/log/(系统日志)、项目日志一般在项目根目录/logs/

https://www.doubao.com/chat/23119606052169218

相关推荐
dlhto2 小时前
Kiro Remote SSH 无法连接远程服务器问题排查与解决
运维·服务器·ssh
JiMoKuangXiangQu2 小时前
Linux 网络:RPS 简介
linux·网络·rps 和 rfs
Awkwardx2 小时前
Linux网络编程—五种IO模型与非阻塞IO
linux·服务器·网络
小鹏linux2 小时前
【linux】进程与服务管理命令 - pkill
linux·运维·服务器
小钱c72 小时前
docker相关常用指令
运维·docker·容器
ChenXinBest2 小时前
一次firewalld和docker冲突问题排查
linux·docker
Henry Zhu1232 小时前
VPP中DHCP插件源码深度解析第二篇:DHCPv4客户端实现详解(下)
服务器·c语言·网络·计算机网络·云原生
墨白曦煜2 小时前
计算机组成原理:大端序与小端序的原理与权衡
linux·windows
网硕互联的小客服3 小时前
人工智能服务器是什么,人工智能服务器的有什么用?
运维·服务器·网络·安全