Linuxコマンド辞典 whoコマンド(プロセス管理)

ログイン状況やログインユーザーの情報を表示する「who」コマンドの概要と使い方を記載しています。

RHEL Fedora CentOS Vine Deblan Ubuntu Plamo

参考サイト:Man page of INSTALL

概要・使用方法

システムにログインしているユーザー情報を表示します。ログインしているユーザー名/端末名/ログイン時刻/接続元ホスト名などが表示されます。システムがブートした時刻やランレベルが変更された時間、端末を利用したメッセージ交換が可能かを表示することもできます。

書式

$ who [オプション] [ファイル名] 

オプション

-a
–all
「who -d -d –login -p -r -t -u」と同じ
-b
–boot
最後にシステムがブートした時刻を表示する
-l
–login
ログインシェルを利用しているプロセスを表示する
-d
-dead
まだ使っていない、既に使い終わっているプロセスを表示する
–lookupログインユーザーのホスト名解を利用する
-p
–process
initにより生成されたプロセスのみを表示する
-q
–count
ログインユーザー名とログイン数を表示する
-r
–runlevel
現在のランレベルのみを表示する
-t
–time
システムロックが最後に変更された時刻を表示する
-T、-w
–mesg、–message、–writable
ユーザーへのメッセージ状態を追加で表示する
-u
–users
ログインしているユーザーを表示する
-H
–heading
出力項目に名前/端末/時間などのヘッダを追加する

システムにログインしているユーザー一覧を表示する

who -H

実行結果

[sunarin@localhost ~]$ who -H
名前   端末       時間           コメント
sunarin  pts/0        2022-08-05 11:13 (192.168.0.26)
[sunarin@localhost ~]$ 

ログインユーザーとユーザー数を表示する

who -q

実行結果

[sunarin@localhost ~]$ who -q
sunarin
ユーザ数=1
[sunarin@localhost ~]$ 

ランレベルのみ表示する

who -r

実行結果

[sunarin@localhost ~]$ who -r
         run-level 5  2022-08-05 11:13
[sunarin@localhost ~]$ 

システムが起動した時間を表示する

who -b

実行結果

[sunarin@localhost ~]$ who -b
         システム起動 2022-08-05 11:13
[sunarin@localhost ~]$ 

-mオプションか、引数を2つ適用につけると実行者情報に絞って出力する

別ユーザーの利用している端末へアクセスができればメッセージを送ることができます。送信できるかは-Tオプションで確認できます。ユーザー名の後に「+」が表示されれば送信可能、「-」の場合は送信不可、「?」は端末が見つからない場合で表示を示します。端末エミュレータを2つ起動して試してみましょう。

実行結果

[sunarin@localhost ~]$ who -m
sunarin  pts/0        2022-08-05 11:13 (192.168.0.26)
[sunarin@localhost ~]$ 
[sunarin@localhost ~]$ who i b
sunarin  pts/0        2022-08-05 11:13 (192.168.0.26)
[sunarin@localhost ~]$ 

writeでメッセージを実際に送信する

実行結果

writeコマンドでメッセージ送信する。メッセージ終了後にはctrl+cで抜ける。

[sunarin@localhost ~]$ tty        #自分の端末を確認
/dev/pts/0
[sunarin@localhost ~]$ who -T     #接続している端末を調べる
sunarin  + pts/0        2022-08-05 11:13 (192.168.0.26)
sunarin  + pts/1        2022-08-05 13:37 (192.168.0.26)
test     + pts/2        2022-08-05 13:38 (::1)
[sunarin@localhost ~]$ write test pts/2
hello I sunarin

メッセージ受信側は以下のように表示される。

[test@localhost ~]$ 
Message from sunarin@localhost.localdomain on pts/0 at 13:41 ...
hello I sunarin