Linuxのユーザー数を確認する方法

whoコマンドは、マシン上で開かれているすべてのログインセッションを表示します。

また、 wコマンドを使用して、各ログインセッションが何をしているのかをより詳細に表示することもできます。

-hオプションを使用すると、 whoまたはwコマンドの出力の行数を数えることで、セッションが開いていることを数えることができます(ヘッダー行を抑制するためにカウントしたくありません)。 これを行うには、垂直バー( " | ")を使用してコマンドパイプラインを作成し、パイプライン内のあるプログラムの出力を次のプログラムに送信します。 ここでは、 whow -hの両方の行をwc -lにパイプ処理することによって数え、アクティブなセッションの数を効率的に生成します。

ユニークユーザー数

上記のメソッドはログインセッションをカウントしますが、ユーザーが複数のログインセッションを開いている場合は、複数回カウントされます。 ユニークユーザーを数えるには、もっとクリエイティブにならなければなりません。 cutコマンドを使用して、ユーザー名を除くすべての情報を削除できます。

上記のコマンドは、「 whoの出力を取得し、最初のフィールドの情報のみを表示します。これはスペースで区切られています」と述べています。 それは私達にちょうどユーザー名のリストを与えます、しかし我々はまだ繰り返し名前を除外する必要があります。

これを行うには、 sort -uコマンドを追加します 。 これは名前をアルファベット順にソートし、一意ではない行を除外します。

そして最後に、これらのユニークユーザーを数えるために、コマンドパイプラインの最後にwc -lを追加します。

psを使用してプロセスを実行しているユーザーを数える

もう1つの便利な方法は、 psコマンドを使用して、現在実行中のプロセスを所有しているシステム上のすべてのユーザーのリストを作成することです。 これを行うには、 psをオプション-e-a-h 、および-o userとともに使用します 。 それらは以下のように組み合わせることができます。

このコマンドは、「nyユーザーが所有するプロセスの情報を表示し、リーダーを表示しないで、 ユーザーの名前のみを表示する 」と述べています

以前にwhoによってリストされユーザーに加えて、ここにrootもリストされてます。 whoコマンドは、端末セッションにログインしているユーザーのみを表示しますが、 psが端末を開いていなくても、実行中のプロセスを所有しているすべてのユーザーをリストします。 psコマンドにはrootが含まれ、他のシステム固有のユーザーも含まれる可能性があります。

以前と同様に、出力をソートして一意の名前のみを一覧表示できます。

...そして必要な合計を生成します。