当前位置: 首页 > news >正文

Linux日志查看常用命令

Linux日志查看常用命令

大多数日志操作都可以由这几个核心命令通过管道(|)组合完成:

  • cat:连接文件并打印到标准输出(查看整个文件
  • tail:输出文件的末尾部分
  • head:输出文件的开头部分
  • grep:强大的文本搜索工具
  • less / more分页交互式查看文件
  • awk:强大的文本分析和处理语言
  • sed:流编辑器,用于过滤和转换文本
  • sort:对文本行进行排序
  • uniq:报告或忽略重复的行
  • wc:统计行数、单词数、字节数

一、基础查看与跟踪

1. tail - 查看日志尾部(最常用)

这是查看最新日志的首选命令

# 查看文件最后10行(默认)
tail /var/log/syslog# 查看最后100行
tail -n 100 /var/log/nginx/access.log# 实时追踪日志文件(极其重要!用于监控最新动态)
tail -f /var/log/apache2/error.log# 实时追踪并显示行号
tail -fn 50 /var/log/application.log# 在文件被轮转后仍能继续跟踪(如logrotate)
tail -F /var/log/application.log

-f vs -F-F 更强大,即使日志文件被重命名或重建(如日志切割)也能继续跟踪。

2. head - 查看日志开头
# 查看文件开头10行(默认)
head /var/log/syslog# 查看文件开头100行
head -n 100 /var/log/bootstrap.log

用途:查看日志文件的启动信息、初始化配置等。

3. cat - 一次性显示整个文件
# 显示整个文件(不适合大文件)
cat /var/log/dpkg.log# 显示文件并带上行号(非常有用!)
cat -n /var/log/dpkg.log# 与grep结合使用(高亮匹配项)
cat -n /var/log/syslog | grep --color=auto "error"
4. less / more - 分页查看(大文件首选)
# 使用 less 查看文件(推荐)
less /var/log/syslog# 使用 more 查看文件
more /var/log/syslog

less 常用操作(进入后):

  • 空格键 / Page Down:向下翻一页
  • b / Page Up:向上翻一页
  • /keyword:向下搜索关键词(按 n 下一个,N 上一个)
  • ?keyword:向上搜索关键词
  • G:跳到文件末尾
  • g:跳到文件开头
  • q:退出

二、搜索与过滤

5. grep - 强大的搜索工具(日志分析核心)
# 简单搜索包含 "error" 的行
grep "error" /var/log/syslog# 忽略大小写
grep -i "error" /var/log/syslog# 显示匹配行的前后内容(非常实用!)
grep -A 5 -B 5 "panic" /var/log/syslog    # 显示匹配行及前后5行
grep -C 3 "Connection refused" /var/log/app.log # 显示匹配行及前后3行# 只显示匹配的模式,而不是整行(提取特定字段)
grep -o 'user=[a-zA-Z0-9]*' /var/log/auth.log# 反向选择,显示不包含 "INFO" 的行
grep -v "INFO" /var/log/application.log# 递归搜索目录下所有文件
grep -r "192.168.1.100" /var/log/# 使用正则表达式
grep -E "Failed|Error|Timeout" /var/log/application.log# 统计匹配的行数
grep -c "404" /var/log/nginx/access.log
6. 组合使用示例
# 查看最近1000行中包含 "error" 的行及其后2行
tail -n 1000 /var/log/syslog | grep -A 2 -i "error"# 实时跟踪并过滤
tail -f /var/log/nginx/access.log | grep "POST"# 查找并高亮,并显示行号
cat -n /var/log/syslog | grep --color=auto -C 2 "fail"

三、高级分析与统计

7. awk - 文本处理瑞士军刀
# 打印日志的第5列(默认以空格分隔)
awk '{print $5}' /var/log/nginx/access.log# 打印特定列(例如IP和状态码)
awk '{print $1, $9}' /var/log/nginx/access.log# 使用特定分隔符(如逗号)
awk -F',' '{print $2}' /var/log/app.csv.log# 条件过滤(状态码为404的请求)
awk '$9 == 404 {print $1, $7}' /var/log/nginx/access.log# 统计状态码出现次数
awk '{print $9}' /var/log/nginx/access.log | sort | uniq -c | sort -rn# 统计IP访问次数
awk '{print $1}' /var/log/nginx/access.log | sort | uniq -c | sort -rn | head -10
8. sed - 流编辑器
# 显示特定行范围(第10-20行)
sed -n '10,20p' /var/log/syslog# 删除包含 "DEBUG" 的行
sed '/DEBUG/d' /var/log/application.log# 替换文本
sed 's/error/ERROR/g' /var/log/app.log# 显示从第100行到文件末尾
sed -n '100,$p' /var/log/syslog
9. 排序与去重统计
# 统计IP访问次数TOP 10
awk '{print $1}' /var/log/nginx/access.log | sort | uniq -c | sort -rn | head -10# 统计不同状态码数量
awk '{print $9}' /var/log/nginx/access.log | sort | uniq -c# 统计日志总行数
wc -l /var/log/syslog# 统计包含 "error" 的行数
grep -c "error" /var/log/syslog

四、实时监控与复杂分析

10. 实时监控日志中的错误
# 监控多个日志文件
tail -f /var/log/nginx/access.log /var/log/nginx/error.log# 实时跟踪并高亮错误
tail -f /var/log/application.log | grep --color=auto -E "ERROR|FAIL|Exception"# 使用 multitail 工具(需要安装)
multitail /var/log/nginx/access.log /var/log/nginx/error.log
11. 分析时间范围内的日志
# 使用 sed 提取时间范围(比如 14:00 到 14:30)
sed -n '/2024-01-01 14:00:/,/2024-01-01 14:30:/p' /var/log/application.log# 使用 awk 按时间过滤
awk '/2024-01-01 14:00:/,/2024-01-01 14:30:/' /var/log/application.log

五、实用单行命令合集

# 查看最近1小时内修改过的日志文件
find /var/log -name "*.log" -mmin -60# 压缩旧日志(保留原文件)
gzip /var/log/old.log# 查看压缩的日志
zcat /var/log/old.log.gz
zgrep "error" /var/log/old.log.gz# 清空日志文件(谨慎使用!)
: > /var/log/application.log
# 或者
cat /dev/null > /var/log/application.log# 监控HTTP状态码分布(实时)
tail -f /var/log/nginx/access.log | awk '{print $9}' | sort | uniq -c# 查找最频繁访问的URL
awk '{print $7}' /var/log/nginx/access.log | sort | uniq -c | sort -rn | head -20

总结

场景推荐命令
查看最新日志tail -f -n 100 filename.log
搜索关键词grep -C 5 -i "error" filename.log
大文件查看less filename.log
统计与分析awk + sort + uniq 组合
实时监控过滤`tail -f filename.log
提取特定字段awk '{print $1, $5}' filename.log

掌握这些命令的组合使用,你将能高效地处理任何 Linux 日志分析任务。关键在于多用管道 | 将命令组合起来,每个命令只做一件事,然后组合成强大的处理流程。

http://www.dtcms.com/a/428574.html

相关文章:

  • 泰安整站优化wordpress头部空白
  • 考研408之栈与队列学习
  • 软考-系统架构设计师 软件架构概念详细讲解
  • 都匀网站建设住建部注册中心官网
  • Problem: lab-week4- exercise02 Quick sort
  • 营销型网站策划怎么做中国公司查询网站
  • 通信领域常见基本概念与术语
  • Trae CN配置Maven环境
  • 门户网站改版计算机网页设计就业方向
  • 无锡网站设计哪家公司好长春火车站照片
  • 石油钻井为何离不开抗高温抗冲击的石英加速度计?
  • matlab | 基于MATLAB的抽烟识别系统设计:技术框架与实现路径
  • 时间序列 + SHAP/LIME,实现可解释性再突破!
  • 宿迁建设企业网站淘宝接单做网站
  • ACM Comput. Surv.投稿
  • 网站产品分类设计百度做销售网站多少钱
  • 延安免费做网站公司温州网站推广外包
  • 产业资源+金融赋能!沃飞长空与金石租赁开启深度合作
  • 大余网站app的开发需要多少钱
  • 做网站要到通信管理局备案专业俄文网站建设
  • 苏州电信网站备案泉州市亿民建设发展有限公司网站
  • 新天力:为食品安全而生的食品容器专家
  • 程序员创业注意事项
  • 沃尔沃XC70正式上市,积极布局混插市场的沃尔沃未来何在?
  • 使用lombok的sl4j注解,报错java: 找不到符号 符号: 变量 log
  • 廊坊网站建设搭建wordpress页面管理
  • 26.渗透-.Linux基础命令(十八)-Linux系统状态管理(安全加固-查找空密码账号)
  • 山西网站推婚纱摄影网站的设计与实现
  • 专业直播信号源技术解析:从基础配置到商业解决方案
  • 人物设计网站贵阳网站备案在哪里