如何列出我的用户拥有的所有进程?

如何列出我的用户拥有的所有进程?

列出我的用户的所有进程名称。

我可以

ps aux | grep username

但输出会像这样:

maythux  18343  0.0  0.1 1070868 34504 ?       Sl   Jun03   0:07 empathy
maythux  21562  0.0  0.1 703716 32104 ?        Sl   Jun10   0:00 /usr/bin/python /usr/bin/blueman-applet
maythux  21574  0.0  0.0  53532  2408 ?        S    Jun10   0:00 /usr/bin/obex-data-server --no-daemon 
maythux  25197  0.0  1.0 2199840 258576 ?      Sl   May27   0:24 remmina

但我只希望输出看起来像:

empathy
blueman-applet
obex-data-serve
remmina

那么最简单的方法是什么?

答案1

您可以使用命令本身轻松完成此操作,ps无需任何其他工具:

ps -U user-name -o comm= 

如果您想要排序并删除重复的条目,您可以这样做:

ps -U user-name -o comm= | sort | uniq

这是我的输出示例:

liferea
mission-control
nacl_helper
nautilus
nm-applet
notify-osd
nxclient.bin
nxnode.bin
obex-data-serve
okular
polkit-gnome-au

答案2

为了完整起见,您还可以使用pgrep

pgrep -lU foobar

这将匹配用户的真实用户 ID foobar。这将显示带有 PID 的输出。

如果您只想要进程名称,也可以删除重复项:

pgrep -lU foobar | cut -d' ' -f2 | sort -u  ##Using RUID

pgrep -lu foobar | cut -d' ' -f2 | sort -u  ##Using EUID

相关内容