「ps aux」のauxはどういう意味ですか?

「ps aux」のauxはどういう意味ですか?

ps auxauxステータスとリソース使用量(Linux / BSD / MacOS)ですべてのプロセスを一覧表示する便利な方法があるようですがman ps

どういう意味ですかaux

答え1

a = すべてのユーザーのプロセス表示
u = プロセスのユーザー/所有者の表示
x = 端末に接続されていないプロセスも表示

ところで、man ps素晴らしいリソースです。

歴史的に、BSDとAT&Tは互換性のないオプションを開発しましたps。先行ダッシュのないオプション(質問による)はBSDスタイルで、先行ダッシュのあるオプションはAT&T Unixスタイルです。それに加えて、Linuxは両方のスタイルをサポートするバージョンを開発し、オプションが二重ダッシュで始まる3番目のスタイルを追加しました。

すべて(またはほぼすべて)非埋め込みLinuxディストリビューションは、プロセス母音。上記のオプションは次のように定義されます。手順psマニュアルページ

コメントで、あなたはApple MacOS(私の意見ではOSX)を使用していると言いました。 OSXのマニュアルページpsは次のとおりです。ここそして、AT&Tスタイルだけがサポートされていることを示しています。

答え2

man psオプションについては後述する。

   a      Lift the BSD-style "only yourself" restriction, which is imposed 
          upon the set of all processes when some BSD-style (without "-") 
          options are used or when the ps personality setting is BSD-like.  
          The set of processes selected in this manner is in addition to the 
          set of processes selected by other means.  An alternate 
          description is that this option causes ps to list all processes 
          with a terminal (tty), or to list all processes when used together 
          with the x option.

   u      Display user-oriented format.

   x      Lift the BSD-style "must have a tty" restriction, which is imposed 
          upon the set of all processes when some BSD-style (without "-") 
          options are used or when the ps personality setting is BSD-like.
          The set of processes selected in this manner is in addition to the 
          set of processes selected by other means.  An alternate 
          description is that this option causes ps to list all processes 
          owned by you (same EUID as ps), or to list all processes when used 
          together with the a option.

はい

$ ps aux | head -10
USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root         1  0.0  0.0  51120  2796 ?        Ss   Dec22   0:09 /usr/lib/systemd/systemd --system --deserialize 22
root         2  0.0  0.0      0     0 ?        S    Dec22   0:00 [kthreadd]
root         3  0.0  0.0      0     0 ?        S    Dec22   0:04 [ksoftirqd/0]
root         5  0.0  0.0      0     0 ?        S<   Dec22   0:00 [kworker/0:0H]
root         7  0.0  0.0      0     0 ?        S    Dec22   0:15 [migration/0]
root         8  0.0  0.0      0     0 ?        S    Dec22   0:00 [rcu_bh]
root         9  0.0  0.0      0     0 ?        S    Dec22   2:47 [rcu_sched]
...
saml      3015  0.0  0.0 117756   596 pts/2    Ss   Dec22   0:00 bash
saml      3093  0.9  4.1 1539436 330796 ?      Sl   Dec22  70:16 /usr/lib64/thunderbird/thunderbird
saml      3873  0.0  0.1 1482432 8628 ?        Sl   Dec22   0:02 gvim -f
root      5675  0.0  0.0 124096   412 ?        Ss   Dec22   0:02 /usr/sbin/crond -n
root      5777  0.0  0.0  51132  1068 ?        Ss   Dec22   0:08 /usr/sbin/wpa_supplicant -u -f /var/log/wpa_supplica
saml      5987  0.7  1.5 1237740 119876 ?      Sl   Dec26  14:05 /opt/google/chrome/chrome --type=renderer --lang=en-
root      6115  0.0  0.0      0     0 ?        S    Dec27   0:06 [kworker/0:2]
...

上記のスイッチを使用すると、上記のプロセスに関連する出力を得ることができます。

