ps -aux和ps aux之间的区别

ps -auxps aux什么区别? 我不知道这不仅仅是语法和“可移植性”的问题。 在Ubuntu中哪一个更好用?

尽管存在一些类似的问题,但我对这一具体差异感兴趣。

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 ' or 'ps --help ' for additional help text. For more details see ps(1). 

Ubuntu / Canonical选择显示错误。 Debian选择为ps -auxps aux提供相同的输出。 总而言之,令人困惑。 但正如所述:这是为了使脚本兼容。 你可以使用你感到满意的东西。