Linux / コマンド / who - 現在のログインセッションを確認

whoはログイン記録をもとに、現在ログインしているユーザー、端末、ログイン時刻を表示します。複数のユーザーが接続しているサーバーでアクティブなログインセッションを素早く確認する際に便利です。

基本的な出力は、ユーザー名、端末デバイス、ログイン時刻を中心に構成されます。リモート接続の場合、ホスト情報が後ろに表示されることがあります。実行中のすべてのプロセスや現在のユーザーの権限を知らせるコマンドではありません。

基本的な文法

who [オプション]

インストールされている実装とオプションは、配布版によって異なる場合があります。man whoで現在のシステムの説明を確認してください。

使用例

アクティブなログインセッションを見る

同じユーザーが複数の端末にログインしている場合は、複数行で表示されることがあります。

who

列見出しの表示

各出力列の意味をまず確認します。

who -H

ログインユーザー数の概要

ログイン記録のユーザー名と件数を表示します。同じユーザーの複数のログインも別に数えるため、異なる人数とは限りません。

who -q

ログインセッションを1行ずつ読む

whoは現在のログイン記録に登録されたセッションを表示します。例ではユーザー名、端末、ログイン時刻、リモート接続場所が順に表示されます。

who

例の出力(時刻・端末の表記は環境によって異なります):

alice pts/0 2026-09-28 09:00 (192.0.2.10)

同じユーザーが複数の端末に接続している場合、複数行が表示されることがあります。逆に、コンテナや一部の非対話型セッションでは、実際にプロセスが存在してもログイン記録がないため、空の出力になることがあります。記録に対応する現在のプロセスも確認したい場合は、wによるログイン情報と実行中の処理の確認 を使い分けます。

主なオプションと形式

オプション・形式 説明
-H 出力列のヘッダーを表示します。
-q ログイン名と記録上のログイン件数を簡潔に表示します。
-u アイドル時間などの追加情報を表示します。
-b システムの最終起動時間を表示します。

使用する際の注意点

who が参照する情報源は実装とビルド設定により異なります。GNU版には utmp系ファイルに加えてsystemdのセッション情報を使う実装 もあるため、特定のファイルがないという理由だけでは判断できません。コンテナ、最小インストール環境、または記録を残さないセッションでは、実際にプロセスがあっても出力が空であったり、一部しか表示されないことがあります。接続状況を調査するには、サービスログや認証ログも確認する必要があります。

よくある質問

whoが何も出力しない場合、ユーザーがいないのでしょうか?

必ずしもそうとは限りません。現在の環境がログイン記録を提供していない可能性があるため、ターミナルセッションとシステムログを合わせて確認してください。

公式ドキュメント

オプションの正確な動作と実装ごとの差は、whoに関する公式文書で確認できます。