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

相关推荐
番茄灭世神1 分钟前
Linux应用编程介绍
linux·嵌入式
wdfk_prog2 分钟前
[Linux]学习笔记系列 -- [drivers][mmc][mmc_sdio]
linux·笔记·学习
Forsete20 分钟前
LINUX驱动开发#9——定时器
linux·驱动开发·单片机
JY.yuyu25 分钟前
Docker常用命令——数据卷管理 / 端口映射 / 容器互联
运维·docker·容器
森G41 分钟前
七、04ledc-sdk--------makefile有变化
linux·c语言·arm开发·c++·ubuntu
驱动探索者1 小时前
linux mailbox 学习
linux·学习·算法
alice--小文子1 小时前
cursor-mcp工具使用
java·服务器·前端
lpruoyu1 小时前
【Docker进阶-06】docker-compose & docker swarm
运维·docker·容器
China_Yanhy2 小时前
入职 Web3 运维日记 · 第 8 日:黑暗森林 —— 对抗 MEV 机器人的“三明治攻击”
运维·机器人·web3
艾莉丝努力练剑2 小时前
hixl vs NCCL:昇腾生态通信库的独特优势分析
运维·c++·人工智能·cann