ps -aux 和 ps aux 的区别

flo*_*urr 12 command-line ps

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

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

Rin*_*ind 19

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).
Run Code Online (Sandbox Code Playgroud)

Ubuntu/Canonical 选择显示错误。Debian 选择为ps -auxps aux. 总而言之,相当混乱。但如前所述:这是/曾经是为了使脚本兼容。你可以使用你觉得满意的东西。

  • 那不应该是“请不要使用 ps -aux”吗?或者你的意思是尝试一下,看看会发生什么 (3认同)