スイッチにaux以下が表示されます。

  • すべてのユーザーのためのプロセス
  • ユーザーに表示される方法でリストされているプロセスを表示します(ユーザー名に基づいて)。
  • 端末に接続されたプロセスだけでなく、すべてのプロセスを表示します。これには、crond、upowerd、その他のサービスなどのプロセスが含まれます。

答え3

理解の鍵はマンページ「aux」(最初の試み)を検索するのではなく、パラメータの種類を説明する部分に集中してくださいps

このpsバージョンはさまざまなオプションを受け入れます:

  1. UNIX オプションはグループ化でき、前にダッシュが必要です。
  2. BSDオプションはグループ化でき、ダッシュでは使用できません。
  3. 2つのダッシュが先行するGNUの長いオプションです。

これにより、これはaux(グループ化された)BSDオプションセットであることがわかり、それをa簡単ux見つけることができます。

  • axどのプロセスが選択され、一緒に使用されるかを制御することは、すべてのプロセスを選択することで明示的に説明されています。

  • uユーザーIDやCPU /メモリ使用量を含む追加の列を提供する「ユーザー側」形式を使用して出力します。

出力形式は個別に制御されるため、u特定のプロセスに固有の「ps aux」スタイルの出力を取得できますps u $pid1 $pid2 ...

答え4

ps:プロセスステータス

私には両方を/bin/ps --version得ます/usr/bin/ps --versionps from procps-ng 3.3.16

ps は次のコマンドです。プロセス
コマンドラインとフルスクリーン便利ナビゲーションの場合、procfsプロセステーブルのエントリの状態に関する情報を提供するためにカーネルによって動的に生成された「類似」ファイルシステム。

文法2つ

システム内のすべてのプロセスを表示するには、次を使用します。

  1. 標準構文
  • ポリスチレン
  • ポリスチレン-EF

しかし、例ps -u

  • ps -u root --format=user,pid,command # 次の行と同じ:
  • ps -uroot --format=user,pid,command # (本当に見苦しい構文です!)

出力は次のとおりです

    USER         PID COMMAND
    root           1 /sbin/init splash
    root           2 [kthreadd]
    root           3 [rcu_gp]
    root           4 [rcu_par_gp]
    root           6 [kworker/0:0H-kblockd]
    root           9 [kworker/u80:0-ixgbe]

このPOSIXおよびUNIX規格によれば、次のことをps -aux意味しますps -a -ux
1. ttyを持つプロセス(セッションリーダーを除く)[by -a]
2.名前が「x」のユーザーが所有するすべてのプロセス[by -ux](-u:有効なプロセスを選択するあなた順)

工程選択オプションが追加されます。 (次の条件を満たす場合は、該当する工程が表示されます。)どの与えられた選択基準)

「x」(現在のユーザー?)というユーザーが存在しない場合ps -aux 可能Falls ps auxと警告を出力します。

-xマニュアルページにはオプションはありませんが、ps -x同じプロセスで見つけることができますps -ux(異なる出力形式)。

  • ps -ux --format=userインポート:
    ユーザー名が存在しません。
  • ps -x --format=user
    正しい結果を取得する(現在のユーザーに対応)

次の事実が思い出されるのも当然ですmanpage

この動作は移行を支援するためのものです。古い スクリプトと習慣。壊れやすいので、依存してはいけません。


  1. BSD構文:
    PS斧
  • 回答:すべてのユーザー

  • x:リストみんなプロセス所有者あなた(psと同じEUID)。または、より具体的には、次のプロセスは含まれません。制御端子(ターミナルに接続されていないプロセスを含む)

    したがって、 axすべてのプロセスが一覧表示されます

  • u: リソース出力あなたセージ形式の
    例: ps axu


このシナリオは、zshオートコンプリートの便利さを示しています(Tabを押してプロンプトを表示)。ここに画像の説明を入力してください。

ここに画像の説明を入力してください。

このマンページは読者に馴染みます。 https://www.mankier.com/1/ps

関連情報