grep—awk—sed 与 xargs 组合使用

获得进程的PID

ps -ef | grep "hz-web" | grep -v grep | awk '{print $2}' | sed -n '1p'

命令解释:

ps -ef : 获取当前进程信息,作为输入源传到grep

grep "hz-web" :只获取进程名包含"hz-web"的所在行的数据,作为输入源传到后面那个grep

grep -v grep:列出除开grep命令本身的进程,作为输入源传到awk

awk '{print $2}' :获取传入数据源的第二列数据(进程号),作为输入源传到sed

sed -n '1p' :获取传入数据源的第一行(只输出第一个符合要求的进程号PID)

 

根据进程名批量杀进程

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

ps -ef | grep "hz-web" | grep -v grep | awk '{print $2}' :将所获得的所有进程号PID作为输入源传到kill

grep -v grep:列出除开grep命令本身的进程,作为输入源传到awk 避免grep这个命令进程也杀掉,有可能导致你要杀的进程杀的不干净

xargs :xargs命令可以通过管道接受字符串,并将接收到的字符串通过空格分割成许多参数(默认情况下是通过空格分割) 然后将参数传递给其后面的命令,作为后面命令的命令行参数。

 

 

你可能感兴趣的:(linux,shell)