Linuxシステムの管理やトラブルシューティングを行う際、「今このシステムには誰がログインしているのか?」という情報は非常に重要です。
そんなときに役立つのがwho
コマンドです。who
コマンドを使えば、現在ログインしているユーザーの情報を簡単に確認することができます。
本記事では、who
コマンドの基本的な使い方からオプションによる出力の違い、他のコマンドとの違いまで、詳しく解説していきます。
Linux初心者の方にもわかりやすく説明しますので、安心して読み進めてください。
whoコマンドとは?
who
コマンドは、現在Linuxシステムにログインしているユーザーの情報を表示するためのコマンドです。
端末やリモートログインなどを含め、同時に複数のユーザーがログインしている環境では、特に役立ちます。
このコマンドは非常にシンプルで、引数なしでも基本的な情報を表示してくれます。
また、オプションを追加することで、より詳細な情報を得ることも可能です。
基本的な使い方
最も基本的な使い方は、何も引数を付けずに単に以下のように実行する方法です。
who
実行すると、以下のような出力が得られます。
user1 pts/0 2025-04-02 08:42 (192.168.1.100)
user2 pts/1 2025-04-02 09:15 (192.168.1.101)
各項目の意味は以下の通りです:
- ユーザー名:ログインしているユーザー
- 端末名:ユーザーが使用している端末(仮想端末や物理端末)
- ログイン時間:そのユーザーがログインした日時
- ホスト名/IPアドレス:リモートログインしている場合、その接続元情報
よく使うオプション
who -a:すべての情報を表示
最も情報量が多い出力を得たい場合は、-a
オプションを使用します。
who -a
このコマンドを実行すると、ログインユーザーだけでなく、システムの再起動情報や、死んだプロセス情報、稼働中のプロセスなども表示されます。
system boot 2025-04-02 08:00
user1 + pts/0 2025-04-02 08:42 . 192.168.1.100
ここで表示される「system boot」はシステムの起動時間を表しており、「+」はそのセッションが現在稼働中であることを意味しています。
who -q:ログインしているユーザー名のみ表示
ログインユーザーの名前だけを確認したい場合は、-q
オプションが便利です。
who -q
出力例:
user1 user2
# users=2
ユーザー名が列挙され、その後にログイン中のユーザー数が表示されます。
とてもシンプルな出力なので、スクリプトなどで使う際にも便利です。
who -b:最後のシステム起動時刻を表示
最後にシステムがブートされた時間を確認するには、-b
オプションを使います。
who -b
出力例:
system boot 2025-04-02 08:00
サーバーの安定性や稼働時間を確認したいときに役立ちます。
who -m:自分自身の情報のみ表示
現在この端末でコマンドを実行している「自分自身」のセッション情報のみを表示したい場合に便利です。
who -m
出力は以下のようになります:
user1 pts/0 2025-04-02 08:42 (192.168.1.100)
whoと似たコマンドとの違い
Linuxには、who
コマンドに似たコマンドがいくつか存在します。
ここでは、代表的なものを紹介し、その違いを解説します。
wコマンド
w
w
はログインしているユーザーに加え、各ユーザーが現在実行しているプロセスやCPU使用率などの詳細も表示してくれます。
出力例:
08:50:23 up 0:50, 2 users, load average: 0.00, 0.01, 0.05
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
user1 pts/0 192.168.1.100 08:42 3:00 0.03s 0.01s bash
usersコマンド
bashコピーする編集するusers
このコマンドは、ログイン中のユーザー名を空白区切りで表示します。
実質的には who -q
に似ていますが、よりシンプルな出力形式です。
スクリプトでの活用例
who
コマンドはシェルスクリプト内でも活用できます。
例えば、ログイン中のユーザー数が3人以上の場合に警告を出すスクリプトは以下のようになります。
#!/bin/bash
count=$(who | wc -l)
if [ "$count" -ge 3 ]; then
echo "警告:現在 $count 人がログイン中です"
fi
このように、who
の出力をwc -l
と組み合わせることで、簡単にログインユーザー数のチェックが可能です。
注意点と豆知識
who
は/var/run/utmp
ファイルを参照して情報を取得します。このファイルが壊れていると正しい出力が得られません。whoami
コマンドは、自分のユーザー名を表示するだけのシンプルなコマンドであり、who
とは別物です。- セキュリティの観点から、マルチユーザー環境では誰がいつログインしているかを定期的に確認するのは重要です。
まとめ
who
コマンドは、システム管理やトラブル対応の現場でよく使われる基本的かつ便利なツールです。
シンプルな出力でありながら、ログイン情報、システム起動時間、自分のセッション確認など、幅広い用途に対応しています。
Linuxにおけるユーザー管理の第一歩として、まずはwho
を自在に使いこなせるようになりましょう。
他のコマンドと組み合わせれば、さらに便利な活用も可能です。
ぜひご自身のLinux環境で試してみてください。