Linux环境查看日志的常用操作

这篇博客介绍了在Linux环境中进行文件查找、关键字搜索、查看文本文件内容以及在不解压的情况下查看jar包内容的常用命令。包括`find`、`grep`、`cat`、`tail`、`head`、`vim`的使用方法,以及在jar包中查看文件的技巧,是提升Linux操作效率的好帮手。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

查找文件名

根据关键字查找某个文件附近的文本

查找关键字以及对应文件

查看文本文件(比如错误日志error.log)

如何在机器上不解压就查看jar包里的内容

最后再补充一些最基本的操作


查找文件名

find . -name "*log4j*"

ls | grep log4j

根据关键字查找某个文件附近的文本

cat error.log | grep "xx异常" | grep "2023-07-10"

查找关键字以及对应文件

grep -r "SpringBoot Application"     ————  这行命令会扫描当前文件夹下的所有文本文件,查找里面的关键字匹配,并把文件名展示出来。

grep 'server.port' application. properties   ————   这行命令会在当前文件夹下的application. properties文件里面查到关键字和关键字附近的文本,并展示出来。

查看文本文件(比如错误日志error.log)

tail -n 200 error.log   ————   这行命令会展示当前文件夹下的error.log文件的最下面200行。

head -n 200 error.log   ————  最上面200行。

cat error.log  ————  查看文件

cat error.log | tail -n 200  ————  最上面200行

cat error.log | head -n 300 | tail -n +100    ————  100~300行

vim error.log   ————  进入error.log文件

vim模式中的一些操作:

  1. shift+g:跳到末尾;GG:跳到开头
  2. 按回车,进入编辑文本模式
    1. 编辑完成后点击Esc,退出编辑文本模式
  3. 不按回车,按Esc,进入输入命令模式
    1. 输入“/”,此时屏幕会跳转到底部
    2. 输入关键字回车,可以查找关键字
    3. 继续查找,输入n;向前查找,输入N
  4. 输入“:wq”,保存并离开;“:q”只有离开。如果不想编辑文本最好选择:q,这样即便误编辑了文本也不会保存。有些特殊情况需要输入“:q!”来强制退出。

如何在机器上不解压就查看jar包里的内容

  1. vim jar包
  2. 光标选择要查看的文件,回车
  3. 查看内容
  4. 输入:q,也可能是:q!,回车,退出文件
  5. 输入:q,也可能是:q!,回车,退出jar包

最后再补充一些最基本的操作

  1. pwd ——  显示当前位置路径、
  2. cd user ——  移动到user文件夹
  3. 输入单词按tab键:补全文件名。这个操作在不是很低的Linux版本中也适用于多层级文件夹时。
  4. ls —— 显示当前目录下的文件。ls -a —— 显示文件并包括以.开头的隐藏文件。ls -l —— 显示目录下文件的详细信息,缩写是 ll
  5. 所有命令前面加 sudo —— 用root用户身份执行命令
  6. chmod -R 755 文件名或目录名 ———— 给自己读、写、执行权限,给其他人读、执行权限。777 则是给所有人所有权限。

连着水了几篇,深感内疚,大的快来了!

