答案1
在 Ubuntu 中,grep
是 的别名grep --color=auto
。您可以通过运行 来确认type grep
。当您运行 时grep something
,您将实际上跑步grep --color=auto something
。
现在,当grep
运行 或任何其他命令时,都会创建一个进程。因此,即使某个进程在内存中不存在,它也会产生一个输出,该输出显然是该grep
进程。例如,我没有注册为 的应用程序/程序foo
。但即使我运行ps aux | grep foo
,我也会得到:
kulfy 13544 0.0 0.0 21532 1076 pts/0 S+ 23:59 0:00 grep --color=auto foo
grep
一旦处理完从 管道传输的所有输出,该进程将自动终止ps aux
。
您可以使用pgrep
而是。它将显示正在运行的进程的进程 ID,并将名称作为参数传递。它不需要通过管道传输。
进一步阅读:
答案2
正如已经回答的那样,您正在查看自己的grep
进程。这就是为什么每个进程都有一个新的 PID。如果您想排除包含的这些行grep
,您可以执行ps ax | grep [g]eth
。