who (UNIX)

who(フー)コマンドは、現在コンピュータにログインしているユーザの一覧を表示する標準UNIXコマンドである。

whoと関連するものにwコマンドがある。これはwhoと同じ情報を表示し、さらに追加の情報も出力する。

仕様

[編集]

Single UNIX Specification (SUS) では、whoはアクセスできるユーザ情報をリストすべきとされており、内容は実装依存である。X/Open System Interfaces(XSI) 拡張においては、さらにユーザ名、端末、ログイン時刻、プロセスID、端末上で最後に活動してからの経過時間のデータについて述べている。加えて、ユーザ情報の取得に使うデータベースを、オプション引数で別なものに変更できる(例えば/var/run/wtmpなど)。

whoコマンドは引数「am i」か「am I」を付けて起動することもできる(すなわち「who am i」か「who am I」)。これは現在の端末に関する情報だけを表示する(後述の-mオプションも参照)。

使用方法

[編集]

SUSでは-m-T-uオプションだけが定義されており、他のオプションはXSI拡張に記載されている。

-a, ユーザ情報データベースを-b、-d、-l、-p、-r、-t、-T、-uオプションを用いて処理する。
-b, システムが最後にリブートされた時刻を表示する。
-d, ゾンビプロセスとその情報を表示する。
-H, 行ヘッダを表示する。
-l, ユーザがログインに使える端末を表示する。
-m, 現在の端末についての情報だけを表示する。
-p, アクティブなプロセスを表示する。
-q, クイックフォーマット。ログインしているユーザの名前と数だけを表示し、他のオプションは無効にする。usersコマンドと等価である。
-r, initプロセスのランレベルを表示する。
-s, (デフォルト)名前、端末、詳細時刻だけを表示する。
-t, システムクロックが最後に変更された時刻を表示する。
-T, 各端末の詳細を標準フォーマットで表示する(「例」の節を参照)。
-u, アイドル時間を表示する。XSIではログインしているユーザと端末が現在使われているかどうかを表示する。

他のUNIXやUnix系オペレーティングシステムでは、規格にないオプションを持っている事がある。GNU Core Utilitieswho-uと同様に振舞う-iオプションを持ち、-wオプションでユーザがメッセージ(writeによる)を受け付けるかを表示する(SUSでは-Tオプション)。また、GNUwhoBSDwhoではいくつかのオプションが省かれている(-a-b-dなど)。GNUwhoでは、-lオプションをホスト名を出力する際にDNS検索を行うかのスイッチに使っている。

出力

[編集]

SUSでは出力フォーマットは実装依存とされている。XSI拡張ではフォーマットについても記載されているが完全ではなく、区切り文字とフィールドの長さが明確に決められていない。そのため、whoの出力フォーマットは各Unixの実装でかなり異なっている。

関連項目

[編集]

外部リンク

[編集]
  • who(1) whoコマンドのmanページ
  • who(1) man page(SunOS リファレンスマニュアル)
  • who(1) man page(HP-UX リファレンス)
  • who -- (英語)Single Unix Specificationのwhoのページ