apache-log4j-1.2.15.jar, apache-log4j-extras-1.0.jar, apache-log4j-extras-1.1.jar, apache-log4j.jar, log4j-1.2-api-2.0.2-javadoc.jar, log4j-1.2-api-2.0.2-sources.jar, log4j-1.2-api-2.0.2.jar, log4j-1.2.11.jar, log4j-1.2.12.jar, log4j-1.2.13-sources.jar, log4j-1.2.13.jar, log4j-1.2.13.src.jar, log4j-1.2.14-sources.jar, log4j-1.2.14.jar, log4j-1.2.15-sources.jar, log4j-1.2.15.jar, log4j-1.2.16-sources.jar, log4j-1.2.16.jar, log4j-1.2.5.jar, log4j-1.2.6.jar, log4j-1.2.7.jar, log4j-1.2.8.jar, log4j-1.2.9.jar, log4j-1.2.91.jar, log4j-1.2.jar, log4j-1.2rc1.jar, log4j-1.3alpha-7.jar, log4j-api-2.0.2-javadoc.jar, log4j-api-2.0.2-sources.jar, log4j-api-2.0.2.jar, log4j-boot.jar, log4j-bridge-0.9-sources.jar, log4j-bridge-0.9-tests.jar, log4j-bridge-0.9.4-sources.jar, log4j-bridge-0.9.4-tests.jar, log4j-bridge-0.9.4.jar, log4j-bridge-0.9.6-sources.jar, log4j-bridge-0.9.6-tests.jar, log4j-bridge-0.9.6.jar, log4j-bridge-0.9.jar, log4j-config.jar, log4j-core-2.0.2-javadoc.jar, log4j-core-2.0.2-sources.jar, log4j-core-2.0.2-tests.jar, log4j-core-2.0.2.jar, log4j-core.jar, log4j-ext.jar, log4j-flume-ng-2.0.2-javadoc.jar, log4j-flume-ng-2.0.2-sources.jar, log4j-flume-ng-2.0.2.jar, log4j-java1.1.jar, log4j-jcl-2.0.2-javadoc.jar, log4j-jcl-2.0.2-sources.jar, log4j-jcl-2.0.2.jar, log4j-jmx-gui-2.0.2-javadoc.jar, log4j-jmx-gui-2.0.2-sources.jar, log4j-jmx-gui-2.0.2.jar, log4j-nosql-2.0.2-javadoc.jar, log4j-nosql-2.0.2-sources.jar, log4j-nosql-2.0.2.jar, log4j-over-slf4j-1.5.0.jar, log4j-over-slf4j-1.5.10.jar, log4j-over-slf4j-1.5.3.jar, log4j-over-slf4j-1.5.5.jar, log4j-over-slf4j-1.5.6-sources.jar, log4j-over-slf4j-1.5.6.jar, log4j-over-slf4j-1.5.8-sources.jar, log4j-over-slf4j-1.5.8.jar, log4j-over-slf4j-1.6.1.jar, log4j-slf4j-impl-2.0.2-javadoc.jar, log4j-slf4j-impl-2.0.2-sources.jar, log4j-slf4j-impl-2.0.2.jar, log4j-snmp-appender.jar, log4j-taglib-2.0.2-javadoc.jar, log4j-taglib-2.0.2-sources.jar, log4j-taglib-2.0.2.jar, log4j-to-slf4j-2.0.2-javadoc.jar, log4j-to-slf4j-2.0.2-sources.jar, log4j-to-slf4j-2.0.2.jar, log4j-web-2.0.2-javadoc.jar, log4j-web-2.0.2-sources.jar, log4j-web-2.0.2.jar, log4j-wjw.jar, log4j-xml-1.3alpha-7.jar, log4j.jar, org.apache.log4j_1.2.15.v201005080500.jar, org.apache.log4j_1.2.15.v201012070815.jar
虽然这个问题偏向Linux系统操作层面而非直接与Java相关,但我可以为你介绍一些常用查看日志的命令,在开发环境中(尤其是基于Linux的服务端Java应用)这也是非常有用的技能。 在Linux查看日志文件最常使用的命令包括`cat`,`less`, `more`, `tail`以及带有颜色高亮显示效果的`ccze`等工具,并且结合使用`grep`进行过滤查找也是非常常见的需求。 1. **Cat**:这个命令会将整个文本内容一次性全部输出到屏幕上。 ```bash cat /path/to/logfile.log ``` 然而对于大文件而言不建议用此方法因为可能会导致屏幕被大量信息刷满难以阅读并且无法滚动回溯。 2. **Less/More**:这两个工具都可以分页地展示文档内容但相比之下`less`功能更加强大支持向前及向后翻阅而`more`只可向下读取不能返回上一行或页面。 - 使用`q`退出浏览; - 可以上下左右键、空格键翻页; - `/pattern`搜索匹配的内容。 例如利用`less`打开日志并查询包含特定关键词的日志行: ```bash less +F logfile.log # 实时跟踪最新添加的日志条目直到按下Ctrl+C停止监听模式然后可以通过其他快捷键如?keyword来进行历史记录中的反向搜索 # 或者先启动less再按shift+F进入类似尾部追踪的状态 less logfile.log ``` 3. **Tail**:通常用来打印出指定文件的最后一部分数据,默认情况下为最后一屏的信息。加上参数-f可以让其持续监控新增加的数据。 例如一直关注某个正在写入的日志的变化情况: ```bash tail -f catalina.out # 对于Tomcat服务器来说catalina.out就是很典型的应用程序运行期标准输出流重定向后的目标之一 ``` 4. 如果安装了`ccze`(需自行确认环境是否具备),那么它能给普通纯文本形式的日志增添色彩标记从而更容易识别不同类型的事件。 ```bash tail -f access_log | ccze -A ``` 5. 结合Grep对海量日志做初步筛选是非常实用的做法比如找出所有含有错误(ERROR)级别的消息或是某一天内发生的活动。 ```bash grep 'ERROR' application.log # 获取所有的error级别日志 # 加上时间戳过滤条件 grep $(date +"%Y-%m-%d") myapp-debugging-info.txt # 这样就能拿到今天生成的相关联调试详情片段啦! # 当然也可以两者一起用同时限定日期范围和关键字 grep "WARN" catalina.out | grep "$(date --date="yesterday" +%Y-%m-%d)" ``` 6. 此外还有专门用于处理syslog格式(大多数守护进程默认采用该结构化布局存储自身运作状态报告)的专业软件像Logwatch,Swatch等等这里就不展开介绍了。 7. 对于Java应用程序开发者特别要注意的是如果是在生产环境下部署Web容器(Jetty,Tomcat...)或者框架(Spring Boot..),这些平台往往会自带私有的日志管理体系(SLF4J+Logback...,java.util.logging...).所以应当熟悉查阅对应官方手册了解具体配置项含义以便准确高效定位故障点。 8. 最近还流行起一种集中式管理分布式架构下的各类异构来源产生的非结构化半结构性元数据的方法——ELK(Elasticsearch Logstash Kibana)/EFK(Elastisearch Fluent-bit Kibana)...借助这类解决方案我们可以跨越多个主机甚至云端实例收集整理分析庞大的二进制流转换之后的文字描述进而绘制可视化图表辅助决策制定优化业务逻辑提高运维效率降低成本支出... 综上所述掌握基本shell脚本指令只是第一步更重要是要学会根据实际场景选择合适的技术手段灵活组合运用才能真正发挥最大价值!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值