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环境变量是否正确。
评论区