如何在 Linux 中使用 lsmod(以实际例子为例)

在这里插入图片描述
Linux 内核对大多数人来说是一个谜,但它不必如此!欢迎来到令人兴奋的 lsmod 世界,该工具可让您查看内核正在使用的模块等!

什么是lsmod?

为了解释lsmod这个允许在 Linux 内核中列出模块的工具,首先必须了解模块是什么。Linux 模块是一段模块化代码(以编译格式运行),可以随意从 Linux 内核加载或卸载。使用这些模块的主要优点是它们的模块化和粒度。

您可以将内核模块视为其他软件中的插件。每当您需要一个特定的——不太常见或不通用的——功能时,它都可以作为插件使用,或者在 Linux 内核的情况下作为一个模块使用。其他软件中的插件与 Linux 内核模块之间几乎没有区别。但是,它们运行的​​级别更接近于硬件和核心运行软件,而不是在用户级别的堆栈末尾。

例如,您的显卡驱动程序——尤其是当您使用 NVidia 驱动程序时——作为内核模块加载。安装驱动程序时,会配置并加载内核模块(可能在系统下次重新启动时)。

回到lsmod,它应该包含在您的 Linux 操作系统的默认安装中,该工具将列出当前可用的内核模块的概述。

lsmod:第一眼

有趣的是,它lsmod是一种将(虚拟)/proc/modules文件的内容呈现为更易读的内容的工具。

该/proc/modules文件是一个 0 字节的虚拟文件,当使用例如cat或 进行查看时vi,它将包含(或更好地呈现)当前可用于lsmod正在执行的系统上的 Linux 内核的模块列表。

让我们首先检查/proc/modules文件的内容是否存在 AHCI(高级主机控制器接口)Linux 内核模块:

cat /proc/modules | grep ahci

在这里插入图片描述

这里我们使用cat来显示(渲染) 的内容/proc/modules,然后grep用于 AHCI 模块的 grep。请注意,我们没有指定-i选项(它会进行不区分大小写的搜索)到grep,因为模块的完整列表/proc/modules只有小写。

我们可以从提供的输出中看到当前可用的 AHCI Linux 内核模块。否则,输出看起来有点神秘并且不太具有描述性。让我们lsmod现在试试。

lsmod | grep -E '^Module|ahci'

在这里插入图片描述

在这里,我们使用lsmod了一个没有选项的工具,用于grep获取多个感兴趣的结果。该-E选项的grep使我们能够,我们希望看到的项目的选择/选择列表(串),所有分离由一个或多个管道符号(|)。

因此,我们在这里寻找任何ahci出现(在第二个选择器/选择字符串中)和任何Module出现(在第一个选择器/选择字符串中),其中是正则表达式(仅适用于第一个选择器),选择开始a line,表示我们只想看到行首紧跟在“Module”后面的结果,这将是我们的第一个标题行。

我们看到输出现在很好地呈现;第一行(我们的grep命令由于^Module选择器而包括在内)和第二行和第三行列出了ahci我们grep由于第二个选择器而选择的模块。

标题列输出告诉我们每列包含什么;第一列是模块名称(Module),第二列是字节(Size),第三列提供引用计数(Used by),或者换句话说,模块被引用了多少次(可能模糊地是被内核翻译为used )。

如果第三列中的引用计数为零,则意味着虽然该模块“在”内核中可用,但当前没有被使用。

提示:如果您-2在 的输出中看到lsmod,您可能需要在 Stackexchange的“Used by”列中检查lsmod 显示 -2。

使用modinfo深入挖掘

虽然lsmod工具有没有自身的选项,我们可以结合使用其他实用程序与lsmod的发现信息modinfo。

modinfo ahci -F 'description'
modinfo ahci -F 'author'

在这里插入图片描述

这里我们使用该modinfo命令来查找有关ahciLinux Kernel 模块的更多信息。特别是,我们使用-F选项来modinfo选择我们想要了解其内容的特定字段。请注意,如果您在modinfo ahci没有任何选项的情况下执行,您将看到有关ahci内核模块的所有可用信息的完整列表。这是输出非常冗长,因为它包括签名密钥数据等。

我们也可以grep像之前那样使用类似的方法在单个命令中选择两条信息。为此,我们使用modinfo ahci | grep -E ‘description|author’,它呈现两行的相同输出,尽管直接在彼此之下。

在这里插入图片描述

另请注意,可以再次使用正则表达式’仅选择从行首开始的输出字符串(对于正在搜索的两个字段),即modinfo ahci | grep -E ‘description|author’

与 相比 lsmod,modinfo 还有一些您可能感兴趣的其他选项。结帐 man modinfo以查看所有可用选项。

包起来

在本文中,我们探讨了无选项lsmod工具及其为我们提供的便捷输出,向我们展示了哪些 Linux 内核模块可用以及每个此类内核模块当前被内核引用(“使用”)了多少次。我们还研究了如何使用modinfoLinux 中的命令获取有关特定模块的更多信息。我们还研究了如何grep -E通过使用多个选择字符串进行扫描来一次获取两条信息。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

mikes zhang

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值