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

相关推荐
Xの哲學3 分钟前
Linux 软中断深度剖析: 从设计思想到实战调试
linux·网络·算法·架构·边缘计算
林鸿风采8 分钟前
在Alpine Linux上部署docker,并配置开机自启
linux·docker·eureka·alpine
江湖有缘17 分钟前
Docker快速部署NeonLink:打造你的私人书签管理平台
运维·docker·容器
专注数据的痴汉23 分钟前
「数据获取」全国民用运输机场吞吐量排名(2006-2024)
java·大数据·服务器·数据库·信息可视化
l1t1 小时前
在arm64 Linux系统上编译tdoku-lib的问题和解决
linux·运维·服务器·c语言·cmake
珠穆峰1 小时前
RabbitMQ消息堆积问题处理
运维
取谖慕12.1 小时前
keepailved+nginx+nfs高可用
运维·nginx·nfs
txinyu的博客1 小时前
Linux 内存管理
linux·运维·开发语言·c++
珠穆峰1 小时前
linux清理缓存命令“echo 3 > /proc/sys/vm/drop_caches”
java·linux·缓存
cllsse1 小时前
堡垒机下载安装
运维