如何在 Linux 中使用 dmidecode 命令?

如果我们有兴趣了解我们计算机的硬件详细信息,“dmidecode 命令”是首选 Linux 命令。 硬件信息范围从 BIOS(基本输入/输出系统)信息到内存设备的大小。

当我们跑 dmidecode 在终端上,系统检索 DMI (桌面管理界面)表,主要目的是为管理软件提供这些关键细节。 在某种程度上,该命令充当 DMI 表的解码器,因此得名“dmidecode”。

目录

如何运行 dmidecode 命令?

由于序列号和 MAC 地址等硬件信息对系统所有者是机密的,因此此命令需要超级用户权限。 最简单的方法是使用 sudo dmidecode 并输入密码。

dmidecode 详细信息

另一种方法是切换到root用户 sudo su 或者 sudo -s. 点击这里了解更多信息 sudo. 输入密码后,终端以root用户身份运行。 它由主机名前的关键字“root”表示。

标准 dmidecode 输出是什么样的?

每个表条目都有以下元素。

dmidecode 表项

DMI 类型

类型号起着重要作用,因为它可用于通过运行以下命令来提取表中的特定条目。 让我们从使用基于 dmi 类型的 dmidecode 命令提取数据开始。

基于 DMI 类型提取

dmidecode -t 4
Dmidecode 类型示例dmidecode type 4 – 处理器信息

每种类型对应于特定的信息类别。 例如,如上图所示,“类型 4”侧重于处理器信息。

有关 DMI 类型的更多信息

要找出类型编号与其分类信息的映射关系,我们始终可以使用 man 命令参考终端中的手册页。

man dmidecode

向下滚动手册后,您可以找到所有指定的DMI类型

Dmi 类型 DmidecodeDMI 表类型

使用多种 DMI 类型显示条目

显示多种硬件信息 -t <TYPE NO.> 每次都重复。 例如,要在同一实例中显示底板和机箱信息,我们运行:

dmidecode -t 2 -t 3 

或者,

dmidecode -t 2,3

DMI 关键字

除了使用 DMI 编号显示详细信息外,我们还可以使用特殊关键字,例如“bios”、“memory”等。这可以通过以下方式完成:

dmidecode -t bios

通过参考上面的 DMI Types 表,我们可以注意到类型编号 0 和 13 对应于 BIOS 相关信息,因此输出:

Dmidecode 关键字 BiosBIOS 关键字输出

为了获得更多关于内置关键字类型的知识,我们可以再次查看手册页。 我们会找到以下关键词:

Dmidecode 关键字类型dmidecode 关键字

笔记: dmidecode 中的关键字不区分大小写匹配。 dmidecode -t biosdmidecode -t BiOs 给出相同的输出。 如果提供的参数不是有效的关键字,终端会显示所有有效的关键字。

DMI 字符串

确实还有另一种显示此类敏感信息的方法——使用字符串。 这些字符串是预定义的并存储了一些偏移量,这有助于系统查找其对应的值。 假设我们要检查我们的处理器版本,我们将执行以下命令:

dmidecode -s processor-version

输出:

Dmidecode String Proc 版本使用 dmidecode 的处理器版本

注意:这些字符串可以提供多个输出,具体取决于系统配置。 万一我们输入了一些无效的字符串,终端会显示各种预定义的字符串关键字。

解码另一个设备文件的内容

默认情况下,dmidecode 从 /dev/mem 文件。 了解更多信息。 参考 这个 StackOverflow 问题. 如果我们需要从不同的设备文件中解码 DMI 表,我们运行:

dmidecode -d FILENAME

如何转储 dmidecode 数据?

Linux 还提供转储 DMI 表内容的服务,而不是对它们进行解码。 这种转储主要用于调试目的,但它也可以帮助我们解码其他系统的 DMI 表。 有两种方法可以使用转储内容 dmidecode

十六进制转储 – 此转储的输出包含十六进制格式的数据以及各种字符串。

dmidecode -u -t 0
Dmidecode 十六进制转储BIOS 的十六进制转储

二进制转储——完整的 DMI 表以二进制格式转储到文件中。

dmidecode --dump-bin FILENAME
Dmidecode Bin 转储 将完整的二进制文件转储到 dump_file

从二进制转储文件中提取 DMI 数据

您还可以使用以下命令从转储文件中读取二进制数据。

dmidecode --from-dump FILENAME
转储中的 Dmidecode从 dump_file 中提取 DMI 数据

附加 dmidecode 命令选项

有一些简单的命令可以使用提取一些关键信息 dmidecode.

当前 RAM 大小/秒:以下命令列出了所有内存插槽中的 RAM 大小。

dmidecode -t 17 | grep -i size 
Dmidecode 当前 RAM使用 dmidecode 的当前 RAM 大小

笔记: 管道符号 (|),用于将一个子命令的输出传递给另一个。 在后一个子命令中 grep 是一个搜索工具。 有关详细信息,请参阅 .

内存最大容量:为了升级系统的RAM,你必须知道系统可以承受的最大容量。 可以通过以下方式得知:

dmidecode -t 16 | grep -i max
Dmidecode Max Ram使用 dmidecode 的最大 RAM 容量

核心数和线程数:在多线程环境中,内核和线程的数量起着巨大的作用。 为了找出他们的数量,我们运行:

dmidecode -t 4 | grep -iw count
Dmidecode 核心数使用 dmidecode 的核心和线程数

我们总是可以使用“man dmidecode" 对于严格的细节。 此外,为了理解 dmidecode 选项,您可以输入 "dmidecode -h".

结论

我们希望本教程能帮助您详细了解 dmidecode 命令。 不要忘记查看我们最近关于 awk 和 sed 的一些文章。 如果您有任何问题,请随时与我们联系。