Команда ps
может принимать флаги в двух форматах:
- Формат Unix, в котором перед флагами следует ставить дефис.
- Формат BSD, в котором не следует ставить дефис перед флагами.
Я просмотрелстраница руководствадля ps
команды, чтобы увидеть, какие флаги относятся к формату флагов Unix, а какие — к формату флагов BSD, но я ничего не нашел.
Редактировать:это не дубликат, в другом вопросе я спрашиваю, различаются ли флаги для формата флагов Unix и BSD, тогда как в этом вопросе я спрашиваю, каковы флаги для формата флагов Unix и каковы флаги для формата флагов BSD.
решение1
Theстраница руководстване группирует опции по стилю, а группирует их по функции. Вы можете различить стиль, посмотрев на то, как представлены опции:
- Параметры BSD перечислены без начального дефиса (
a
,g
,T
,r
,x
...); - Параметры POSIX перечислены с одним начальным дефисом (
-A
,-a
,-d
,-e
,-N
...); - Длинные параметры GNU перечислены с двумя дефисами в начале (
--deselect
...).
Как предлагает Кусалананда, хорошей идеей будет просто использовать параметры 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» ps
говорится о наличии несовместимости между Unix-системами на базе System V и Unix-системами на базе BSD в отношении реализации ps
(и обоснования стандартизации флагов таким образом, как это было сделано), но в нем ни разу не упоминаются флаги без тире.
Для справки:
решение3
PS поддерживает три (3) типа стилей синтаксиса использования:
- в стиле UNIX, которые могут быть сгруппированы и должны начинаться с тире, например
ps -aux
- Стиль BSD, который может быть сгруппирован и не должен использоваться с тире, например
ps aux
- Длинные параметры GNU, которым предшествуют два тире, например
ps --aux