最近学习的一些linux命令

前言

之前杀死tomcat进程,要么是通过进入tomcat中的bin目录,使用shutdown.sh来停止tomcat,要么是通过分步骤执行命令来杀死tomcat进程来停止tomcat服务。最近看到使用一条长命令来停止tomcat服务,里面有不少命令不熟悉,就去查资料了解下,在这里记录下来。

场景

强制杀死tomcat进程

使用的命令
ps aux| grep /zndata/server/apache-tomcat/tomcat|grep -v grep | cut -c 9-15 | xargs kill -9

1 grep -v grep:表示在文档中过滤掉包含有grep字符的行,参数v表示过滤的作用。

ps aux| grep /zndata/server/apache-tomcat/tomcatps aux| grep /zndata/server/apache-tomcat/tomcat|grep -v grep 区别如下:

2 cut -c 9-15:cut是一个选取命令,就是将一段数据经过分析,取出我们想要的,-c是以字符为单位进行分割。9-15表示从第9个字符开始截取,到第15个字符结束

ps aux| grep /zndata/server/apache-tomcat/tomcat|grep -v grep | cut -c 9-15 |的效果如下:

3 xargs kill -9: xargs是将管道之前得到的值作为一个参数传进来,ps aux| grep /zndata/server/apache-tomcat/tomcat|grep -v grep | cut -c 9-15得到的值为17597,那么ps aux| grep /zndata/server/apache-tomcat/tomcat|grep -v grep | cut -c 9-15| xargs kill -9等同于 kill -9 17597,杀死pid为17597的进程。

4 ps aux | grep tomcat |grep -v grep | awk '{print $2}'| xargskill -9 这条命令也可以杀死tomcat进程。awk是一个强大的文本分析工具,awk就是把文件逐行的读入,以空格为默认分隔符将每行切片,切开的部分再进行各种分析处理。$2表示第二个参数,以空格为分隔符,tomcat的pid正好是第二个。print表示将其标准输出在控制台。

总结

杀死tomcat进程的基本思路是首先查找所有进程,通过grep查到tomcat进程,过滤掉grep其本身的进程,再截取到tomcat的pid,将pid作为参数传入,使用kill命令杀死该pid进程。cut和awk命令均是为了截取到tomcat的pid。

参考文章

  1. linux awk命令
  2. xargs命令详解,xargs与管道的区别
  3. linux之cut用法