ps -efとps -auxwwwの違いは何ですか?

ps -efとps -auxwwwの違いは何ですか?

違いが何であるかを説明できる人はいますか?

ps -ef

そして

ps -auxwww

いくつかの例がありますか?


私はそれらの違いを知りたいだけです。一つ確認しました。郵便はがきps -ef長いコマンドラインを持つプロセスはリストされていませんが、そのps -auxwwwプロセスもリストされているという情報を提供します。

ベストアンサー1

psこれはシステムによって非常に依存するコマンドです。歴史的な理由から様々な味があり、いつもありました。

ps -efefAT&T で Unix 商用化を担当する部分である USG (Unix Support Group) に基づく Uller 形式のリストで Unices に関する情報を取得するための構文です。あるいは、必要に応じてSysV構文を使用できます。ただし、SysV構文ps -efは1980年にSysIIIに存在しました。

これはPOSIXで指定されていますが、XSIオプションでのみ指定されています(SysVベースのシステムにある種の標準化を提供するように設計されており、現在POSIXにマージされているX / Open仕様に対応しています)。

最も近いPOSIXに対応するのはps -A -o user,pid,ppid,tty,time,args(欠落C(CPU)列)です.

ps auxBSD構文になります。学生AT&T Research(Bell Laboratories)が開発したUnixのオリジナルバージョンに基づいたシステムです。あなたはそこでそれを使用していません-aみんなプロセス(現在の端末に関連するプロセスだけでなくuユーザー側出力x端末に関連していないプロセスも含めて追加情報が含まれています(Research Unix v3には最初にリリースされたときにすでにpsこの機能がありました)。 ~のため-xw広いはるかに後で追加されました。

通常、Linuxベースのシステムで見られる実装は、procps ps異なる(しばしば互換性のない)構文、SysV構文、BSD構文、またははるかに似たHP / UXまたはAIX構文を調和しようとするため、ほとんどの構文がサポートされていますが、例外:1つが他方と衝突します。

システムのマニュアルページでは、さまざまなフラグの意味に関するすべての詳細を提供します。

コマンドラインの切り捨ては、ps -efシステム、システムバージョン、実装とバージョンps、出力が端末に送信されるかどうかによって大きく異なります。一部のサポートにより、-wより広くなりました。一部のシステム(以前のバージョンのLinuxを含む)では、コマンドラインはシステム自体によって切り捨てられるため、サイズが非常に大きい場合はコマンドライン全体を簡単に取得できません。

デフォルトでは、必須フィールドを指定するオプションもあります。

ps -A -o pid -o args

たとえば、llプロセスのpidとコマンドラインにのみ適用されますA(技術的には、プロセスが実行した最後のコマンドに渡される引数のリストですが、多くのシステムではプロセスがそれをランダムに変更する可能性があります)。

ps -A -o pid= -o args=

タイトルをスキップしてください。

すべてのシステムが同じフィールドのリストをサポートしているわけではありません。

スクリプトでは、以下に固執することをお勧めします。POSIX構文(オプションの機能は避けてください)

特定の基準(コマンドラインを含む)に基づいてプロセスを検索するには、pgreppkillを使用して終了)を使用します。これは標準ではありませんが一般的で、ハンドルよりも使いやすいですps

おすすめ記事