“ps”命令的哪些标志适用于 Unix 标志格式,哪些标志适用于 BSD 标志格式?

“ps”命令的哪些标志适用于 Unix 标志格式,哪些标志适用于 BSD 标志格式?

ps命令可以采用两种格式的标志:

  • Unix 格式,您应该在标志前面加上破折号。
  • 在 BSD 格式中,您不应在标志前加上破折号。

我浏览了一下联机帮助页用于ps查看哪些标志适用于 Unix 标志格式以及哪些标志适用于 BSD 标志格式的命令,但我没有找到任何内容。


编辑:这不是重复的,在另一个问题中,我问 Unix 和 BSD 标志格式的标志是否不同,而在这个问题中,我问 Unix 标志格式的标志是什么,BSD 标志的标志是什么格式。

答案1

联机帮助页不按样式对选项进行分组,而是按功能对选项进行分组。您可以通过查看选项的呈现方式来区分样式:

  • 列出的 BSD 选项不带前导破折号(a, g, T, r, x...);
  • POSIX 选项以单个前导破折号列出(-A, -a, -d, -e, -N...);
  • GNU 长选项列出时带有两个前导破折号 ( --deselect...)。

正如 Kusalananda 所建议的,最好只使用 POSIX 选项,并且仅在需要了解其他人对ps.

答案2

POSIX 标准描述ps实用程序概要如下:

ps [-aA] [-defl] [-g grouplist] [-G grouplist]
   [-n namelist] [-o format]... [-p proclist] [-t termlist]
   [-u userlist] [-U userlist]

由于围绕 的“UNIX 选项”和“BSD 选项”显然存在一些混淆ps,并且 OpenBSD、NetBSD、FreeBSD 和 macOS 甚至都没有在其手册中列出“BSD 选项”(无破折号标志)ps,也许最好忘记它们并将它们视为 UNIX 历史上已结束的章节的一部分?

POSIX Rationale 部分确实ps提到基于 System V 的 Unices 和基于 BSD 的 Unices 之间在实现方面存在不兼容性ps(以及标准化标志的方式背后的推理),但它从未提及 dash-less旗帜。

以供参考:

答案3

PS 支持三 (3) 种使用语法样式:

  • UNIX 风格,可以分组并且前面必须有破折号 - 例如ps -aux
  • BSD 风格,可以分组并且不能与破折号一起使用 - 例如ps aux
  • GNU 长选项,前面有两个破折号,例如ps --aux

相关内容