mochikoAsTechのdig日記

当方好きなコマンドはdigです!お友達から!!よろしくお願いします!!!

ps -aux叩いたらWarningが出た

$ ps -aux
Warning: bad syntax, perhaps a bogus '-'? See /usr/share/doc/procps-3.2.8/FAQ

というように、ps -aux叩いたらシンタックスの誤りを指摘されたので、言われた通り /usr/share/doc/procps-3.2.8/FAQ を見てみたら、まんま「なんでps -aux叩くと、ハイフンについて文句言われるのか?」が書いてあった。

Why does "ps -aux" complain about a bogus '-'?

According to the POSIX and UNIX standards, the above command asks to display
all processes with a TTY (generally the commands users are running) plus all
processes owned by a user named "x". If that user doesn't exist, then ps will
assume you really meant "ps aux". The warning is given to gently break you of a
habit that will cause you trouble if a user named "x" were created.

要約すると「お前が実行したいのはps auxだと思うけど、ps -auxだと本当は出力結果違うから、次からはハイフンなしを使えよ」と注意されてる模様。

「ps aux」だとuが「ユーザー指向のフォーマットでプロセスを」、axが「全て表示」なんだけど、

「ps -aux」だと、-uxが「このユーザ(x)のプロセスを」、-a が「全て表示」になって、xのプロセスが出ちゃうのか。

ハイフンありとなしで全然違うオプションなんだね、その辺はman psしたら詳しく書いてあった。

たまたま「x」という名前のユーザが居なければ、「ps -aux」でも「ps aux」と同じ結果が得られるけど、それはpsコマンドの親切心から来るもので、いずれは変更される可能性もあるし、そもそもxというユーザが作られたらそこで終わりなので、早めにハイフンなしを使うことに慣れとけよ、という忠告なんだね。ありがとう、psコマンド。