ps -ef 和 ps aux 在 macOS 或 Linux 中有什么区别?
What are the differences between ps -ef and ps aux in macOS or in Linux?
当使用 ps
时,$ ps -ef
和 $ ps aux
似乎给出相同的结果。 有什么区别?
我发现了什么
我使用 man ps
查找了手册,得到了 -e
和 -f
的答案。但我没有看到 aux
— 我在 man ps
下使用了 /aux
搜索,但返回的都是一些与 Max OS X Tiger 相关的遗留通知,而我在macOS 高山脉:
LEGACY DESCRIPTION The biggest change is in the interpretation of the -u option, which now displays processes belonging to the specified username(s). Thus, "ps -aux
" will fail (unless you want to know about user "x"). As a convenience, however, "ps aux
" still works as it did in Tiger. (March 20, 2005)
那么,ps -ef
和ps aux
有什么区别呢?谢谢!
有些选项相同,有些接近。基本上 aux
是 BSD 风格而 -ef
是 UNIX 风格。从 Linux 手册页的第一部分(我假设 OSX 版本具有支持这两种类型的类似推理):
This version of ps accepts several kinds of options:
1 UNIX options, which may be grouped and must be preceded by a dash.
2 BSD options, which may be grouped and must not be used with a dash.
3 GNU long options, which are preceded by two dashes.
有关 -ef
和 aux
的详细信息在手册页中。我只是想澄清您可能对为什么它们都受支持感到困惑。
linux 手册页还详细说明了使用 BSD 选项时的一些一致差异。这对于 MacOS 可能是也可能不是,所以我不会 link 它。
有一小部分命令行工具已经存在了很长时间并且经常使用,足以让他们为了方便而开始丢失and/or从来没有正式的-
旗帜。 tar
和 ps
是两个很好的例子。
为什么要使用 aux
而不是 ef
? f
标志显示进程系列并将它们更好地组合在一起。 aux
是几十年前系统的悠久传统,即使它是非标准的,也有望发挥作用。
从历史上看,macOS 起源于 BSD,因此 ps
的论点更类似于 FreeBSD。 GNU/Linux 继承自 AT&T UNIX (System V),它具有类似的工具,但以不同的方式发展。这两个世界之间有很多重叠,许多工具从一个世界跳到另一个世界,但是仍然有一些历史原因导致一些论点不同。
请记住 ps
不是“bash
东西”,它是一个系统命令,可以与 bash
以及其他 shell 一起使用,或者直接调用时根本没有 shell 。尽量不要将 shell 提供的命令行环境(如 bash
)与捆绑为操作系统一部分的 POSIX/UNIX 工具套件(如 ps
)混淆。
当使用 ps
时,$ ps -ef
和 $ ps aux
似乎给出相同的结果。 有什么区别?
我发现了什么
我使用 man ps
查找了手册,得到了 -e
和 -f
的答案。但我没有看到 aux
— 我在 man ps
下使用了 /aux
搜索,但返回的都是一些与 Max OS X Tiger 相关的遗留通知,而我在macOS 高山脉:
LEGACY DESCRIPTION The biggest change is in the interpretation of the -u option, which now displays processes belonging to the specified username(s). Thus, "
ps -aux
" will fail (unless you want to know about user "x"). As a convenience, however, "ps aux
" still works as it did in Tiger. (March 20, 2005)
那么,ps -ef
和ps aux
有什么区别呢?谢谢!
有些选项相同,有些接近。基本上 aux
是 BSD 风格而 -ef
是 UNIX 风格。从 Linux 手册页的第一部分(我假设 OSX 版本具有支持这两种类型的类似推理):
This version of ps accepts several kinds of options:
1 UNIX options, which may be grouped and must be preceded by a dash.
2 BSD options, which may be grouped and must not be used with a dash.
3 GNU long options, which are preceded by two dashes.
有关 -ef
和 aux
的详细信息在手册页中。我只是想澄清您可能对为什么它们都受支持感到困惑。
linux 手册页还详细说明了使用 BSD 选项时的一些一致差异。这对于 MacOS 可能是也可能不是,所以我不会 link 它。
有一小部分命令行工具已经存在了很长时间并且经常使用,足以让他们为了方便而开始丢失and/or从来没有正式的-
旗帜。 tar
和 ps
是两个很好的例子。
为什么要使用 aux
而不是 ef
? f
标志显示进程系列并将它们更好地组合在一起。 aux
是几十年前系统的悠久传统,即使它是非标准的,也有望发挥作用。
从历史上看,macOS 起源于 BSD,因此 ps
的论点更类似于 FreeBSD。 GNU/Linux 继承自 AT&T UNIX (System V),它具有类似的工具,但以不同的方式发展。这两个世界之间有很多重叠,许多工具从一个世界跳到另一个世界,但是仍然有一些历史原因导致一些论点不同。
请记住 ps
不是“bash
东西”,它是一个系统命令,可以与 bash
以及其他 shell 一起使用,或者直接调用时根本没有 shell 。尽量不要将 shell 提供的命令行环境(如 bash
)与捆绑为操作系统一部分的 POSIX/UNIX 工具套件(如 ps
)混淆。