【Linux】usersコマンドでログイン中の全ユーザー名を表示する

目次

概要

現在ホスト(システム)にログインしているすべてのユーザー名を一覧表示するためのシンプルなコマンドです。 whow コマンドとは異なり、ログイン端末や時間などの付加情報は一切表示せず、ユーザー名のみをスペース区切りで、かつアルファベット順にソートして1行で出力します。スクリプト処理でログインユーザーのリストを配列として取得したい場合などに適しています。

仕様(引数・オプション)

構文

users [ファイル名]

※独自のオプションはヘルプ表示などを除いて存在しません。引数としてログイン履歴ファイル(wtmp 等)を指定することが可能です。

基本の使い方

オプションなしで実行すると、現在ログイン中のユーザー名を一覧表示します。同じユーザーが複数の端末でログインしている場合、その数だけ名前が表示されます。

BASH

# ログインユーザーを表示
users

実行結果例

hayashi mori mori root

実践コマンド

詳細情報を表示する w コマンドと比較する

users コマンドがいかにシンプルかを確認するために、ログイン状況を詳細に表示する w コマンドと比較します。w は「誰が」「どこから」「何をしているか」まで表示しますが、users は「誰がいるか」だけを返します。

BASH

# シンプルな一覧表示
users

# 詳細な状況表示
w

実行結果例

# users の結果
hayashi mori mori

# w の結果
 12:45:01 up 10 days,  3:20,  3 users,  load average: 0.05, 0.03, 0.01
USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHAT
mori     pts/0    192.168.1.10     10:00    1.00s  0.10s  0.02s w
mori     pts/1    192.168.1.10     10:05    2:40   0.05s  0.05s -bash
hayashi  pts/2    192.168.1.11     11:30   10:00   0.02s  0.02s vi report.txt

過去のログイン履歴ファイルを参照する

デフォルトでは現在のログイン情報(/var/run/utmp)を参照しますが、引数に /var/log/wtmp などを指定することで、過去にログインしていたユーザーの履歴を同様の形式で出力させることも可能です。

BASH

# ログイン履歴ファイル(wtmp)を指定して表示
users /var/log/wtmp

まとめ

usersコマンドは、ログインユーザー名のみを抽出することに特化したツールです。 システム管理者が状況を目視確認する際は情報量の多い w コマンドや who コマンドの方が有用ですが、シェルスクリプトで for user in $(users); do ... のようにログインユーザー全員に対して一括処理を行いたい場合には、整形の手間がいらないこのコマンドが重宝します。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

私が勉強したこと、実践したこと、してることを書いているブログです。
主に資産運用について書いていたのですが、
最近はプログラミングに興味があるので、今はそればっかりです。

目次