分享 Linux 中容易被遺忘的故障排除工具
dmesg 命令的用法:
當(dāng)我們執(zhí)行命令“dmesg”時(shí),會(huì)顯示從內(nèi)核環(huán)形緩沖區(qū)接收到的所有消息,這里只顯示最新的消息。這用于檢查存儲(chǔ)在內(nèi)核環(huán)形緩沖區(qū)中的消息。在非 root 用戶的情況下,使用“sudo”運(yùn)行 root 級(jí)別的命令而不是 root。
linuxmi@linuxmi /home/linuxmi/www.linuxmi.com
? sudo dmesg
雖然我們使用 dmesg 命令它會(huì)提供大量輸出,但我們可以使用 tail、head 或 less 命令來查看日志頁面。在正斜杠“/”的幫助下搜索您選擇的特定日志或術(shù)語,以在更少 的范圍內(nèi)搜索。
linuxmi@linuxmi /home/linuxmi/www.linuxmi.com
? sudo dmesg | less
dmesg 默認(rèn)提供彩色輸出,如上所示,但如果您想對(duì)其進(jìn)行著色以正確理解消息,則可以使用“L”命令對(duì)其進(jìn)行著色。
linuxmi@linuxmi /home/linuxmi/www.linuxmi.com
? sudo dmesg -L
dmesg 以秒和納秒為單位使用時(shí)間戳,對(duì)于人性化的格式,使用時(shí)間戳的“H”選項(xiàng)。同樣在less中顯示。在時(shí)間戳中,它顯示日期和時(shí)間。每分鐘發(fā)生的消息被標(biāo)記為秒和納秒。
linuxmi@linuxmi /home/linuxmi/www.linuxmi.com
? sudo dmesg -H
我們使用-T(友好的顯示)選項(xiàng),因?yàn)樗鼈円詷?biāo)準(zhǔn)日期和時(shí)間顯示。
linuxmi@linuxmi /home/linuxmi/www.linuxmi.com
? sudo dmesg -T
監(jiān)控實(shí)時(shí)日志–follow選項(xiàng)與 dmesg 一起使用,它在終端底部顯示最近的消息。
linuxmi@linuxmi /home/linuxmi/www.linuxmi.com
? sudo dmesg --follow
正如我們看到的 dmesg 給出的大輸出,我們可以使用 tail 或 head 選項(xiàng)列出特定數(shù)量的消息并查看它們。在這里,我們使用head 選項(xiàng)檢查前 10 條消息。
linuxmi@linuxmi /home/linuxmi/www.linuxmi.com
? sudo dmesg | head -10
最后 10 條消息使用tail 選項(xiàng)顯示。
linuxmi@linuxmi /home/linuxmi/www.linuxmi.com
? sudo dmesg | tail -10
在這里,我們將使用-i(忽略)選項(xiàng)通過掃描 dmesg 輸出來搜索特定的字符串或模式或消息,但此選項(xiàng)將忽略字符串的大小寫并僅關(guān)注我們搜索的字符串。在結(jié)果中,它將顯示“USB”和“usb”組合的消息。
linuxmi@linuxmi /home/linuxmi/www.linuxmi.com
? sudo dmesg | grep -i usb
使用帶有 dmesg 的 grep 命令搜索與內(nèi)存、RAM、硬盤或 USB 驅(qū)動(dòng)器相關(guān)的消息。這里 grep 與“sda”一起使用來檢查內(nèi)核檢測(cè)到了哪些硬盤。sda 命令用于檢查硬盤,并將在列出 sda 的任何位置顯示消息。
linuxmi@linuxmi /home/linuxmi/www.linuxmi.com
? sudo dmesg | grep -i sda
每個(gè)記錄到內(nèi)核環(huán)形緩沖區(qū)的消息都被分配一個(gè)級(jí)別。層次代表了信息在交流中的重要性。級(jí)別如下:
- emerg:系統(tǒng)無法使用。
- alert:必須立即采取行動(dòng)。
- crit:臨界條件。
- err:錯(cuò)誤條件。
- warn:警告條件。
- notice:正常但重要的情況。
- info:信息。
- debug:調(diào)試級(jí)消息。
使用帶有 dmesg -l(級(jí)別)選項(xiàng)提取消息,后跟級(jí)別的名稱。在這里,我們使用 dmesg 命令列出所有使用級(jí)別“info”的信息消息,它們將顯示需要和重要的通知。
linuxmi@linuxmi /home/linuxmi/www.linuxmi.com
? sudo dmesg -l info
要提取具有多個(gè)日志級(jí)別的消息,我們必須組合兩個(gè)或多個(gè)日志級(jí)別。在這里,我們使用“debug 和 notice”日志級(jí)別來提取消息。
linuxmi@linuxmi /home/linuxmi/www.linuxmi.com
? sudo dmesg -l debug,notice
組合多個(gè)日志級(jí)別的另一個(gè)示例是“err 和 warn”,它將顯示錯(cuò)誤日志和警告日志。
linuxmi@linuxmi /home/linuxmi/www.linuxmi.com
? sudo dmesg --level=err,warn
顯示eth0 用戶界面的 dmesg 消息使用 grep 選項(xiàng)后跟eth0。
linuxmi@linuxmi /home/linuxmi/www.linuxmi.com
? sudo dmesg | grep -i eth0
使用 facility 選項(xiàng) -f過濾 dmesg 消息,它將顯示特定工具“守護(hù)程序daemon”的消息。
linuxmi@linuxmi /home/linuxmi/www.linuxmi.com
? sudo dmesg -f daemon
-x(解碼)選項(xiàng)用于易于閱讀的格式將設(shè)施和級(jí)別顯示為每行的前綴。
linuxmi@linuxmi /home/linuxmi/www.linuxmi.com
? sudo dmesg -x
總結(jié)
Linux dmesg(英文全稱:display message)命令用于顯示開機(jī)信息。
kernel 會(huì)將開機(jī)信息存儲(chǔ)在 ring buffer 中。您若是開機(jī)時(shí)來不及查看信息,可利用 dmesg 來查看。開機(jī)信息亦保存在 /var/log 目錄中,名稱為 dmesg 的文件里。