Linux中如何使用dmesg输出内核信息


Linux 内核是一个非常复杂的工程项目,也有着非常复杂的工作机制。其中就包括管理从开机到用户的 5 种运行级别,还要管理运行计算机时的各种资源,包括:CPU、内存、网络、视频输出以及存储系统。由于 Linux 内核将统筹不同的系统和资源,它也就有能力记录各种高级的底层操作信息,以便让管理员知道系统正在进行怎样的处理。问题是,对于直接由 Linux 内核输出的复杂信息让很多刚入门的 Linux 用户都无法理解。因此,为了帮助用户理解这些基础知道,我们可以使用 dmesg 这个非常强大的系统管理工具。

Linux系统启动

要了解当前内核信息最简便的方法就是输出系统启动过程的前几行内容,我们可以使用如下命令实现:

dmesg | less

Linux中如何使用dmesg输出内核信息_第1张图片

前 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输出内核信息_第2张图片

sda 是 Linux 中默认对第一块 SATA 盘的识别名称,sdb 是第二块 SATA 盘。如果在你的系统中没有 sda,可以常试 hda、hdb 等。

要获取网卡信息,我们可以在 dmesg 输出信息中搜索 eth0,例如:

dmesg | grep eth0

以此类推,如果你在计算机上插了 U 盘或移动硬盘,也可以使用 dmesg 命令输出最后几行信息来查看其如何加载。

dmesg | tail -20

总的来说,dmesg 是 Linux 中非常重要的一个系统信息查看和管理命令,大家也可以尝试看看你的系统是如何工作,这样可以让我们更加了解 Linux。

你可能感兴趣的:(Linux中如何使用dmesg输出内核信息)