Linux lsmod 命令及实际示例

LinuxBeginner
立即练习

介绍

在本实验中,你将学习 Linux 的 lsmod 命令及其实际应用。实验将涵盖 lsmod 命令的用途,该命令用于显示当前系统中加载的内核模块信息。你将探索 lsmod 命令的输出,并学习如何解读其提供的信息,例如已加载内核模块的名称、大小和使用情况。此外,你还将学习如何根据需要加载和卸载内核模块。本实验旨在帮助你更好地管理和排查 Linux 系统中的内核模块问题。

Linux 命令速查表

理解 lsmod 命令的用途

在这一步中,你将学习 Linux 中 lsmod 命令的用途。lsmod 命令用于显示当前系统中加载的内核模块信息。

内核模块是可以根据需要加载和卸载到内核中的代码片段,为操作系统提供额外的功能。lsmod 命令允许你查看当前正在使用和活动的内核模块。

要运行 lsmod 命令,只需在终端中执行以下命令:

$ sudo lsmod

示例输出:

Module                  Size  Used by
vboxguest              453376  0
vboxsf                  86016  1

输出显示了每个已加载内核模块的名称、模块的大小(以字节为单位)以及使用该模块的其他模块的数量。

在示例输出中,我们可以看到 vboxguestvboxsf 模块当前已加载。这些模块可能与 VirtualBox 客户机增强功能相关,这些功能为 VirtualBox 虚拟机提供了额外的功能。

通过理解 lsmod 命令的用途,你可以更好地管理和排查 Linux 系统中的内核模块问题。

探索 lsmod 命令的输出

在这一步中,你将学习如何解读 lsmod 命令的输出,并理解它提供的关于已加载内核模块的信息。

让我们再次运行 lsmod 命令:

$ sudo lsmod

示例输出:

Module                  Size  Used by
vboxguest              453376  0
vboxsf                  86016  1

lsmod 命令的输出由三列组成:

  1. Module: 内核模块的名称。
  2. Size: 内核模块的大小(以字节为单位)。
  3. Used by: 使用该模块的其他内核模块的数量。

在示例输出中,我们可以看到 vboxguestvboxsf 模块已加载。vboxguest 模块的大小为 453,376 字节,且没有被其他模块使用。vboxsf 模块的大小为 86,016 字节,且被 1 个其他模块使用。

“Used by”列可以帮助你理解不同内核模块之间的依赖关系。如果某个模块在“Used by”列中的值不为零,则意味着其他模块依赖于该模块提供的功能。

理解 lsmod 命令的输出对于排查与内核模块相关的问题或优化 Linux 系统性能非常有帮助。

加载和卸载内核模块

在这一步中,你将学习如何在 Linux 系统上手动加载和卸载内核模块。

加载内核模块

要加载内核模块,可以使用 modprobe 命令。让我们尝试加载在前几步中看到的 vboxguest 模块:

$ sudo modprobe vboxguest

运行此命令后,你可以通过运行 lsmod 命令来验证 vboxguest 模块是否已加载:

$ sudo lsmod | grep vboxguest
vboxguest              453376  0

卸载内核模块

要卸载内核模块,可以使用 modprobe -r 命令。让我们尝试卸载 vboxguest 模块:

$ sudo modprobe -r vboxguest

现在,如果你再次运行 lsmod 命令,输出中应该不再显示 vboxguest 模块。

$ sudo lsmod | grep vboxguest
## (no output)

通过使用 modprobemodprobe -r 命令,你可以根据需要手动加载和卸载内核模块,以满足系统的需求。

总结

在本实验中,你首先学习了 lsmod 命令的用途,该命令用于显示当前系统中加载的内核模块信息。接着,你探索了 lsmod 命令的输出,了解到它提供了每个已加载内核模块的名称、大小和使用信息。最后,你学习了如何使用 modprobermmod 命令加载和卸载内核模块。

Linux 命令速查表