【 dmesg 】コマンド――カーネルが出力したメッセージを表示するLinux基本コマンドTips(74)

本連載は、Linuxのコマンドについて、基本書式からオプション、具体的な実行例までを紹介していきます。今回は、「dmesg」コマンドです。

» 2016年12月20日 05時00分 公開
[西村めぐみ@IT]
「Linux基本コマンドTips」のインデックス

Linux基本コマンドTips一覧

 本連載では、Linuxの基本的なコマンドについて、基本的な書式からオプション、具体的な実行例までを分かりやすく紹介していきます。今回は、カーネルが出力したメッセージを表示する「dmesg」コマンドです。

dmesgコマンドとは?

 「dmesg」は、Linuxカーネルが起動時に出力したメッセージを表示するコマンドです。

 カーネルがメッセージを保存する場所である「メッセージバッファー」はサイズが決まっており、バッファーサイズを超えたら先頭から上書きされる、という“リング構造”になっています。dmesgコマンドはこのメッセージバッファーを表示するため、全てのメッセージ内容を表示できるわけではありません。


dmesgコマンドの書式

dmesg [オプション]




dmesgコマンドの主なオプション

 dmesgコマンドの主なオプションは次の通りです。

短いオプション 長いオプショ 意味
-l リスト --level リスト 表示レベルを指定する。表示レベルは「emerg(高)」「alert」「crit」「err」「warn」「notice」「info」「debug(低)」から選択。複数指定する場合は「,」で区切る
-f リスト --facility リスト 表示対象を指定する。対象は「kern(カーネルメッセージ)」「user」「mail」「daemon」「auth」「syslog」「lpr(プリンタ)」「news」から選択。複数指定する場合は「,」で区切る
-k --kernel カーネルメッセージを表示する(「-f kern」相当)
-u --userspace ユーザー空間のメッセージを表示する(「-f user」相当)
-x --decode 表示レベル(level)と表示対象(facility)を表示する
-d --show-delta 直前のメッセージからの経過時間を表示する
-e --reltime メッセージの表示時刻とメッセージ間の経過時間(「-d」」で表示)を読みやすいフォーマットで表示する
-T --ctime メッセージが出力された時刻で表示する(サスペンド/レジュームを使用した場合は不正確になるので注意)
-t --notime 時間を表示しない
-H --human 読みやすいスタイルで表示する
-r --raw メッセージを加工せずに表示する
-L --color 色付きで表示する
-w --follow 新しいメッセージがカーネルから出力されるのを待つ([Ctrl]+「C」キーで終了)
-F ファイル --file ファイル バッファーの代わりに指定したファイルを表示する
-S --syslog syslogを使って表示する
-C --clear バッファーをクリアする(rootユーザーのみ使用可)
-c --read-clear リングバッファーを出力してクリアする(rootユーザーのみ使用可)
-D --console-off コンソールへの出力を無効にする(rootユーザーのみ使用可)
-E --console-on コンソールへの出力を有効にする(rootユーザーのみ使用可)
-n レベル --console-level レベル コンソールに表示するレベルを指定する(rootユーザーのみ使用可)


起動時のメッセージを表示する

 「dmesg」を単独で実行すると、カーネルが出力したメッセージを表示できます。メッセージは長いので、「more」コマンド(本連載第2回)で1行ずつ表示するか、「grep」コマンド(本連載第9〜11回)を使って必要な行を絞り込むとよいでしょう。

コマンド実行例

dmesg | more

(「more」コマンドで1行ずつメッセージを表示する)(画面1

dmesg | grep -i usb

(「grep」コマンドで「usb」を含む行を抽出して表示する。「-i」は大小文字を区別しないオプション)(画面2


画面1 画面1 「more」コマンドで1行ずつメッセージを表示した
画面2 画面2 「grep」コマンドで「usb(USBも)」含む行を抽出するして表示した


重要なメッセージだけを出力する

 「-l」オプションを付けると、表示するメッセージのレベルを指定することができます。レベルは致命的な内容である「emerg」から順番に、「alert」「crit」「err」「warn」「notice」「info」「debug」となっています。複数のレベルを選択したい場合は、「,」(カンマ)で区切って指定します。

 また、各行にレベルを表示したい場合は「-x」オプション、メッセージに色を付けたい場合は「-L」(--color)オプションを使用します。なお、パイプ(|)で他のコマンドに渡す場合は、色の指定が無効になるので、「-l」オプションなどで項目をある程度絞るか、スクロール可能な端末を使用するとよいでしょう。

コマンド実行例

dmesg -l emerg,alert,crit,err -x --color

(「emerg」「alert」「crit」「err」のメッセージをレベル付き、色付きで表示する)(画面3


画面3 画面3 メッセージをレベル付き、色付きで表示した


筆者紹介

西村 めぐみ(にしむら めぐみ)

PC-9801N/PC-386MからのDOSユーザー。1992年より生産管理のパッケージソフトウェアの開発およびサポート業務を担当。のち退社し、専業ライターとして活動を開始。著書に『図解でわかるLinux』『らぶらぶLinuxシリーズ』『はじめてでもわかるSQLとデータ設計』『シェルの基本テクニック』など。2011年より、地方自治体の在宅就業支援事業にてPC基礎およびMicrosoft Office関連の教材作成およびeラーニング指導を担当。


Copyright © ITmedia, Inc. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。