who コマンド

目的

現在ログインしているユーザーを識別します。

構文

who [ -a |  -b -d -i -l -m -p -q -r -s -t -u  -w -A -H -T -X ] [ File  ]

who am }

説明

who コマンドは、ローカル・システム上のすべての現行ユーザーに関する情報を表示します。表示される情報は、ログイン名、tty、ログインの日付と時間です。who am i または who am I と入力すると、ログイン名、tty、ログインした日付と時間が表示されます。リモート・マシンからログインすると、そのコンピューターのホスト名も表示されます。

who コマンドは、ログインしてからの経過時間、コマンド・インタープリター (シェル) のプロセス ID、 ログイン、ログオフ、再始動、システム・クロックに対する変更、および初期化プロセスで生成された他のプロセスも表示できます。

who コマンドの一般出力フォーマットは下記のとおりです。


Name [State] Line Time [Activity] [Pid] [Exit] (Hostname)

ここで、

項目 説明
Name ユーザーのログイン名を識別します。
State 誰でもその回線に書き込み可能かどうかを示します (-T フラグを参照)。
Line /dev ディレクトリーで見つかった回線名を識別します。
Time ユーザーがログインした時刻を表します。
Activity ユーザー回線上で最後にアクティビティーが発生してからの時間 (時、分) を表します。 ここで .(ドット) は、最後の 1 分以内の回線アクティビティーを示します。回線から 24 時間を超えて信号が ないか、最後にシステムを始動してから一度も使用されていない場合には、このエントリーには old と印が付けられます。
Pid ユーザーのログイン・シェルのプロセス ID を識別します。
Term プロセスの終了状況を識別します (-d フラグのセクションを参照)。 終了値の詳細については、 wait サブルーチンのセクションまたは /usr/include/sys/signal.h ファイルを参照してください。
Exit 終了したプロセスの終了状況を識別します (-d フラグのセクションを参照)。
Hostname ユーザーのログイン元のコンピューター名を示します。

情報を得るために、who コマンドは常に /etc/utmp ファイルを検査します。File パラメーターで別のファイルを指定した場合、who コマンドは代わりにそのファイルを調べます。通常この新規ファイルは、 /var/adm/wtmp ファイルまたは /etc/security/failedlogin ファイルです。

File パラメーターで複数のファイル名を指定すると、最後のファイル名のみが使用されます。

注: このコマンドは、ローカル・ノード上のユーザーだけを識別します。

フラグ

項目 説明
-a /etc/utmp ファイルまたはすべての情報が入っている指定されたファイルを処理します。-bdlprtTu フラグを指定した場合と同じです。
-b 最新のシステム始動時刻と日付を示します。
-d init で再生成されずに期限が切れてしまったすべてのプロセスを表示します。 非活動プロセスの終了フィールドが表示され、 その中には非活動プロセスの打ち切り値および終了値 (wait によって戻される) が入っています。 (このフラグを使用すると、プロセスが終了した理由を、アプリケーションが戻すエラー番号で判別することができます。)
-l すべてのログイン・プロセスをリストします。
-m 現行端末に関する情報のみを表示します。who -m コマンドは、who am i コマンドおよび who am I コマンドと同じです。
-p 現在アクティブで、以前 init によって生成されたアクティブ・プロセスをリストします。
-q ユーザーの早見リストとローカル・システム上のユーザー数を出力します。
-r プロセスの現行実行レベルを示します。
-s 名前、回線、および時間のフィールドだけをリストします。このフラグはデフォルトです。したがって、who コマンドと who -s コマンドは同じです。
-t date コマンドを使用して root ユーザーがシステム・クロックに対して最後に行った変更を示します。システムのインストール後に date コマンドが実行されていなければ、who -t コマンドを実行しても出力は生成されません。
-u または -i 各現行ユーザーのユーザー名、tty、ログイン時間、回線アクティビティー、およびプロセス ID を表示します。
-A /etc/utmp ファイル内のすべてのアカウント・エントリーを表示します。 これらのエントリーは、acctwtmp コマンドによって生成されます。
-H ヘッダー (タイトル) を表示します。
-T または -w tty の状態を表示し、その tty に書き込めるユーザーを下記のように示します。
+
誰でも書き込み可能。
-
root ユーザーまたはそのオーナーのみ書き込み可能。
?
正しくない回線が検出された。
-X 各ユーザー名を最初の 8 文字に切り捨てるのではなく、ユーザー名のすべての使用可能な文字を印刷します。 ユーザー名も、出力の最後のカラムに移動されます。

