web-dev-qa-db-ja.com

ps -auxとps auxの違い

ps -auxps auxの違いは何ですか?それは単なる構文と「移植性」の問題以上のものだろうか。 Ubuntuで使用する方が良いのはどれですか?

同様の質問がいくつかありますが、この特定の違いに興味があります。

12
floatingpurr

BSDとAT&Tは、psの互換性のないバージョンを開発しました。先頭にダッシュのないオプションはBSDスタイルで、先頭にダッシュのあるオプションはAT&T Unixスタイルです。

psのmanページ にも次のように書かれています:

「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/Canonicalはエラーの表示を選択しました。 Debianは、ps -auxps auxの両方に同じ出力を提供することを選択しました。全体として、かなり混乱しています。ただし、述べたように、これはスクリプトの互換性を維持するためのものでした。そして、あなたは満足していると思うものを使うことができます。

19
Rinzwind