whoコマンドの詳細まとめました【Linuxコマンド集】

  • このエントリーをはてなブックマークに追加
  • Pocket
who コマンド

whoはログインしているユーザーの状況を表示するコマンドだ。

このページではwhoコマンドを使ったログインしているユーザーの情報を調べる方法を解説する。

目次

whoコマンドの基本

コマンドの基本動作

使い方は、次のとおり簡単だ。

$ who

who

ログイン名、使っている端末、ログイン時刻、ログインしている端末のIPアドレスが表示される。

IPアドレスは、自分自身のコンピュータから実行したwhoコマンドの結果には表示されない。

使っている端末は、pts1やtty1(1はコンピュータが自動で割り振る数字)などと表示される。たとえば、複数のコンピュータから1つのコンピュータにターミナルソフトでアクセスすることもあるだろう。新しいアクセスをするたびにptsまたはttyが増えていく。

現在、割り振られているのが何番目のptsまたはttyか表示している。

自分自身がどのptsまたはttyかを調べるにはttyコマンドを使う。

$ tty

tty

すると/dev/pts/0のように表示され、自分自身はpts/0であることがわかる。

whoコマンドのオプションたち

オプションの一覧

後から詳細をご紹介するが、まずは一覧で見てみよう。

オプション-b (オプション--boot)

最新のシステム起動時間を表示する

オプション-H (オプション--heading)

可視性を良くするためにタイトル行を表示する

オプション-d (オプション--dead)

終了したプロセスを表示する

オプション-l (オプション--login)

システムへのログインを表示する

オプション--lookup

IPアドレスではなく正式なホスト名を表示する

オプション-m

標準入力に関連付いているコンピュータのアクセスのみを表示する

オプション-p (オプション--precess)

initで起動されたプロセスを表示する

オプション-q (オプション--count)

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

オプション-r (オプション--runlevel)

現在のランレベルを表示する

オプション-s (オプション--short)

ログイン名、使っている端末、ログイン時刻、ログインしている端末のIPアドレスを表示する

オプション-t (オプション--time)

システムの最終更新日時の変更時間を表示する。

オプション-T (オプション-w, オプション--mesg)

ユーザーごとのメッセージ状態を+-で表示する。

オプション-u (オプション--users)

ユーザーごとの最終操作からの経過時間を表示する。

オプション-a (オプション--all)

すべての情報を表示する。

では、詳しく見ていこう。

-bオプション(--bootオプション):最新のシステム起動時間を表示する

ログインしているシステムの起動時間を表示するオプションで、書式は次のとおりだ。

$ who -b

02-who-2

システムの起動時間が表示された。

-Hオプション(--headingオプション):可視性を良くするためにタイトル行を表示する

ログインしているシステムの起動時間を表示するオプションで、書式は次のとおりだ。

$ who -b

who -H

システムの起動時間が表示された。

-dオプション(--deadオプション):終了したプロセスを表示する

exitコマンドなどで終了したプロセスがあれば表示する。

$ who -d

who -d

exitコマンドで終了したプロセスが2つ表示された。

-lオプション(--loginオプション):システムへのログインを表示する

ログインしたプロセスがあれば表示する。書式は次のとおりだ。

$ who -l

--lookupオプション:IPアドレスではなく正式なホスト名を表示する

正式なホスト名がDNSから取得できれば、IPアドレスではなく正式なホスト名で表示する。書式は次のとおりだ。

$ who --lookup

-mオプション:標準入力に関連付いているコンピュータのアクセスのみを表示する

標準入力というのは普通であればキーボードのことだ。

リモートでアクセスするのではなく、直接キーボードから入力できるコンピュータを表示する。書式は次のとおりだ。

$ who -m

who -m

キーボードから直接操作できるコンピュータはIPアドレス192.168.179.11でユーザーpiでアクセスしているユーザーということがわかった。

-dオプション(--deadオプション):終了したプロセスを表示する

exitコマンドなどで終了したプロセスがあれば表示する。書式は次のとおりだ。

$ who -d

exitコマンドで終了したプロセスが2つ表示された。

-pオプション(--processオプション):initで起動されたプロセスを表示する

initコマンドなどで起動されたプロセスを表示する。書式は次のとおりだ。

$ who -p

-qオプション(--countオプション):ログイン中のユーザーと人数を表示する

ログイン中のユーザーとその人数を表示する。書式は次のとおりだ。

$ who -q

06b-who-6b

