ps -aux
和之间有什么区别ps aux
?我想知道这不仅仅是语法和“可移植性”的问题。哪一个更适合在 Ubuntu 中使用?
尽管存在一些类似的问题,但我对这个具体的区别很感兴趣。
答案1
BSD 和 AT&T 开发了不兼容的版本ps
。没有前导破折号的选项是 BSD 风格,而带有前导破折号的选项是 AT&T Unix 风格。
这ps 手册页也有这样的说法:
请注意,“ps -aux”与“ps aux”不同。POSIX 和 UNIX 标准要求“ps -aux”打印名为“x”的用户拥有的所有进程,以及打印由 -a 选项选择的所有进程。如果名为“x”的用户不存在,则此“ps”可能会将命令解释为“ps aux”并打印警告。此行为旨在帮助过渡旧脚本和习惯。它很脆弱,可能会发生变化,因此不应依赖它。
Linux 选择同时支持两者。ps -au{user}
如果您提供不存在的用户,将会出错。请参阅:
$ ps -autest
error: user name does not exist
Usage:
ps [options]
Try 'ps --help <simple|list|output|threads|misc|all>'
or 'ps --help <s|l|o|t|m|a>'
for additional help text.
For more details see ps(1).
Ubuntu/Canonical 选择显示错误。Debian 选择为ps -aux
和提供相同的输出ps aux
。总而言之,相当令人困惑。但正如所述:这是为了使脚本兼容。你可以使用你觉得合适的。