Linux命令:用来列出当前系统内核加载的所有模块的工具lsmod详解

news2024/9/25 20:31:11

目录

一、概述

二、 使用方法

三、 输出格式

四、 示例

五、 相关命令

六、 高级用法

1、结合管道符 | 和 grep 命令

2、结合其他命令使用

七、应用和注意


一、概述

        lsmod 是一个 Linux 命令行工具,用来列出当前内核加载的所有模块。这个命令对于了解哪些模块已经在系统中活跃非常有用,特别是在诊断硬件问题或调查系统行为的时候。

二、 使用方法

        lsmod 命令没有太多选项,使用起来非常直接。在终端中输入 lsmod 并按回车键即可看到输出结果。如下图所示为命令用法:

        Usage: lsmod

如下图所示: 

命令用法

三、 输出格式

lsmod 命令输出的每一行代表一个内核模块的信息,格式如下:

        Module                  Size  Used by

如下图所示:

输出格式展示图

具体字段解释如下:

- Module: 模块的名字。

- Size: 模块的大小(单位通常是千字节)。

- Used by: 表示有多少个其他模块依赖于该模块。如果这个数字大于零,则表示有其他模块引用了这个模块。

四、 示例

假设在终端中运行了 lsmod 命令,可能会看到类似于下面的输出: 