このコンピュータには、3人アクセスしており、全員piユーザーでアクセスしていることが表示された。

-rオプション(--runlevelオプション):現在のランレベルを表示する

ランレベルというのは、コンピュータの現在の実行している状態を表すレベルのことだ。

完全に電源が切れている場合はランレベル0、マルチユーザーがアクセスできる状態で動作していればランレベル3、再起動プロセスに入っていればランレベル6などのように、OSにもよるが規定されている。

そのランレベルを表示するオプションで書式は次のとおりだ。

$ who -r

who -r

現在のランレベルは5であることが表示された。

ランレベル5は、マルチユーザーがアクセスでき、GUIのディスプレイも同時に動いている状態だ。

-sオプション(--shortオプション):ログイン名、使っている端末、ログイン時刻、ログインしている端末のIPアドレスを表示する

ログイン名、使っている端末、ログイン時刻、ログインしている端末のIPアドレスを表示するオプションなのだが、オプションなしでこの状態になるので特に指定することはない。書式は次のとおりだ。

$ who -s

who -s

ログイン名、使っている端末、ログイン時刻、ログインしている端末のIPアドレスが表示された。

-tオプション(--timeオプション):システムの最終更新日時の変更時間を表示する

システムの最終更新日時の変更時間を表示するオプションだ。

システム日時を変更したことが無ければ表示されない。

書式は次のとおりだ。

$ who -t

-Tオプション(-wオプション,- -mesgオプション):ユーザーごとのメッセージ状態を+-で表示する

ユーザーごとのメッセージ状態を+-で表示するオプションで書式は次のとおりだ。。

$ who -T

who -T

ユーザー名と端末名の間に+-でメッセージ状況が表示された。

-uオプション(--usersオプション):ユーザーごとの最終操作からの経過時間を表示する

ユーザーごとの最終操作からの経過時間を表示するオプションで書式は次のとおりだ。

$ who -u

who -u

ログイン時間の右に「昔」「.」「00:01」などが書いてあるが、これが経過時間だ。

「昔」は「old」と表示されているかも知れない。これは24時間以上操作をしていないユーザーだ。

「.」は1分以内に操作したユーザーだ。少なくとも操作しているユーザーはwhoコマンドを入力するという操作をしているので1人は「.」が表示されるはずだ。

-aオプション(--allオプション):すべての情報を表示する

すべての情報を一度に表示するオプションだ。

-b,-d,--login,-p,-r,-t,-T,-uのオプションをすべて付与した時と同じ動作となる。

$ who -a

who -a

すべての情報が表示された。

who am i

実はwhoコマンドには引数のようなものが存在する。

who am iという記述方法だ。

その通りの意味で、自分自身を調べる記述だ。

実際には、-mオプションでの表示内容と同じ内容が表示されるのだ。

操作先のコンピュータの自身を調べるということは、その操作先のキーボードで直接操作できるコンピュータを調べるということと同義だ。

who関連コマンド

最後にwhoコマンドに関連して、基本的なログインユーザーを操作するコマンドも紹介しておく

wallコマンド

ログインしているユーザー全員の端末画面に一斉にメッセージを送信する。

ttyコマンド

自分がコンピュータにアクセスしているptsやtty番号を調べる。

echoコマンド

端末画面に文字を表示する。リダイレクト機能を使って指定した端末にのみメッセージを送ることができる。

まとめ

今回は、whoコマンドを使ったログインユーザーの状況を調べる方法を解説した。

ログインしたまま放置しているユーザーや、何度もログイン/ログアウトを繰り返しているユーザー、必要以上に同じ端末から様々なユーザーとしてログインしているケースなど、ネットワークユーザーが監視するには最適なコマンドだ。

少なくとも責任を持って管理しているコンピュータへのアクセスは折に触れチェックしてみよう。

  • このエントリーをはてなブックマークに追加
  • Pocket

このページの続きや関連ページは下記から一覧で確認できる。

短期間でエンジニアになる方法

・「まったくの初心者だけどエンジニアになりたい!」

・「プログラマーとして転職をしたい!」

という方はリナックスアカデミーの資料を見てみてください。短期間で未経験からエンジニアになることができるスクールとして15年間選ばれ続けてきた理由やノウハウが載った資料です。

エンジニアの入り口に立つために必要な勉強技術の最新動向本当に使えるIT資格学習に役立つ国からの奨励金などの情報が詰まっています。

無料で2,3日中にお手元にお届けします。


資料を見てみる

SNSでもご購読できます。

コメントを残す

*