awk基础-筛选运行程序并杀掉

查找进程PID,查找进程启动路径

1 根据 pwd 找到 PID

ps -ef|grep 'elasticsearch' | grep -v grep | awk '{print $2}' 
ps -ef|grep 'elasticsearch' | grep -v grep | awk '{print $2}' | xargs kill -9

2 根据 port 找到 PID

lsof -i:<port>
lsof -i:<port>|grep -v grep|grep -v PID|awk '{print $2}'

3killall命令 如: killall -9 java 杀掉所有的java进程

killall命令杀死同一进程组内的所有进程。其允许指定要终止的进程的名称,而非PID。

3.1.根据条件过滤后杀掉进程:如:ps -ef |grep simo- |

ps -ef | grep simo- | grep -v grep | awk '{print $2}' | xargs --no-run-if-empty kill -9
  • 多个过滤条件求并集

  • grep simo- :过滤出simo- 字样

  • grep -v grep” 在文档中 过滤掉包含有grep字符的行

  • awk ‘{print $2}’ $fileName : 一行一行的读取指定的文件, 以空格作为分隔符,打印第二个字段,第二个字段即 pid号, 过滤出pid号

  • 比如有这样一个文件

  • a1 b1 c1 d1

  • a2 b2 c2 d2

  • 执行的结果是,输出

  • b1

  • b2

  • -r, –no-run-if-empty

如果标准输入中没有任何非空的字符,则不运行命令;默认情况下即使标准输入没有非空字符,命令也会被运行一次