root@quinn-ThinkPad-T430s:/studyLinux#
root@quinn-ThinkPad-T430s:/studyLinux# lsmod
Module                  Size  Used by
btrfs                2019328  0
blake2b_generic        24576  0
xor                    20480  1 btrfs
raid6_pq              126976  1 btrfs
ufs                   126976  0
qnx4                   12288  0
hfsplus               139264  0
hfs                    77824  0
minix                  49152  0
ntfs                  139264  0
msdos                  16384  0
jfs                   299008  0
nls_ucs2_utils          8192  1 jfs
xfs                  2363392  0
libcrc32c              12288  2 btrfs,xfs
cpuid                  12288  0
tls                   155648  0
rfcomm                102400  16
ccm                    20480  6
cmac                   12288  3
algif_hash             12288  1
algif_skcipher         16384  1
af_alg                 32768  6 algif_hash,algif_skcipher
bnep                   32768  2
binfmt_misc            24576  1
nls_iso8859_1          12288  1
snd_hda_codec_hdmi     94208  1
snd_ctl_led            24576  0
iwldvm                356352  0
snd_hda_codec_realtek   200704  1
btusb                  77824  0
snd_hda_codec_generic   122880  1 snd_hda_codec_realtek
uvcvideo              139264  0
intel_rapl_msr         20480  0
intel_rapl_common      40960  1 intel_rapl_msr
videobuf2_vmalloc      20480  1 uvcvideo
uvc                    12288  1 uvcvideo
videobuf2_memops       16384  1 videobuf2_vmalloc
mac80211             1724416  1 iwldvm
btrtl                  32768  1 btusb
snd_hda_intel          61440  3
btintel                57344  1 btusb
libarc4                12288  1 mac80211
nouveau              3100672  0
videobuf2_v4l2         36864  1 uvcvideo
snd_intel_dspcfg       36864  1 snd_hda_intel
x86_pkg_temp_thermal    20480  0
btbcm                  24576  1 btusb
mei_pxp                16384  0
videodev              356352  2 videobuf2_v4l2,uvcvideo
mei_hdcp               28672  0
intel_powerclamp       24576  0
snd_intel_sdw_acpi     16384  1 snd_intel_dspcfg
mxm_wmi                12288  1 nouveau
i915                 4288512  5
snd_hda_codec         204800  4 snd_hda_codec_generic,snd_hda_codec_hdmi,snd_hda_intel,snd_hda_codec_realtek
btmtk                  12288  1 btusb
videobuf2_common       81920  4 videobuf2_vmalloc,videobuf2_v4l2,uvcvideo,videobuf2_memops
bluetooth            1028096  44 btrtl,btmtk,btintel,btbcm,bnep,btusb,rfcomm
drm_gpuvm              45056  1 nouveau
drm_exec               12288  2 drm_gpuvm,nouveau
gpu_sched              61440  1 nouveau
drm_ttm_helper         12288  1 nouveau
mc                     81920  4 videodev,videobuf2_v4l2,uvcvideo,videobuf2_common
snd_hda_core          139264  5 snd_hda_codec_generic,snd_hda_codec_hdmi,snd_hda_intel,snd_hda_codec,snd_hda_codec_realtek
drm_buddy              20480  1 i915
ttm                   110592  3 drm_ttm_helper,i915,nouveau
ecdh_generic           16384  2 bluetooth
ecc                    45056  1 ecdh_generic
snd_hwdep              20480  1 snd_hda_codec
drm_display_helper    237568  2 i915,nouveau
thinkpad_acpi         163840  0
coretemp               24576  0
crct10dif_pclmul       12288  1
snd_pcm               192512  4 snd_hda_codec_hdmi,snd_hda_intel,snd_hda_codec,snd_hda_core
iwlwifi               598016  1 iwldvm
cec                    94208  2 drm_display_helper,i915
rc_core                73728  1 cec
i2c_algo_bit           16384  2 i915,nouveau
nvram                  16384  1 thinkpad_acpi
polyval_clmulni        12288  0
polyval_generic        12288  1 polyval_clmulni
ghash_clmulni_intel    16384  0
snd_seq_midi           24576  0
snd_seq_midi_event     16384  1 snd_seq_midi
snd_rawmidi            57344  1 snd_seq_midi
snd_seq               114688  2 snd_seq_midi,snd_seq_midi_event
sha256_ssse3           32768  0
sha1_ssse3             32768  0
aesni_intel           356352  8
cfg80211             1327104  3 iwldvm,iwlwifi,mac80211
snd_seq_device         16384  3 snd_seq,snd_seq_midi,snd_rawmidi
mei_me                 53248  2
snd_timer              49152  2 snd_seq,snd_pcm
crypto_simd            16384  1 aesni_intel
cryptd                 24576  3 crypto_simd,ghash_clmulni_intel
mei                   167936  5 mei_hdcp,mei_pxp,mei_me
snd                   143360  19 snd_ctl_led,snd_hda_codec_generic,snd_seq,snd_seq_device,snd_hda_codec_hdmi,snd_hwdep,snd_hda_intel,snd_hda_codec,snd_hda_codec_realtek,snd_timer,thinkpad_acpi,snd_pcm,snd_rawmidi
rapl                   20480  0
intel_cstate           24576  0
soundcore              16384  2 snd_ctl_led,snd
at24                   28672  0
input_leds             12288  0
ledtrig_audio          12288  2 snd_ctl_led,thinkpad_acpi
platform_profile       12288  1 thinkpad_acpi
think_lmi              45056  0
serio_raw              20480  0
mac_hid                12288  0
wmi_bmof               12288  0
firmware_attributes_class    12288  1 think_lmi
sch_fq_codel           24576  2
msr                    12288  0
parport_pc             53248  0
ppdev                  24576  0
lp                     28672  0
parport                73728  3 parport_pc,lp,ppdev
ramoops                36864  0
pstore_blk             16384  0
pstore_zone            32768  1 pstore_blk
efi_pstore             12288  0
reed_solomon           24576  1 ramoops
ip_tables              32768  0
x_tables               65536  1 ip_tables
autofs4                57344  2
crc32_pclmul           12288  0
i2c_i801               36864  0
ahci                   49152  2
sdhci_pci              90112  0
xhci_pci               24576  0
cqhci                  40960  1 sdhci_pci
i2c_smbus              16384  1 i2c_i801
libahci                53248  1 ahci
lpc_ich                32768  0
e1000e                356352  0
video                  73728  3 thinkpad_acpi,i915,nouveau
sdhci                  90112  1 sdhci_pci
psmouse               217088  0
xhci_pci_renesas       20480  1 xhci_pci
wmi                    28672  5 video,wmi_bmof,think_lmi,mxm_wmi,nouveau
root@quinn-ThinkPad-T430s:/studyLinux#

        这里的每一行都对应一个已经加载到内核中的模块。例如,iwlwifi 模块的大小为 598016 千字节,并且没有其他模块依赖于它。

五、 相关命令

除了 lsmod 外,还有几个与内核模块管理相关的命令:

- insmod: 用于加载一个模块到内核中。

- rmmod: 用于从内核中移除一个模块。

- modinfo: 提供模块的详细信息,包括它的描述、版本号、作者以及依赖关系等。

六、 高级用法

1、结合管道符 | 和 grep 命令

如果想要搜索特定的模块,可以结合管道符 | 和 grep 命令一起使用,例如:

lsmod | grep iwlwifi

这将只显示包含 iwlwifi关键词的模块信息。如下图所示:

