システムの起動時にLinuxカーネルがいくつかのデバイスドライバーをロードすることを知っていますか?実際、システムが稼働していて、ハードウェアデバイスを接続すると、対応するデバイスドライバーも読み込まれます。もちろん、カーネルは他にもたくさんのことをします。これらのカーネルアクティビティに関連する情報を知りたい場合はどうしますか?
カーネルによって出力されたメッセージにアクセスする場合に使用できるコマンド(dmesgと呼ばれる)があります。このチュートリアルでは、わかりやすい例を使用して、dmesgツールがどのように機能するかを理解します。
Linuxdmesgコマンド
dmesgコマンドを使用すると、カーネルリングバッファを印刷または制御できます。その構文は次のとおりです。
dmesg [options]
そして、ツールのマニュアルページで説明されているのは次のとおりです。
dmesg is used to examine or control the kernel ring buffer. The default action is to display all
messages from the kernel ring buffer.
以下は、dmesgコマンドがどのように機能するかについてより良いアイデアを与えるはずのQ&Aスタイルの例です。
Q1。 dmesgコマンドの使用方法は?
任意のコマンドラインオプションを使用せずに、dmesgコマンドの使用を開始できます。
dmesg
たとえば、私の場合に生成されたコマンドの出力のごく一部を次に示します。
Q2。出力をエラーと警告のみに制限するにはどうすればよいですか?
システムでdmesgを実行すると、大量の情報が出力されることがわかります。探しているものに応じて、出力をフィルタリングまたは制限することができます。その一部として、dmesgは「レベル」を通じてこの機能を提供します。以下は、レベルの完全なリストです(説明とともに):
emerg - system is unusable
alert - action must be taken immediately
crit - critical conditions
err - error conditions
warn - warning conditions
notice - normal but significant condition
info - informational
debug - debug-level messages
したがって、たとえば、出力をエラーと警告のみに制限する場合は、次の方法で行うことができます。
dmesg --level=err,warn
私の場合、上記のコマンドが生成した出力の一部は次のとおりです。
Q3。 dmesgに出力でタイムスタンプを生成させる方法は?
場合によっては、タイムスタンプをdmesgが生成するメッセージに関連付ける必要があります。これは、人間が読み取れるタイムスタンプを生成する-Tコマンドラインオプションを使用して実行できます。
dmesg -T
出力例を次に示します。
したがって、タイムスタンプが各メッセージに事前に固定されていることがわかります。
Q4。デバイスに固有のdmesg表示情報を作成するにはどうすればよいですか?
dmesgにeth0インターフェースに関連する情報のみを表示させたいとします。その方法は次のとおりです。
dmesg | grep -i eth0
出力例を次に示します。
Q5。 dmesgにユーザースペースメッセージのみを表示させるにはどうすればよいですか?
dmesgの出力をユーザースペースメッセージのみに制限する場合は、-uコマンドラインオプションを使用します。
dmesg -u
同意しました。dmesgは、毎日必要な種類のコマンドではありません。しかし、これは誰か(あなたが特定のトピックについて助けを求めた人)があなたにカーネルメッセージを提供するように頼んだときに頼るツールです。このケースは、経験豊富なユーザーがカーネル出力を要求するオンラインユーザーフォーラムで主に見られます。
ここで、このチュートリアルでは、初心者の観点からdmesgコマンドについて説明しました(開始するためだけに)。ここで説明したすべての練習が終わったら、ツールのマニュアルページにアクセスしてください。