ps -aux 和 ps aux 之间的区别

ps -aux 和 ps aux 之间的区别

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。总而言之,相当令人困惑。但正如所述:这是为了使脚本兼容。你可以使用你觉得合适的。

相关内容