该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