如何在linux上使用dmesg命令

dmesg命令允許您窺視Linux啟動程序的隱藏世界。與“故障查詢者的朋友”一起檢視和監視來自核心自己的環形緩衝區的硬體裝置和驅動程式訊息...

dmesg命令允許您窺視Linux啟動程序的隱藏世界。與“故障查詢者的朋友”一起檢視和監視來自核心自己的環形緩衝區的硬體裝置和驅動程式訊息

linux的環形緩衝區工作原理

在Linux和Unix類計算機中,啟動和啟動是計算機通電時發生的事件序列的兩個不同階段。

引導程序(BIOS或UEFI、MBR和GRUB)將系統初始化到核心載入到記憶體並連線到初始ramdisk(initrd或initramfs)的點,然後啟動systemd。

然後啟動程序拿起指揮棒,完成作業系統的初始化。在初始化的早期階段,諸如syslogd或rsyslogd之類的日誌守護程式還沒有啟動和執行。為了避免在這個初始化階段丟失明顯的錯誤訊息和警告,核心包含一個環形緩衝區,它將其用作訊息儲存。

環形緩衝區是為訊息保留的記憶體空間。它設計簡單,尺寸固定。當郵件已滿時,較新的郵件將覆蓋最舊的郵件。從概念上講,它可以被認為是一個“迴圈緩衝區”

核心環形緩衝區儲存諸如裝置驅動程式的初始化訊息、來自硬體的訊息和來自核心模組的訊息等資訊。因為它包含這些低階啟動訊息,所以環形緩衝區是開始調查硬體錯誤或其他啟動問題的好地方。

但不要空手而歸。帶上dmesg。

dmesg命令

dmesg命令允許您檢視儲存在環形緩衝區中的訊息。預設情況下,您需要使用sudo來使用dmesg。

sudo dmesg

如何在linux上使用dmesg命令

環形緩衝區中的所有訊息都顯示在終端視窗中。

如何在linux上使用dmesg命令

那是一場洪水。顯然,我們需要做的是少用管道輸送:

sudo dmesg | less

如何在linux上使用dmesg命令

現在我們可以在訊息中滾動查詢感興趣的專案。

如何在linux上使用dmesg命令

您可以使用less中的搜尋功能來定位和突出顯示您感興趣的專案和術語。按less中的正斜槓“/”鍵啟動搜尋功能。

相關:如何在Linux上使用less命令

不再需要sudo

如果希望避免每次使用dmesg時都必須使用sudo,可以使用以下命令。但是,請注意:它允許任何擁有您的計算機使用者帳戶的人使用dmesg,而不必使用sudo。

sudo sysctl -w kernel.dmesg_restrict=0

如何在linux上使用dmesg命令

強制顏色輸出

預設情況下,dmesg可能被配置為生成彩色輸出。如果不是,您可以告訴dmesg使用-L(color)選項對其輸出著色。

sudo dmesg -L

如何在linux上使用dmesg命令

要強制dmesg始終預設為彩色顯示,請使用以下命令:

sudo dmesg --color=always

如何在linux上使用dmesg命令

人類時間戳

預設情況下,dmesg使用自核心啟動以來秒和納秒的時間戳表示法。要以更人性化的格式呈現,請使用-H(human)選項。

sudo dmesg -H

如何在linux上使用dmesg命令

這導致兩件事發生。

如何在linux上使用dmesg命令

  • 輸出自動以較少的單位顯示。
  • 時間戳以分鐘解析度顯示帶有日期和時間的時間戳。每分鐘中發生的訊息都用從該分鐘開始的秒和納秒來標記。

可讀時間戳

如果您不需要納秒精度,但確實希望時間戳比預設值更易於讀取,請使用-t(人類可讀)選項。)有點困惑。-H是“人類”選項,-T是“人類可讀”選項。)

sudo dmesg -T

如何在linux上使用dmesg命令

時間戳呈現為標準日期和時間,但解析度降低到一分鐘。

如何在linux上使用dmesg命令

一分鐘內發生的一切都有相同的時間戳。如果你只關心事件的順序,這就足夠了。另外,請注意,您在命令提示符下返回。此選項不會自動呼叫less。

觀看現場活動

要在訊息到達核心環形緩衝區時檢視訊息,請使用--follow(等待訊息)選項。那句話可能有點奇怪。如果環形緩衝區用於儲存啟動序列中發生的事件的訊息,那麼一旦計算機啟動並執行,實時訊息如何到達環形緩衝區?