終了状況

このコマンドは、下記の終了値を戻します。

項目 説明
0 正常終了。
>0 エラーが発生しました。

  1. ローカル・システム・ノードを使用しているユーザーに関する情報を表示するには、下記のように入力します。
    who
    下記のような情報が表示されます。
    pts/1      Nov  9 00:20   long_username_greater_than_eight_characters  (localhost)
    
  2. ユーザー名を表示するには、以下のように入力します。
    
    who am i
    下記のような情報が表示されます。
    george lft/0 Jun 8 08:34
  3. ログイン、ログアウト、システム始動、およびシステム・シャットダウンのヒストリーを表示するには、下記のように入力します。
    who /var/adm/wtmp
    下記のような情報が表示されます。
    hank   lft/0   Jun   8   08:34  (ausnix5)
    john   lft/0   Jun   8   08:34  (JIKey)
    mary   lft/0   Jun   8   08:22  (machine.austin.ibm)
    jan    pts4    Jun   8   09:19  (puff.wisc.edu)
  4. ローカル・システム・ノードの実行レベルを表示するには、次のように入力します。

    who  -r
    下記のような情報が表示されます。
    . run-level 2 Jun 8 04:15 2 0 s
  5. 現在アクティブで、以前 init によって生成されたアクティブ・プロセスを表示するには、下記のように入力します。
    who  -p
    下記のような情報が表示されます。
    srcmstr   .    Jun 8  04:15  old  2896
    cron      .    Jun 8  04:15  old  4809
    uprintfd  .    Jun 8  04:15  old  5158
  6. -bdlprtTu フラグを指定して /var/adm/wtmp ファイルを処理するには、下記のように入力します。
    who  -a /var/adm/wtmp
    下記のような情報が表示されます。
    
       .        system boot Jun 19 10:13        
       .        run-level 2 Jun 19 10:13        
       .            .       Jun 19 10:14    old 
       .            .       Jun 19 10:14    old 
       .            .       Jun 19 10:14    old 
    rc        -     .       Jun 19 10:13    old 
       .            .       Jun 19 10:16    old 
       .            .       Jun 19 10:14    old 
    srcmstr   -     .       Jun 19 10:14    old 
    rctcpip   -     .       Jun 19 10:14    old 
    rcdce     -     .       Jun 19 10:14    old 
    rccm      -     .       Jun 19 10:15    old 
    dceupdt   -     .       Jun 19 10:15    old 
    rcnfs     -     .       Jun 19 10:15    old 
    cron      -     .       Jun 19 10:16    old 
    piobe     -     .       Jun 19 10:16    old 
    qdaemon   -     .       Jun 19 10:16    old 
    writesrv  -     .       Jun 19 10:16    old 
    uprintfd  -     .       Jun 19 10:16    old 
       .            .       Jun 19 10:16    old 
    LOGIN     - lft0        Jun 19 10:16    old 
       .            .       Jun 19 10:16    old 
       .            .       Jun 19 10:16    old 

ファイル

項目 説明
/etc/utmp ユーザーとアカウントの情報が入っています。
/etc/security/failedlogin すべての無効ログインのヒストリーが入っています。
/var/adm/wtmp ファイルが最後に作成されてからのすべてのログインのヒストリーが入っています。
/usr/include/sys/signal.h 終了値のリストが入っています。