Linux中如何使用dmesg輸出內核信息


Linux 內核是一個非常複雜的工程項目,也有着非常複雜的工作機制。其中就包括管理從開機到用戶的 5 種運行級別,還要管理運行計算機時的各種資源,包括:CPU、內存、網絡、視頻輸出以及存儲系統。由於 Linux 內核將統籌不同的系統和資源,它也就有能力記錄各種高級的底層操作信息,以便讓管理員知道系統正在進行怎樣的處理。問題是,對於直接由 Linux 內核輸出的複雜信息讓很多剛入門的 Linux 用戶都無法理解。因此,爲了幫助用戶理解這些基礎知道,我們可以使用 dmesg 這個非常強大的系統管理工具。

Linux系統啓動

要了解當前內核信息最簡便的方法就是輸出系統啓動過程的前幾行內容,我們可以使用如下命令實現:

dmesg | less

Linux中如何使用dmesg輸出內核信息

前 3 行顯示出來的是 Linux 系統的子系統初始化信息,對於普通用戶來說意義不大,但從下面一行開始,就可以看到當前系統運行的是什麼版本的 Linux 內核。

我測試跑在 Windows Azure 上的 Ubuntu Server 時,輸出信息如下:

Linux version 3.13.0-24-generic (buildd@panlong) (gcc version 4.8.2 (Ubuntu 4.8.2-19ubuntu1) ) #46-Ubuntu SMP Thu Apr 10 19:11:08 UTC 2014 (Ubuntu 3.13.0-24.46-generic 3.13.9)

以上信息告訴我們,當前服務器運行的是 Linux kernel 3.13,由 Ubuntu 於 2014 年 4 月 10 日編譯。

在接下來的 80 到 100 行內容,記錄的都是有關 Bios、CPU 和內存的所有底層細節。從上往下看,比較重要的輸出信息還有 內存 的詳細使用情況,有關內存信息的輸出在我服務器上的情況爲:

Memory: 1691820K/1834552K available (7338K kernel code, 1138K rwdata, 3388K rodata, 1332K init, 1440K bss, 142732K reserved)

從輸出的信息可以看出,在初始化 CPU 之後,馬上就開始加載內存,從上面輸入可以看到,我當前服務器的內存大約爲 1.7 G 左右。再從 dmesg 輸出信息往下看,Linux 在完成 CPU 和內存的加載之後很快就會開始處理視頻、USB和磁盤等。

硬件檢測

通過 Linux 內核輸出,我們還可以看到 Linux 是如何讓硬件與我們的計算機進行交互的。如果我們想知道內核中如何識別某個硬盤,可以使用 grep 來搜索 dmesg 的輸出內容。

例如要查看 sda 磁盤在內核中的信息,可以使用如下命令:

dmesg | grep sda

Linux中如何使用dmesg輸出內核信息

sda 是 Linux 中默認對第一塊 SATA 盤的識別名稱,sdb 是第二塊 SATA 盤。如果在你的系統中沒有 sda,可以常試 hda、hdb 等。

要獲取網卡信息,我們可以在 dmesg 輸出信息中搜索 eth0,例如:

dmesg | grep eth0

以此類推,如果你在計算機上插了 U 盤或移動硬盤,也可以使用 dmesg 命令輸出最後幾行信息來查看其如何加載。

dmesg | tail -20

總的來說,dmesg 是 Linux 中非常重要的一個系統信息查看和管理命令,大家也可以嘗試看看你的系統是如何工作,這樣可以讓我們更加了解 Linux。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章