
違いが何であるかを説明できる人はいますか?
ps -ef
そして
ps -auxwww
いくつかの例がありますか?
私はそれらの違いを知りたいだけです。一つ確認しました。郵便はがきps -ef
長いコマンドラインを持つプロセスはリストされていませんが、そのps -auxwww
プロセスもリストされているという情報を提供します。
答え1
ps
これはシステムによって非常に依存するコマンドです。歴史的な理由から様々な味があり、いつもありました。
ps -ef
e
f
AT&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 aux
BSD構文になります。学生AT&T Research(Bell Laboratories)が開発したUnixのオリジナルバージョンに基づいたシステムです。あなたはそこでそれを使用していません-
。a
みんなプロセス(現在の端末に関連するプロセスだけでなくu
)ユーザー側出力x
端末に関連していないプロセスも含めて追加情報が含まれています(Research Unix v3には最初にリリースされたときにすでにps
この機能がありました)。 ~のため-x
w
広いはるかに後で追加されました。
通常、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構文(オプションの機能は避けてください)
特定の基準(コマンドラインを含む)に基づいてプロセスを検索するには、pgrep
(pkill
を使用して終了)を使用します。これは標準ではありませんが一般的で、ハンドルよりも使いやすいですps
。