侧边栏壁纸
Linux入门自学网博主等级

每日学一条Linux命令,终成Linux大神

  • 累计撰写 725 篇文章
  • 累计创建 143 个标签
  • 累计收到 0 条评论

目 录CONTENT

文章目录

Linux lsmod命令用法详解:查看已加载的内核模块(附实例教程和注意事项)

Linux lsmod命令介绍

Linux lsmod命令是用来显示Linux内核中已加载的模块的状态的。它会输出一个已加载模块的列表。lsmod命令是一个简单的程序,它将/proc/modules文件的内容以一种美观的格式显示出来,显示当前加载的内核模块。内核模块是一段扩展内核功能的代码,通常被称为驱动程序。模块可以编译为可加载模块或内置于内核中。可加载模块可以在请求时在运行的内核中加载和卸载,而无需重新启动系统。通常,模块是由udev(设备管理器)按需加载的。你也可以使用modprobe命令手动将模块加载到内核中,或者使用/etc/modules或/etc/modules-load.d/*.conf文件在启动时自动加载模块。内核模块存储在/lib/modules/<kernel_version>目录中。要找到运行的内核的版本,可以使用uname -r命令。

Linux lsmod命令适用的Linux版本

Linux lsmod命令适用于大多数Linux发行版,包括Ubuntu, Debian, Fedora, CentOS, RedHat, SUSE, Arch, Gentoo等。如果你的Linux系统没有lsmod命令,你可以尝试安装kmod或module-init-tools软件包,它们提供了lsmod和其他模块管理命令。例如,在CentOS 7中,你可以使用以下命令安装kmod:

[linux@bashcommandnotfound.cn ~]$ sudo yum install kmod

在CentOS 8中,你可以使用以下命令安装kmod:

[linux@bashcommandnotfound.cn ~]$ sudo dnf install kmod

Linux lsmod命令的基本语法

lsmod命令是一个简单的工具,它不接受任何选项或参数。该命令的语法格式如下:

lsmod

该命令的作用是读取/proc/modules文件,并将文件内容以一种美观的格式显示出来。

Linux lsmod命令的常用选项说明

lsmod命令没有任何选项,但是你可以使用其他命令来过滤或排序它的输出。例如,你可以使用grep命令来查找是否加载了特定的模块,或者使用sort命令来按模块名或大小排序输出。以下是一些常用的命令组合:

命令说明
lsmod | grep 查找是否加载了名为的模块
lsmod | sort按模块名字母顺序排序输出
lsmod | sort -k 2 -n -r按模块大小降序排序输出
lsmod | awk '{print $1}'只显示模块名,不显示大小和使用情况

Linux lsmod命令的实例

以下是一些使用lsmod命令的实例:

  • 查看当前加载的所有内核模块:
[linux@bashcommandnotfound.cn ~]$ lsmod
Module                  Size  Used by
cmac                   16384  0
rfcomm                 81920  4
bnep                   24576  2
snd_hda_codec_hdmi     61440  1
snd_hda_codec_realtek   126976  1
snd_hda_codec_generic    81920  1 snd_hda_codec_realtek
ledtrig_audio          16384  2 snd_hda_codec_generic,snd_hda_codec_realtek
...
  • 查看是否加载了kvm模块:
[linux@bashcommandnotfound.cn ~]$ lsmod | grep kvm
kvm_intel             278528  0
kvm                   651264  1 kvm_intel
irqbypass              16384  1 kvm
  • 查看按模块大小排序的输出:
[linux@bashcommandnotfound.cn ~]$ lsmod | sort -k 2 -n -r
Module                  Size  Used by
nvidia              19759104  30
kvm                   651264  1 kvm_intel
snd_hda_intel          53248  4
snd_hda_codec         135168  4 snd_hda_codec_generic,snd_hda_codec_hdmi,snd_hda_intel,snd_hda_codec_realtek
...
cmac                   16384  0
ledtrig_audio          16384  2 snd_hda_codec_generic,snd_hda_codec_realtek
  • 查看只有模块名的输出:
[linux@bashcommandnotfound.cn ~]$ lsmod | awk '{print $1}'
Module
cmac
rfcomm
bnep
snd_hda_codec_hdmi
snd_hda_codec_realtek
snd_hda_codec_generic
ledtrig_audio
...

Linux lsmod命令的注意事项

  • lsmod命令只能显示已加载的模块,如果你想查看可用的模块,你可以使用find命令在/lib/modules/<kernel_version>目录中搜索。
  • lsmod命令只能显示模块的基本信息,如果你想查看模块的详细信息,你可以使用modinfo命令。
  • lsmod命令不能加载或卸载模块,如果你想加载或卸载模块,你可以使用modprobe或rmmod命令。
  • 如果你的系统没有lsmod命令,你可能会看到以下错误信息:
[linux@bashcommandnotfound.cn ~]$ lsmod
bash: lsmod: command not found

这时,你可以尝试安装kmod或module-init-tools软件包,或者检查你的PATH环境变量是否正确。

0

评论区