who - 誰がログインしているかを調べる

スポンサーリンク

whoコマンドを用いると誰がログインしているかを調べることができます。whoコマンドが基にしている情報は/var/run/utmpの情報になります。このutmpデータベースの情報は誰がシステムを利用しているかの情報になります。

誰がログインしているかを確認(オプションなし)

whoコマンドはログインしているユーザを調べることができます。whoコマンドをオプションなしで使用したときに表示される情報はユーザ名、端末情報、ログインしたときの時間、リモートホストの名前になります。

また、utmpdumpコマンドを用いると/var/run/utmpの情報を確認できます。

 

 

 

whoコマンドの全ての表示をオン(-aオプション)

-aオプションは、-b・-d・-l・-p・-r・-t・-T・-uのオプションと同様の機能になります。whoコマンドで確認できるすべての情報を表示します。

ヘッダー情報がほしい場合は-Hオプションを加えます。

 

 

 

システムの起動時間を表示(-bオプション)

-bオプションを用いるとシステムの起動時間を表示できます。

 

 

 

終了したプロセスを表示(-dオプション)

-dオプションを用いると終了したプロセスを表示できます。

これはutmpデータベースでDEAD_PROCESSに該当するレコードになります。

utmpについては以下のコマンドで確認できます。

 

 

 

ヘッダー情報を表示(-Hオプション)

-Hオプションを用いるとヘッダー情報を表示します。

 

 

 

ログイン画面の端末を表示(-lオプション)

-lオプションを用いるとログイン画面の端末を表示できます。

これはutmpデータベースでLOGIN_PROCESSに該当するレコードになります。

 

 

 

現在の標準入力をしている端末のユーザとホスト名を表示(-mオプション)(who am i)

-mオプションを用いると現在の標準入力をしている端末のユーザとホスト名を表示します。

引数にamとiを入力することで-mオプションと同様の機能になります。

また、whoamiコマンドもあるので注意しましょう。これは'id -un'と同様で自分のユーザ名を表示するコマンドになります。

 

 

 

現在のログイン中のユーザ名とユーザ数を表示(-qオプション)

-qオプションを用いると現在ログイン中のユーザ名とユーザ数を表示します。

 

 

 

現在のランレベルを表示(-rオプション)

-rオプションは現在のランレベルを表示します。

ランレベルについては以下のコマンドで確認できます。

また、initシステムとしてsystemdをweb検索で調べても良いかもしれません。

 

 

 

端末のメッセージステータスを表示(-Tオプション)

-Tオプションを用いると淡滅のメッセージステータスをユーザ名の横の('+','-','?')の記号で表示します。'+'はwriteコマンドでメッセージを書き込め、'-'は書き込めません。'?'は端末デバイスを見つけられないになります。

wallコマンドやwriteコマンドでメッセージを送ることができるステータス。wallコマンドは全てのユーザにメッセージを送るコマンドで、writeコマンドはユーザを指定してメッセージを送るコマンドになります。
例えば、writeコマンドを実行し、メッセージを入力してEnterキーを押すことでメッセージを送信できます。メッセージの送信を終了する場合はCtrl+D又はCtrl+Cを入力します。以下はwriteコマンドでメッセージを送信する例になります。

送信側(sshtestの端末)

受信側(s2user1の端末)

双方向でメッセージをやり取りする場合は受信側でもwriteコマンドを実行すること(相手からのメッセージが端末に表示されて気になるかもしれませんが気にせずにコマンドを入力して実行すること)で双方向でメッセージを送ることができます。

 

 

 

ログイン中のユーザのリストを表示(-uオプション)

デフォルトの表示より詳しいリストを表示します。

 

 

 

その他のオプション

-sオプションはデフォルトのオプションで、ユーザ名、端末情報、ログインしたときの時間、リモートホストの名前のみを表示します。
--lookupオプションはIPアドレスのホスト名の名前解決を行います。

また、-pオプションと-tオプションについては具体的にどういう状況であれば使用できるかが説明できませんが、ソースコードを見ると、-pオプションはutmpデータベースでINIT_PROCESSに該当するユーザを表示し、-tオプションはutmpデータベースでNEW_TIMEに該当するユーザを表示します。

utmpについては以下のコマンドで確認できます。

 

 

 

参考

GNU coreutils