Linux / Bash,使用ps -o获取特定名称的进程?

我正在尝试使用ps -o命令来获取有关与特定名称匹配的进程的具体信息。 然而,我在这方面有一些问题,当我尝试使用它甚至只是得到所有进程,就像这样,它只是返回一个普通的ps -ef将返回的子集(它不会返回几乎相同的数字的结果,所以它不返回所有正在运行的进程)

 ps -ef -o pid,time,comm 

我想尝试像这样(下面),但纳入ps -o只是从它得到的具体信息(只是PID)

 ps -ef |grep `whoami`| grep firefox-bin 

任何意见,赞赏如何做到这一点,谢谢

这将通过名称获得进程的PID:

 pidof name 

然后,您可以将其重新插入ps以获取更多详细信息:

 ps -p $(pidof name) 

这是有点旧,但我想你想要的是:ps -o pid -C PROCESS_NAME,例如:

 ps -o pid -C bash 

编辑:依靠你期望的输出types, pgrep会更优雅。 据我所知,这是Linux专用的,并产生与上述类似的输出。 例如:

 pgrep bash 
 ps -fC PROCESSNAME 

ps和grep是一个危险的组合 – grep试图匹配每一行上的所有内容(因此这些都很常见:grep -v grep hack)。 ps -C不使用grep,它使用进程表进行完全匹配。 因此,您将得到一个准确的列表:ps -fC sh而不是查找每个进程sh的某处。

有时候你需要用名字grep进程 – 在这种情况下:

 ps aux | grep simple-scan 

示例输出:

 simple-scan 1090 0.0 0.1 4248 1432 ? S Jun11 0:00