如果我们有兴趣了解我们计算机的硬件详细信息,“dmidecode 命令”是首选 Linux 命令。 硬件信息范围从 BIOS(基本输入/输出系统)信息到内存设备的大小。
当我们跑 dmidecode
在终端上,系统检索 DMI (桌面管理界面)表,主要目的是为管理软件提供这些关键细节。 在某种程度上,该命令充当 DMI 表的解码器,因此得名“dmidecode”。
目录
- 如何运行 dmidecode 命令?
- 标准 dmidecode 输出是什么样的?
- DMI 类型
- DMI 关键字
- DMI 字符串
- 解码另一个设备文件的内容
- 如何转储 dmidecode 数据?
- 从二进制转储文件中提取 DMI 数据
- 附加 dmidecode 命令选项
- 结论
如何运行 dmidecode 命令?
由于序列号和 MAC 地址等硬件信息对系统所有者是机密的,因此此命令需要超级用户权限。 最简单的方法是使用 sudo dmidecode
并输入密码。
另一种方法是切换到root用户 sudo su
或者 sudo -s
. 点击这里了解更多信息 sudo. 输入密码后,终端以root用户身份运行。 它由主机名前的关键字“root”表示。
标准 dmidecode 输出是什么样的?
每个表条目都有以下元素。
DMI 类型
类型号起着重要作用,因为它可用于通过运行以下命令来提取表中的特定条目。 让我们从使用基于 dmi 类型的 dmidecode 命令提取数据开始。
基于 DMI 类型提取
dmidecode -t 4

每种类型对应于特定的信息类别。 例如,如上图所示,“类型 4”侧重于处理器信息。
有关 DMI 类型的更多信息
要找出类型编号与其分类信息的映射关系,我们始终可以使用 man 命令参考终端中的手册页。
man dmidecode
向下滚动手册后,您可以找到所有指定的DMI类型

使用多种 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 中的关键字不区分大小写匹配。 dmidecode -t bios
和 dmidecode -t BiOs
给出相同的输出。 如果提供的参数不是有效的关键字,终端会显示所有有效的关键字。
DMI 字符串
确实还有另一种显示此类敏感信息的方法——使用字符串。 这些字符串是预定义的并存储了一些偏移量,这有助于系统查找其对应的值。 假设我们要检查我们的处理器版本,我们将执行以下命令:
dmidecode -s processor-version
输出:

注意:这些字符串可以提供多个输出,具体取决于系统配置。 万一我们输入了一些无效的字符串,终端会显示各种预定义的字符串关键字。
解码另一个设备文件的内容
默认情况下,dmidecode 从 /dev/mem
文件。 了解更多信息。 参考 这个 StackOverflow 问题. 如果我们需要从不同的设备文件中解码 DMI 表,我们运行:
dmidecode -d FILENAME
如何转储 dmidecode 数据?
Linux 还提供转储 DMI 表内容的服务,而不是对它们进行解码。 这种转储主要用于调试目的,但它也可以帮助我们解码其他系统的 DMI 表。 有两种方法可以使用转储内容 dmidecode
:
十六进制转储 – 此转储的输出包含十六进制格式的数据以及各种字符串。
dmidecode -u -t 0

二进制转储——完整的 DMI 表以二进制格式转储到文件中。
dmidecode --dump-bin FILENAME

从二进制转储文件中提取 DMI 数据
您还可以使用以下命令从转储文件中读取二进制数据。
dmidecode --from-dump FILENAME

附加 dmidecode 命令选项
有一些简单的命令可以使用提取一些关键信息 dmidecode
.
当前 RAM 大小/秒:以下命令列出了所有内存插槽中的 RAM 大小。
dmidecode -t 17 | grep -i size

笔记: 管道符号 (|
),用于将一个子命令的输出传递给另一个。 在后一个子命令中 grep
是一个搜索工具。 有关详细信息,请参阅 这.
内存最大容量:为了升级系统的RAM,你必须知道系统可以承受的最大容量。 可以通过以下方式得知:
dmidecode -t 16 | grep -i max

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

我们总是可以使用“man dmidecode"
对于严格的细节。 此外,为了理解 dmidecode
选项,您可以输入 "dmidecode -h"
.
结论
我们希望本教程能帮助您详细了解 dmidecode 命令。 不要忘记查看我们最近关于 awk 和 sed 的一些文章。 如果您有任何问题,请随时与我们联系。