Shoeisha Technology Media

CodeZine(コードジン)

記事種別から探す

who

ログインしているユーザを表示する
2015/05/20 08:00

対応OS: linux , freebsd, solaris
who [-H] [-u] [-q] [am i]

 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コマンドを起動したユーザの情報だけを表示する
$ who am i 
cmd pts/2 Apr 1 19:47 (linux7)
$
文字コード

 日本語を扱う時によく問題となるのが、文字コード関連の問題です。UNIX系の環境では、EUCやUNICODEなどが使用されますが、Windows系OSでは、SJISが使われます。つまり、同じ漢字を使っていても、処理系によっては表示することができないということです。特に、ネットワークの世界では、さまざまなOSが使用されていますから、このような文字の問題がよく起こります。UNIXでは、コード変換用のnkfコマンドや、エディタemacsなどがこの問題を解決してれます。

UNIXコマンド辞典トップページに戻る

All contents copyright © 2005-2017 Shoeisha Co., Ltd. All rights reserved. ver.1.5