iwlwifi关键词的模块信息

2、结合其他命令使用

lsmod 常与其他命令结合使用,比如 modinfo 来获取模块的详细信息:

lsmod | grep '模块名称' | awk '{print $1}' | xargs modinfo

比如,输入如下命令

lsmod | grep 'iwlwifi' | awk '{print $1}' | xargs modinfo

实际操作如下:

查看模块详细信息

七、应用和注意

1、当需要知道系统中已经加载了哪些驱动或其他内核模块时,lsmod 是一个非常有用的工具。例如,在解决硬件兼容性问题时,查看是否有相应的驱动模块被加载,可以帮助定位问题所在。

2、如果一个模块显示为 “0”在 “Used by”列,这通常意味着该模块当前没有被任何其他模块或内核部分所依赖,但它仍然被加载到内核中。在某些情况下,这可能表示该模块可以被安全地卸载(使用 rmmod 命令),但这需要谨慎操作,因为某些模块即使不被其他模块直接依赖,也可能对系统的稳定运行至关重要。

3、lsmod 命令实际上是通过读取 /proc/modules 文件来获取模块信息的,这个文件包含了当前内核加载的所有模块的列表和相关信息。

4、如果想了解某个特定模块的更详细信息,可以使用 modinfo 命令加上模块名来查看该模块的元数据,如版本号、作者、描述等。

总之,lsmod 是一个简单的但非常实用的命令,可以帮助用户更好地理解当前系统内核的状态及其加载的模块。


文章正下方可以看到我的联系方式:鼠标“点击” 下面的 “威迪斯特-就是video system 微信名片”字样,就会出现我的二维码,欢迎沟通探讨。


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2164713.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

分布式计算技术是什么?在数据集成值得作用?

数据是现代科技技术的基础,面对爆炸性数据的增长,要求计算能力要求更高、数据整合和处理更有效,如何应对数据集成带来的挑战?本文将探讨分布式计算技术在数据集成中的优化作用。 一 分布式计算技术。 定义:分布式计算…

《机器学习by周志华》学习笔记-神经网络-02感知机与多层网络

1、感知机 1.1、概念 感知机(Perceptron)由2层神经元模型组织,如下图所示: 「输入层神经元」接收外界输入信号后,传递给「输出层神经元 」 「输出层神经元」是「M-P神经元」,亦称「阈值逻辑单元(threshold logic unit)」 1.2、作用 「感知机」能够容易的实现逻辑「与…

初识前端监控

以下笔记来源:黑马程序员 背景 思考一下,我们的项目代码在上线之后是不是就不用管了呢? 并不是,作为前端开发工程师,我们是直接跟用户打交道的,一个应用的用户留存率跟这个应用的稳定性有很大的关系&…

NXP i.MX8系列平台开发讲解 - 4.2.1 摄像头篇(一) - 认识摄像头模组

专栏文章目录传送门:返回专栏目录 Hi, 我是你们的老朋友,主要专注于嵌入式软件开发,有兴趣不要忘记点击关注【码思途远】 文章目录 目录 1. 引言 2. 嵌入式系统中的CCM应用 3. 摄像头模组的基本组成 4. 摄像头模组的封装工艺 5. 摄像头…

GORM入门

ORM框架 什么是ORM ORM优缺点 GORM介绍 Github GORM 中文官方网站 安装 go get -u github.com/jinzhu/gorm连接数据库 连接不同的数据库都需要导入对应数据的驱动程序,GORM已经包装了一些驱动程序,只需要按如下方式导入需要的数据库驱动即可&#…

Python 方法传参详解

参数 位置参数 和关键字参数 data{error: str(e)}:传递给了 __init__ 方法中的 data 参数,表示需要返回给客户端的 JSON 数据。status500:通过 **kwargs 传递给了父类 HttpResponse,并设置了响应状态码为 500。 位置参数 和关键字…

redis Redis-Cluster常用命令与Redis性能监控

起因:随着项目的进一步推广,数据量的增大,直接访问mysql数据库获取数据所使用的时间越来越长,为解决当前主要矛盾,决定引入redis非关系型数据库作为缓存层,使得数据并不能直接命中数据库,减少访…

重生之我在代码随想录刷算法第十三天 | 110.平衡二叉树、257. 二叉树的所有路径、404.左叶子之和、222.完全二叉树的节点个数

