2017-03-09 107 views
0

只是关于grep命令行的一个基本问题。我找到怎样的方式了解使用此命令行的服务在运行过程:Linux中的多个grep命令

ps -ef |grep -v grep | grep mongodb 

我感到困惑的第二grep的:

|grep -v grep | 

为什么我需要使用“ grep“在”-v“之后?

该命令与该命令有什么不同?

ps -ef |grep mongodb 

谢谢!

回答

1

当你grep "mongodb“通过命令行,命令还包含单词‘MongoDB的。’所以你会得到两个结果,这是有缺陷的结果。grep -v是去除grep命令由用户输入。

sh-4.1$ ps -ef |grep -v grep | grep mongodb 
ps 17308 30074 0 06:05 pts/300 00:00:00 sh mongodb 

VS

sh-4.1$ ps -ef |grep mongodb 
ps 17308 30074 0 06:05 pts/300 00:00:00 sh mongodb 
ps 17456 30074 0 06:05 pts/300 00:00:00 grep mongodb #<<<This also contains mongodb word. Hence result is flawed. 
+0

ahh,输入的用户命令也在处理中。非常感谢 –

0

-v选项的grep告知不要让任何通过匹配模式,在包含字符串的“grep”这种情况下线条。 所以,如果你omitt的grep -v grep 你的grep进程本身也会显示在管道中的第二个命令之后的输出中(也是在第三个之后,因为grep进程本身包含单词“mongodb”)。