任何導致連線到計算機的硬體發生更改的操作都會導致訊息被髮送到核心環形緩衝區。更新或新增核心模組,您將看到關於這些更改的環形緩衝區訊息。如果**USB驅動器或連線或斷開藍芽裝置,您將在dmesg輸出中看到訊息。即使是虛擬硬體也會導致新訊息出現在環形緩衝區中。啟動一個虛擬機器,您將看到新資訊到達環形緩衝區。

sudo dmesg --follow

如何在linux上使用dmesg命令

請注意,不會返回到命令提示符。當出現新訊息時,dmesg將在終端視窗的底部顯示這些訊息。

如何在linux上使用dmesg命令

即使裝載CD-ROM磁碟也被視為一種變化,因為您已經將CD-ROM磁碟的內容嫁接到目錄樹上。

如何在linux上使用dmesg命令

要退出實時提要,請按Ctrl+C。

檢索最後十條訊息

使用tail命令檢索最後十條核心環緩衝區訊息。當然,您可以檢索任意數量的訊息。十隻是我們的例子。

sudo dmesg | last -10

如何在linux上使用dmesg命令

最後十條訊息將被檢索並在終端視窗中列出。

如何在linux上使用dmesg命令

搜尋特定術語

透過grep將dmesg的輸出管道化,以搜尋特定的字串或模式。在這裡,我們使用-i(忽略大小寫)選項,以便忽略匹配字串的大小寫。我們的結果將包括“u**”和“u**”以及任何其他小寫和大寫的組合。

sudo dmesg | grep -i u**

如何在linux上使用dmesg命令

突出顯示的搜尋結果是大寫和小寫的。

如何在linux上使用dmesg命令

我們可以隔離包含對系統sda上第一個SCSI硬碟的引用的訊息。(實際上,sda現在也用於第一個SATA硬碟驅動器和USB驅動器。)

sudo dmesg | grep -i sda

如何在linux上使用dmesg命令

所有提到sda的訊息都會被檢索並在終端視窗中列出。

如何在linux上使用dmesg命令

要使grep一次搜尋多個術語,請使用-E(擴充套件正則表示式)選項。必須在帶引號的字串中提供搜尋項,在搜尋項之間使用管道“|”分隔符:

sudo dmesg | grep -E "memory|tty|dma"

如何在linux上使用dmesg命令

任何提到任何搜尋詞的訊息都會列在終端視窗中。

如何在linux上使用dmesg命令

使用日誌級別

記錄到核心環形緩衝區的每條訊息都有一個附加級別。級別表示訊息中資訊的重要性。級別為:

  • 緊急情況:系統無法使用。
  • 警告:必須立即採取行動。
  • 暴擊:臨界條件。
  • 錯誤:錯誤條件。
  • 警告:警告條件。
  • 注意:正常但重要的情況。
  • 資訊:資訊。
  • 除錯:除錯級訊息。

透過使用-l(level)選項並將級別的名稱作為命令列引數傳遞,我們可以讓dmesg提取與特定級別匹配的訊息。要僅檢視“資訊”級訊息,請使用以下命令:

sudo dmesg -l info

如何在linux上使用dmesg命令

列出的所有訊息都是資訊性訊息。它們不包含錯誤或警告,只是有用的通知。

如何在linux上使用dmesg命令

在一個命令中組合兩個或多個日誌級別以檢索多個日誌級別的訊息:

sudo dmesg -l debug,notice

如何在linux上使用dmesg命令

dmesg的輸出是每個日誌級別的訊息的混合:

如何在linux上使用dmesg命令

設施類別

dmesg訊息分為稱為“設施”的類別。設施列表為:

  • 核心:核心訊息。
  • 使用者:使用者級訊息。
  • 郵件:郵件系統。
  • 守護程式:系統守護程式。
  • 身份驗證:安全/授權訊息。
  • syslog:內部syslogd訊息。
  • 行印表機子系統。
  • 新聞:網路新聞子系統。

我們可以要求dmesg過濾其輸出,以便只顯示特定設施中的訊息。為此,我們必須使用-f(facility)選項:

sudo dmesg -f daemon

如何在linux上使用dmesg命令

dmesg列出終端視窗中與守護程序相關的所有訊息。

如何在linux上使用dmesg命令

正如我們對級別所做的那樣,我們可以要求dmesg一次列出來自多個設施的訊息:

sudo dmesg -f syslog, daemon

如何在linux上使用dmesg命令

輸出是syslog和daemon日誌訊息的混合。

如何在linux上使用dmesg命令

結合設施和水平

