このページで解説している内容は、以下の YouTube 動画の解説で見ることができます。
新Linuxコマンド演習60

🧩 新Linuxコマンド演習60 概要
「新Linuxコマンド演習60」では、
システムの状態やユーザーのログイン履歴を確認するための代表的なコマンドを学びます。
具体的には、カーネルメッセージを表示する dmesgコマンド、ログイン履歴を参照する lastコマンド、
現在ログインしているユーザーを確認する whoコマンド と wコマンド の4つを中心に演習します。
これらのコマンドはシステム監視・トラブルシューティング・セキュリティ調査に欠かせない基本ツールです。

各コマンドの概要
| コマンド | 主な目的 | 主なオプション | 説明 |
|---|---|---|---|
| dmesg | カーネルメッセージを表示する | -T(タイムスタンプ付与) -l(ログレベル指定) -c(バッファクリア) | システム起動時やデバイス検出時のメッセージを確認できる。ハードウェアトラブルや起動不具合の調査に有効。 |
| last | ログイン履歴の確認 | -n(行数指定) | /var/log/wtmp を参照して過去のログイン情報を確認できる。 |
| who | 現在ログイン中のユーザーを表示 | -m(標準入力に関連づけられたホスト名とユーザのみを表示) -b(システム起動時刻) | 現在の接続ユーザーを一覧表示。稼働中の端末や時刻を確認可能。 |
| w | ログイン中ユーザーの詳細とCPU使用率を表示 | -s(簡略表示) -h(ヘッダー非表示) | whoより詳細な情報を表示し、CPU使用状況や実行中プロセスも確認可能。 |
表の説明
この表は、演習で扱う4つのコマンドの目的と特徴をまとめたものです。
それぞれのコマンドは、システム状態を異なる角度から把握するための重要なツールです。
dmesg はカーネルレベル、lastは履歴、whoとwはリアルタイム情報を扱います。
演習問題+模範解答例
演習01:カーネルメッセージを表示する
問題
カーネルメッセージをすべて表示してください。
模範解答例
[suzuki@AlmaLinux ~]$ dmesg
(省略)
[ 0.000000] BIOS-e820: [mem 0x0000000000000000-0x000000000009fbff] usable
[ 0.000000] BIOS-e820: [mem 0x000000000009fc00-0x000000000009ffff] reserved
[ 0.000000] BIOS-e820: [mem 0x00000000000f0000-0x00000000000fffff] reserved
[ 0.000000] BIOS-e820: [mem 0x0000000000100000-0x000000007ffeffff] usable
[ 0.000000] BIOS-e820: [mem 0x000000007fff0000-0x000000007fffffff] ACPI data
(省略)解説
カーネル起動時のすべてのメッセージを確認できます。
ハードウェアの検出やドライバ読み込み状況の確認に利用します。
演習02:エラーレベルのメッセージだけを表示する
問題
エラーに関するカーネルメッセージだけを表示してください。
模範解答例
[suzuki@AlmaLinux ~]$ dmesg -l err
[ 1.130670] systemd[1]: Invalid DMI field header.
[ 2.966527] vmwgfx 0000:00:02.0: [drm] *ERROR* vmwgfx seems to be running on an unsupported hypervisor.
[ 2.966531] vmwgfx 0000:00:02.0: [drm] *ERROR* This configuration is likely broken.
[ 2.966532] vmwgfx 0000:00:02.0: [drm] *ERROR* Please switch to a supported graphics device to avoid problems.
[ 4.584618] systemd[1]: Invalid DMI field header.解説
-lオプションで特定のログレベルを指定できます。
errを指定するとエラーレベルのメッセージのみが抽出され、問題発生箇所の特定に役立ちます。
演習03:タイムスタンプ付きでメッセージを表示する
問題
カーネルメッセージを読みやすい形式の時刻付きで表示してください。
模範解答例
[suzuki@AlmaLinux ~]$ dmesg -T
(省略)
[水 12月 10 01:10:05 2025] BIOS-provided physical RAM map:
[水 12月 10 01:10:05 2025] BIOS-e820: [mem 0x0000000000000000-0x000000000009fbff] usable
[水 12月 10 01:10:05 2025] BIOS-e820: [mem 0x000000000009fc00-0x000000000009ffff] reserved
[水 12月 10 01:10:05 2025] BIOS-e820: [mem 0x00000000000f0000-0x00000000000fffff] reserved
[水 12月 10 01:10:05 2025] BIOS-e820: [mem 0x0000000000100000-0x000000007ffeffff] usable
[水 12月 10 01:10:05 2025] BIOS-e820: [mem 0x000000007fff0000-0x000000007fffffff] ACPI data
(省略)解説
-Tオプションを使用すると、人間に読みやすい時刻形式(年月日時分秒)で出力されます。
トラブル発生時刻と照合しやすくなります。
演習04:カーネルメッセージバッファをクリアする
問題
root権限でカーネルメッセージをクリアしてください。
模範解答例
[suzuki@AlmaLinux ~]$ sudo dmesg -c
(省略)
[ 0.000000] Linux version 5.14.0-611.5.1.el9_7.x86_64.....
[ 0.000000] The list of certified hardware and cloud instances.....
(省略)
[suzuki@AlmaLinux ~]$ dmesg
(出力なし)解説
-cオプションは、出力後にバッファをクリアします。
sudo 権限が必要で、次回、dmesg 実行時は空になります。
演習05:ログイン履歴を表示する
問題
システムにログインしたユーザー履歴を確認してください。
模範解答例
[suzuki@AlmaLinux ~]$ last
suzuki tty2 tty2 Wed Dec 10 01:10 still logged in
suzuki seat0 login screen Wed Dec 10 01:10 still logged in
reboot system boot 5.14.0-611.5.1.e Wed Dec 10 01:10 still running
suzuki tty2 tty2 Tue Dec 9 23:17 - down (01:52)
(省略)解説
lastは /var/log/wtmp を参照して過去のログイン記録を表示します。
ユーザー、端末、接続元、ログイン時間が確認できます。
演習06:特定ユーザーのログイン履歴を確認する
問題
ユーザーtanakaのログイン履歴を確認してください。
模範解答例
[suzuki@AlmaLinux ~]$ last tanaka
tanaka tty3 tty3 Wed Dec 10 01:25 - 01:27 (00:01)
tanaka seat0 login screen Wed Dec 10 01:25 gone - no logout
tanaka tty3 tty3 Wed Dec 10 01:24 - 01:25 (00:00)
tanaka seat0 login screen Wed Dec 10 01:24 - 01:25 (00:00)
wtmp は Mon Oct 27 16:33:02 2025 から始まっています解説
ユーザー名を引数に指定することで、そのユーザーだけのログイン履歴を抽出できます。
演習07:現在ログイン中のユーザーを確認する(who)
問題
現在ログインしているユーザーの一覧を表示してください。
模範解答例
[suzuki@AlmaLinux ~]$ who
suzuki tty2 2025-12-10 01:10 (tty2)解説
whoコマンドは、リアルタイムのログイン中ユーザーを確認します。
端末・ログイン時刻・接続元が表示されます。
演習08:ログイン中ユーザーの詳細を確認する(w)
問題
ログイン中のユーザー一覧と実行中コマンドを確認してください。
模範解答例
[suzuki@AlmaLinux ~]$ w
01:38:12 up 28 min, 2 users, load average: 0.01, 0.06, 0.08
USER TTY LOGIN@ IDLE JCPU PCPU WHAT
suzuki tty2 01:10 28:01 0.02s 0.02s /usr/libexec/gnome-session-bina解説
w は whoよりも詳細な情報を表示します。
CPU使用率や現在実行中のコマンドまで確認可能です。
演習09:ヘッダーなしのログイン情報を表示する
問題
ヘッダーを非表示にして、ユーザー情報のみを表示してください。
模範解答例
[suzuki@AlmaLinux ~]$ w -h
suzuki tty2 01:10 31:45 0.02s 0.02s /usr/libexec/gnome-session-bina解説
-hオプションでヘッダー行を省略できます。
スクリプト処理などで整形出力が必要なときに便利です。
まとめ
「新Linuxコマンド演習60」では、
システムのカーネルメッセージ・ログイン履歴・現在のユーザー情報を確認する4つの基本コマンドを学びました。
これらを理解することで、トラブル発生時の原因調査やシステム稼働状況の確認が的確に行えます。
| 学習ポイント | 内容 |
|---|---|
| dmesg | カーネルメッセージの確認とトラブル調査に活用 |
| last | 過去のログイン履歴を確認 |
| who | 現在ログインしているユーザーを表示 |
| w | ログインユーザーとCPU負荷の詳細を確認 |