参考文献链接:代码随想录 本人代码是Java版本的,如有别的版本需要请上代码随想录网站查看。 110.平衡二叉树 力扣题目链接 解题思路 这道题目刚看到以为和二叉树的最大深度差不多,上来写了一堆迭代求深度的代码结果发现不对劲。 看了题…

非标精密五金加工的技术要求

非标精密五金加工在现代制造业中占据着重要地位,其对于产品的精度、质量和性能有着较高的要求。以下是时利和整理的其具体的技术要求: 一、高精度的加工设备 非标精密五金加工需要先进的加工设备来保证加工精度。例如,高精度的数控机床是必不…

【越学学糊涂的Linux系统】Linux指令篇(2)

一、echo指令: ✔️✔️在终端中显示文本内容或向文件中写入文本 Ⅰ.基本用法: 0x00打印字符串: 打印字符串/显示文本内容;可以用双引号作为文本内容⬇️⬇️更推荐用单引号 这里我将字符串打印出来了。和printf的功能一样&…

【Linux实践】实验五:用户和组群账户管理

【Linux实践】实验五:用户和组群账户管理 实验目的实验内容实验步骤及结果1. 创建用户2. 切换用户3. 修改用户4. 删除用户5. 创建组群6. 修改组群补充:删除组群 实验目的 1、掌握字符界面下用户账户的设置,包括命令useradd、usermod、userde…

深入解析 Apache Kylin

以下是关于 Kylin 概述 部分的内容,你可以在技术博客中使用: 1. Kylin 概述 什么是 Apache Kylin? Apache Kylin 是一个开源的分布式分析引擎,主要为大数据场景下的 OLAP(Online Analytical Processing)提…

利用echarts 显示图片信息

当前有个需求,需要对其进行相关统计,这里我们采用jquery3.6 与echarts.js 做相关图表,不解释,直接上代码吧 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"wid…

被动元数据的不足和主动元数据的先进性

元数据管理领域&#xff0c;被动元数据管理主要执行的是一种基础且相对直接的任务&#xff0c;即简单地对元数据进行编目或存储。这一过程通常不涉及复杂的逻辑处理或动态分析&#xff0c;而是侧重于数据的静态描述和记录&#xff0c;如数据类型、结构、位置、创建时间等。 这…

【PG备份恢复】基于时间点的恢复(踩坑指南)

1 设置基于时间点恢复所需的配置 要启用WAL归档&#xff0c; 需设置wal_level配置参数为replica或更高&#xff0c;设置archive_mode为on&#xff0c;并且使用archive_command配置参数指定一个shell命令 1.1 修改配置文件 postgresql.conf vim postgresql.conf archive_…

资深老师都在用的成绩发布小程序,月考发成绩就用它!

在教育的长河中&#xff0c;老师们一直扮演着知识传递者的角色。然而&#xff0c;随着时间的流逝&#xff0c;教育的方式也在不断地革新。过去&#xff0c;老师们发布成绩查询的方式既繁琐又耗时。 现在我们有了更高效、更便捷的成绩发布方式。在众多的成绩查询系统中&#xff…

2.数据结构研究

计算机解决问题的步骤 线性表 树 图&#xff08;点线&#xff09;

电脑录屏软件免费版,四款宝藏软件揭秘

在这个数字化时代&#xff0c;无论是教学演示、游戏直播还是软件教程分享&#xff0c;电脑录屏都成为了我们日常生活中不可或缺的一部分。然而&#xff0c;面对市面上琳琅满目的录屏软件&#xff0c;如何选择一款既免费又功能强大的工具&#xff0c;成为了不少小伙伴的难题。今…

桌面专业版【ssh配置】

UOS统信SSH协议的简单使用方法。包含软件安装,服务启动及常见问题等内容。 文章目录 功能概述一、SSH安装二、SSH使用方法三、SSH常见问题1. 无法使用root用户登陆。2. SSH登录提示”connect to hosts xxxx :Connection refused功能概述 SSH 为 Secure Shell 的缩写,由 IET…

手把手搞定VMware 的CentOS硬盘扩容

1.背景 用VMware虚拟机创建Centos系统时&#xff0c;选了40GB硬盘&#xff0c;用着用着发现硬盘不够用了。于是&#xff0c;我为了给硬盘扩容&#xff0c;实操了下centos的硬盘扩容。本文是记录下整个操作过程&#xff0c;方便后面查询和使用。 2.操作 2.1 VMware操作 2.2 Ce…