x(decode)選項使dmesg將設施和級別顯示為每行的可讀字首。

sudo dmesg -x

如何在linux上使用dmesg命令

在每條線的起點可以看到設施和水平:

如何在linux上使用dmesg命令

第一個突出顯示的部分是來自“kernel”工具的訊息,級別為“notice”。第二個突出顯示的部分是來自“kernel”工具的訊息,級別為“info”

很好,但是為什麼?

簡言之,故障查詢。

如果您遇到硬體無法識別或無**常工作的問題,dmesg可能會對該問題有所幫助。

  • 使用dmesg檢查從最高級別到每個較低級別的訊息,查詢提到硬體項或可能與問題有關的任何錯誤或警告。
  • 使用dmesg搜尋對適當設施的任何提及,以檢視它們是否包含任何有用的資訊。
  • 透過grep傳遞dmesg並查詢相關字串或識別符號,如產品**商或型號。
  • 透過grep引導dmesg,並查詢諸如“gpu”或“storage”之類的通用術語,或者諸如“failure”、“failed”或“unable”之類的術語。
  • 使用--follow選項並實時檢視dmesg訊息。

狩獵愉快。

  • 發表於 2021-04-02 21:09
  • 閱讀 ( 57 )
  • 分類:網際網路

你可能感興趣的文章

你的樹莓皮有問題嗎?試試這4個補丁

...較舊的Pi提供無線連線。但是一旦你啟動了無線網路,你如何上網呢? ...

  • 發佈於 2021-03-11 15:11
  • 閲讀 ( 51 )

如何在linux上安裝和使用powershell

... 在本文中,我將向您展示如何在Linux上安裝、執行和使用PowerShell! ...

  • 發佈於 2021-03-16 02:34
  • 閲讀 ( 52 )

如何在android和termux上使用linux命令列

...許您在Android裝置上安裝誠實善良的Linux應用程式。下面是如何使用Termux應用程式。 ...

  • 發佈於 2021-03-18 07:26
  • 閲讀 ( 63 )

如何在windows10上獲得linux bash shell

... 如何在windows10上安裝linux bash shell ...

  • 發佈於 2021-03-21 11:48
  • 閲讀 ( 60 )

如何用樹莓皮錄製和流媒體直播電視

... 本指南將重點介紹如何將Tvheadend與DVB-T/T2調諧器一起用於無線地面電視,但如果您更喜歡使用Tvheadend從其他輸入源錄製電視,則設定Tvheadend的許多說明將保持不變。 ...

  • 發佈於 2021-03-21 21:12
  • 閲讀 ( 52 )

linux下如何重新命名檔案

要在Linux中重新命名檔案嗎?如果您知道如何在Windows、macOS或Chrome作業系統中完成這項工作,那麼您就知道如何在這裡完成這項工作。在大多數版本的Linux上,您只需右鍵單擊一個檔案並選擇Rename選項。 ...

  • 發佈於 2021-03-22 02:48
  • 閲讀 ( 65 )

linux正在吃掉你的公羊嗎?如何管理你的記憶

...記憶體。為了理解到底發生了什麼,我們必須看看Linux是如何管理記憶體的。 ...

  • 發佈於 2021-03-23 08:31
  • 閲讀 ( 57 )

如何在linux上使用groupadd管理使用者組

... 相關:如何在Linux中更改密碼 ...

  • 發佈於 2021-03-26 17:15
  • 閲讀 ( 41 )

如何在linux中新增使用者

想在Linux系統上新增使用者但不知道如何新增?在Linux上使用命令列介面管理使用者無疑是一項複雜的工作。而對於初學者來說,即使新增新使用者也是一場噩夢。 ...

  • 發佈於 2021-03-26 23:29
  • 閲讀 ( 66 )

如何檢查linux核心和作業系統版本

...版本可以讓您對安全更新做出重要決定。我們將向您展示如何找到這些,無論您使用哪個發行版。 滾動和點釋放 你知道你在執行哪個版本的Linux嗎?你能找到核心版本嗎?Linux的滾動發行版,如Arch、Manjaro和openSUSE,經常使用自...

  • 發佈於 2021-04-01 13:11
  • 閲讀 ( 50 )
maddi2468
maddi2468

0 篇文章

作家榜

  1. admin 0 文章
  2. 孫小欽 0 文章
  3. JVhby0 0 文章
  4. fvpvzrr 0 文章
  5. 0sus8kksc 0 文章
  6. zsfn1903 0 文章
  7. w91395898 0 文章
  8. SuperQueen123 0 文章

相關推薦