Linux 三剑客是(grep,sed,awk)三个工具或者说命令的简称,熟练使用这三个工具可以提升运维效率。三剑客在文件处理方面功能非常强大,当然我们只需要掌握他们分别擅长的领域即可:grep擅长查找功能,sed擅长取行和替换。awk擅长取列。
grep介绍
grep是一种强大的文本搜索工具,它能使用特定模式匹配搜索文本,并默认输出匹配行。grep的查询源可以是具体文件,也可以是其他命令的输出结果。
grep常见用法
下面给大家介绍下小P在工作中使用grep较为典型的一些案例
查询mysql初始密码
当我们在linux上安装mysql数据库的时候,第一次启动后登陆需要一个初始密码,这个初始密码保存在了mysql的日志文件中,具体位置是/var/log/mysqld.log。
我们通过以下grep命令来快速查询定位到密码所在的行
cat /var/log/mysqld.log|grep password
grep password /var/log/mysqld.log
查看tomcat日志并只看某一部分的内容
做java开发的程序员对于tomcat可能并不陌生,我们在启动项目以后需要看一下日志来确保项目真的正确启动了,或者在项目出了问题以后我们需要通过看日志来定位到具体的问题,以方便后面的问题修复。
下面的命令我们使用grep并配合多个参数来实现不同需求日志过滤
看INFO日志
tail -f catalina.out | grep INFO
看INFO日志和WARNING日志
tail -f catalina.out | grep -e INFO -e WARNING
不看INFO日志
tail -f catalina.out | grep -v INFO
看ERROR日志以及它的后10行
tail -f catalina.out | grep -A 10 ERROR
看ERROR日志以及它的前10行
tail -f catalina.out | grep -B 10 ERROR
看ERROR日志以及它的前后各10行
tail -f catalina.out | grep -C 10 ERROR
查看java程序进程号
现在新的java项目都基本是spring boot项目,如果公司没有引入docker,那么可能是使用命令java -jar来手动启动的。当我们需要重启时需要先找到当前项目的进程号,将其杀死以后再次启动。
下面的命令都可以找到java项目进程号所在行
ps -aux|grep java
netstat -ntlp|grep java
最后我们附上一个grep命令的进阶版,结合awk和其他工具一行命令实现杀死java程序
# 启动java项目
nohup java -jar demo.jar > nohup.out 2>&1 &
# 关闭java项目
ps -aux|grep demo.jar|grep java|awk '{print $2}' | xargs -r kill -9
朋友们学会了吗,赶快尝试一下吧。