我需要找到所有所有者既不是 root 也不是 Student 的正在运行的进程。我知道如何按类型获取所有者既不是 root 也不是 Student 的正在运行的进程
ps aux | egrep '^[^(root)|(Student)]'
我正在努力获取所有非 Student 或 root 的正在运行的进程。目前,我只能通过输入以下代码来获取一些正在运行的进程
ps aux | egrep '^[^(root)|(Student)]'
我试过了[a-z]+
,它显示了 root 和其他正在运行的进程。如何在没有 root 和 Student 的情况下获取所有正在运行的进程egrep
?
答案1
ps aux | grep -vE '^(root|Student) '
'[^(root)|(Student)]'
会匹配不属于该类别的字母,这不是我们想要实现的。只需将grep -E
(与 相同egrep
)与正则表达式一起使用'^(root|Student) '
(匹配以 或 开头root
并Student
以空格结尾的所有内容),但打印所有内容不是使用-v
选项进行匹配。
另外,注释ps
允许您自定义列。例如,如果您只想要 pid,则可以使用ps -eo ruser,pid
而不是。或者,您可以使用而不是 来ps aux
按 uid 进行匹配(如果用户名被截断,则尤其困难)。ruid
ruser