who 概要
`who` コマンドは、システムの `/var/run/utmp` (または `/var/log/wtmp`) ファイルに記録された情報を基に現在アクティブなログインセッションを表示します。このファイルには、ユーザーのログインおよびログアウトの記録、システムのブート/シャットダウン時間などの情報が保存されています。`who` は特にマルチユーザー環境でシステムに誰が接続しているかを把握するために必須です。
whoの主要な役割
`who` コマンドは主に以下の目的で使用されます:
主要な活用分野
- ログインユーザーの確認: 現在システムにログインしているユーザーの名前、ターミナル、ログイン時間などを表示します。
- システム監視: サーバーに不要または異常なログインがあるかを監視します。
- 協力環境: 他のユーザーがシステムに接続しているかを確認し、協力や衝突を避けます。
- スクリプトの自動化: `who` コマンドを通じて特定のユーザーがログインしているか確認するロジックに活用されます。
`who` vs `w` vs `whoami`
ユーザー情報に関連する複数のコマンドがあり、それぞれの目的が異なります。
- `who`: 現在システムにログインしている 'すべての' ユーザーの情報を表示します。
- `w`: 現在ログインしているユーザー情報と共に、各ユーザーが '何をしているか' (現在実行中のプロセス) に関する詳細情報を表示します。 `who` よりも多くの情報を提供します。
- `whoami`: 現在コマンドを実行している '自分' の有効ユーザー名を表示します。 (つまり、ログインしているユーザー名)
主要な who コマンドオプション
`who` コマンドは基本的にオプションなしで使用されますが、特定の情報を追加したり出力形式を変更する便利なオプションを提供します。
1. 基本情報の出力
2. 追加情報の出力
3. 簡潔な出力
生成されたコマンド:
コマンドを組み合わせてみてください。
説明:
`who` コマンドを実行します。
これらのオプションを組み合わせて、AIと一緒に仮想的にコマンドを実行してみてください。
使用例
`who` コマンドのさまざまな活用例を通じて、システムにログインしているユーザー情報を効果的に確認する方法を学びましょう。
現在ログインしているユーザーのリスト確認
who
最も基本的な `who` コマンドの実行で、システムにログインしているすべてのユーザーの名前、ターミナル、ログイン時間などを表示します。
ログインユーザー情報と共にカラムヘッダー表示
who -H
出力結果の各情報 (USER, LINE, WHEN など) に対するヘッダーを含めて可読性を高めます。
システムブート時間の確認
who -b
システムが最後にブートされた正確な日付と時間を出力します。
ログインユーザー数のみ簡潔に確認
who -q
現在システムにログインしている総ユーザー数とユーザー名のリストのみを簡潔に表示します。
ログインユーザーおよびアイドル時間、PID確認
who -u
各ログインユーザーのアイドル時間 (アクティビティのなかった時間) とログインセッションを制御するプロセスID (PID) を追加で表示します。
現在の実行レベル確認
who -r
システムの現在の 'ランレベル' (マルチユーザーモード、シングルユーザーモードなど) を確認します。