whoコマンドは、オプションを指定しなかった場合、現在ログインしているユーザの一覧を表示します。この時、それぞれのユーザの「ログイン名」「使っている端末」「ログインした日時」「リモートのホスト名またはXディスプレイの名前」の情報を表示します。
引数を1 つ指定した場合は、ユーザのログイン情報を記録したファイルとして、「/etc/utmp」の代わりに、引数で与えられた名前のファイルを参照します。例えば、以前にログインしていたユーザについて表示したい場合に、「/etc/wtmp」を引数として指定するのが一般的な使い方です。
引数を2つ指定した場合は、whoコマンドを起動したユーザ(標準入力から決定される)についての情報だけを表示する。
- ① -H
- 表示の先頭に項目名を記述した行を挿入します。
- ② -u
- ユーザが最後に端末操作を行ってからの時間(idle-time)を「hh:mm」の形式で表示します。表示結果の「.」は、ユーザが一分以内に端末操作を行ったことを示し、「old」は、ユーザが24時間以上、まったく端末操作を行っていないことを示します。
- ③ -q
- ログインしているユーザの名前と人数のみを表示します。このオプションを指定すると、他のオプションは無効になります。
- ユーザのログイン情報を記録したファイル名を引数として指定します。2つの引数を指定する場合には何を指定してもよいのですが、一般に「am i」が使われ、「who am i」(「私はだ~れ?」の意)とします。
$ who
takedak pts/0 Apr 1 19:32 (linux7)
cmd pts/1 Apr 1 19:46 (linux7)
cmd pts/2 Apr 1 19:47 (linux7)
$
$ who -u
takedak pts/0 Apr 1 19:32 00:04 16914 (linux7)
cmd pts/1 Apr 1 19:46 00:04 17060 (linux7)
cmd pts/2 Apr 1 19:47 . 17097 (linux7)
$
$ who -q
takedak cmd cmd
# users=3
$
$ who -Hu
オプション「-H」と「-u」をまとめて指定NAME LINE TIME IDLE PID COMMENT
takedak pts/0 Apr 1 19:32 00:05 16914 (linux7)
cmd pts/1 Apr 1 19:46 00:04 17060 (linux7)
cmd pts/2 Apr 1 19:47 . 17097 (linux7)
$
$ who am i
cmd pts/2 Apr 1 19:47 (linux7)
$
日本語を扱う時によく問題となるのが、文字コード関連の問題です。UNIX系の環境では、EUCやUNICODEなどが使用されますが、Windows系OSでは、SJISが使われます。つまり、同じ漢字を使っていても、処理系によっては表示することができないということです。特に、ネットワークの世界では、さまざまなOSが使用されていますから、このような文字の問題がよく起こります。UNIXでは、コード変換用のnkfコマンドや、エディタemacsなどがこの問題を解決してれます。
本コンテンツは「UNIXコマンド辞典 ビギナー編」(2003年)を元にWeb用に再編集したものです
All Contents copyright © 2003-2009 Odyssey Communications Inc., Shoeisha Co., Ltd.