Linux查看日志方法
文章目录
- 常用场景
- 常用命令
- 1. `cat`:完整读取与文件拼接
- 2. `tail`:实时追踪与末尾查看
- 基础语法
- 常用参数
- 高频场景
- 3. `head`:快速查看文件开头
- 4. `less`:交互式翻页(大文件首选)
- 常用参数
- 快捷键操作
- 常见用法
- 5. `more`:基础分屏查看
- 核心操作
- 示例
- 按关键字搜索日志
- 按行号查看日志
- 按时间范围查看日志
- 大日志处理技巧
当日志文件过大时,不建议直接使用 vi 打开,可以通过以下命令更高效地查看与分析
常用场景
场景 | 命令示例 |
---|---|
实时查看 Tomcat 日志 | tail -f catalina.out |
关键字搜索 | grep "验证码" jeewx-2015-09-20.log |
查看指定时间点日志 | grep "2015-09-20 18:50:15" jeewx-2015-09-20.log |
查看最近 50 行日志 | tail -n 50 catalina.out |
常用命令
命令 | 功能说明 |
---|---|
cat | 输出整个文件(可配合 head /tail /grep ) |
head | 查看文件开头部分 |
tail | 查看文件末尾部分(支持实时刷新 -f ) |
more | 分页查看文件,只能向下翻页 |
less | 分页查看文件,可前后翻页,支持搜索 |
1. cat
:完整读取与文件拼接
cat
(Concatenate)用于连续输出文件内容,适合小到中等体积日志。除查看外,还可实现创建、合并、追加、清空等操作。
功能 | 命令示例 | 说明 |
---|---|---|
显示整个文件 | cat filename.log | 从头到尾完整输出,大文件慎用(可能导致刷屏卡顿) |
创建新文件 | cat > newfile.log | 命令执行后进入输入模式,按 Ctrl+D 结束并保存 |
合并多文件 | cat file1.log file2.log > merge.log | 合并多个文件,覆盖写入 merge.log (若已存在则清空再写入) |
追加文件内容 | cat file1.log >> file2.log | 将 file1 内容追加到 file2 ,不覆盖原内容 |
带行号显示 | cat -n file.log / cat -b file.log | -n 显示所有行号(含空行),-b 仅对非空行编号 |
查看前 N 行 | `cat file.log | head -n 200` |
查看后 N 行 | `cat file.log | tail -n 200` |
清空文件内容 | cat /dev/null > file.log | 安全清空文件内容,替代 cat : > file.log ,兼容性更佳 |
2. tail
:实时追踪与末尾查看
tail
默认输出文件最后 10 行,是实时日志监控的核心命令。
基础语法
tail [参数] 文件路径
常用参数
参数 | 功能说明 | 示例 |
---|---|---|
-f | 实时追踪文件新增内容(follow) | tail -f catalina.out (实时监控 Tomcat 日志) |
-n <行数> | 显示最后 N 行 | tail -n 100 file.log |
-n +<行数> | 从第 N 行开始显示至末尾 | tail -n +50 file.log |
-q | 静默模式,隐藏文件名(多文件时有效) | tail -q file1.log file2.log |
-s <秒数> | 配合 -f ,设置刷新间隔 | tail -f -s 3 file.log (每 3 秒刷新一次) |
高频场景
- 实时查看最后 1000 行:
tail -fn 1000 test.log
- 实时过滤关键字:
tail -fn 1000 test.log | grep '错误'
- 分屏实时查看:
tail -n 4700 aa.log | more -1000
- 退出实时追踪:按
Ctrl+C
3. head
:快速查看文件开头
head
与 tail
相反,默认输出文件前 10 行,常用于查看日志初始化信息。
功能 | 命令示例 | 说明 |
---|---|---|
查看前 N 行 | head -n 20 file.log | 输出文件前 20 行 |
排除最后 N 行 | head -n -10 file.log | 显示除最后 10 行外的内容(大文件可快速定位前半段) |
显示文件名 | head -n 10 -v file.log | 使用 -v 强制显示文件名,即使只查看单个文件 |
4. less
:交互式翻页(大文件首选)
less
在处理超大日志文件时最常用,支持前后翻页、搜索、行号定位,且只加载当前屏幕内容,性能优于 vi
。
常用参数
-N
:显示行号-i
:搜索忽略大小写-m
:显示阅读进度(百分比)
快捷键操作
功能 | 快捷键 | 说明 |
---|---|---|
翻页 | PageDown / Ctrl+F | 下翻一屏 |
PageUp / Ctrl+B | 上翻一屏 | |
行移动 | j / k 或上下箭头 | 下 / 上移动一行 |
搜索 | /关键词 | 向下搜索 |
?关键词 | 向上搜索 | |
搜索结果 | n / N | 下一个 / 上一个匹配 |
定位 | g / G | 文件开头 / 文件末尾 |
行号跳转 | 100g | 跳转到第 100 行 |
退出 | q | 退出 |
常见用法
- 带行号查看:
less -N catalina.out
- 查看多文件:
less log1.log log2.log
(n
下一个,p
上一个) - 管道结合:
ps -ef | less
5. more
:基础分屏查看
more
功能较简洁,仅支持向下翻页,适合中等体积日志。
核心操作
- 启动:
more file.log
- 翻页:空格(下一屏)、Enter(下一行)、Ctrl+B(上一屏)
- 查看行号:
=
- 查看文件名:
:f
- 打开编辑器:
v
(进入 vi) - 退出:
q
示例
- 从第 50 行开始:
more +50 file.log
按关键字搜索日志
- grep 搜索:
grep "train" log.log
- 忽略大小写:
grep -i "train" log.log
- 带行号与高亮:
grep -n --color=auto "train" log.log
- 前后 N 行:
grep -A 5 "train" log.log
(后 5 行)grep -B 5 "train" log.log
(前 5 行)grep -C 5 "train" log.log
(前后 5 行)
按行号查看日志
-
查看某行前后内容:
cat -n catalina.log | tail -n +92 | head -n 20 # 查看 92~111 行 sed -n "92,112p" catalina.log
按时间范围查看日志
-
指定时间段:
sed -n '/2018-06-21 14:30:20/,/2018-06-21 16:12:00/p' catalina.out
-
结合关键字:
sed -n '/2018-06-21 14:30:20/,/2018-06-21 16:12:00/p' catalina.out | grep "ERROR"
大日志处理技巧
-
分页查看:
cat test.log | grep "地形" | less
-
导出到文件再分析:
grep "地形" test.log > result.txt