1.grep -v
ps -ef | grep NameNode
如果执行这条命令会多查询出一个grep的进程,如果不想要grep的进程号就需要使用
ps -ef | grep NameNode | grep -v NameNode
2.awk
awk是一个强大的文本分析工具,相对于grep的查找,sed的编辑,awk在其对数据分析并生成报告时,显得尤为强大。简单来说awk就是把文件逐行的读入,以空格为默认分隔符将每行切片,切开的部分再进行各种分析处理。
在上述ps -ef | grep NameNode | grep -v NameNode的命令中如果想直接得到进程号(第二个值)改写为
ps -ef | grep NameNode | grep -v NameNode | awk '{print {$2}}'
3.xargs
xargs 是给命令传递参数的一个过滤器,也是组合多个命令的一个工具。
xargs 可以将管道或标准输入(stdin)数据转换成命令行参数,也能够从文件的输出中读取数据。
xargs 也可以将单行或多行文本输入转换为其他格式,例如多行变单行,单行变多行。
xargs 默认的命令是 echo,这意味着通过管道传递给 xargs 的输入将会包含换行和空白,不过通过 xargs 的处理,换行和空白将被空格取代。
xargs 是一个强有力的命令,它能够捕获一个命令的输出,然后传递给另外一个命令。
这里用到了它最后一个功能,捕获一个命令的输出并传递到下一个命令
ps -ef | grep NameNode | grep -v NameNode | awk '{print {$2}}' | xargs kill
:这里将获得的进程号传递给kill并杀死