На этот вопрос уже есть ответ здесь:
В чем разница между ps -aux
и ps aux
? Интересно, что это больше, чем просто вопрос синтаксиса и «переносимости». Какой из них лучше использовать в Ubuntu?
Несмотря на некоторые похожие вопросы, меня интересует именно это различие.
BSD и AT&T разработали несовместимые версии ps
. Опции без ведущего тире являются стилем BSD, в то время как те, которые имеют ведущего тире, являются стилем Unix AT&T.
Страница справочника 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).
Ubuntu / Канонический решила показать ошибку. Debian решил дать тот же вывод обоим ps -aux
и ps aux
. В целом, довольно сбивающий с толку. Но, как указано: это должно сделать сценарии совместимыми. И можно использовать то, чем Вы чувствуете себя довольными.