【linuxlsmod命令详解】`lsmod` 是 Linux 系统中用于查看当前内核加载模块的命令。它是 `Linux Module`(内核模块)管理的重要工具之一,常用于调试、排查系统问题或了解系统运行时的模块状态。
一、
`lsmod` 命令主要用于显示当前内核中已加载的模块信息。它会列出模块名称、大小、使用次数等关键信息。该命令通常与 `modinfo`、`modprobe`、`rmmod` 等命令配合使用,以实现对内核模块的管理。
通过 `lsmod`,用户可以快速判断某个驱动是否被正确加载,或者是否存在模块冲突等问题。此外,`lsmod` 的输出结果也常用于系统日志分析和性能优化。
二、表格展示
| 参数 | 说明 | |
| `lsmod` | 显示所有已加载的内核模块 | |
| `lsmod | grep 模块名` | 过滤查找特定模块的信息 |
| `lsmod -m` | 显示模块的依赖关系 | |
| `lsmod --help` | 查看帮助信息 | |
| `lsmod > modlist.txt` | 将模块列表保存到文件 | |
| 输出字段 | 说明 | |
| Module | 模块名称 | |
| Size | 模块占用内存大小(字节) | |
| Used by | 被哪些模块或进程引用 |
三、示例输出
```bash
$ lsmod
ModuleSizeUsed by
nf_conntrack_ipv4 126400
ipv4163841 nf_conntrack_ipv4
nf_defrag_ipv4126401 ipv4
```
在这个示例中:
- `nf_conntrack_ipv4` 是一个网络连接跟踪模块,大小为 12640 字节。
- `ipv4` 模块依赖于 `nf_conntrack_ipv4`,因此被标记为“Used by”。
- `nf_defrag_ipv4` 用于处理 IPv4 数据包分片,也被 `ipv4` 使用。
四、使用场景
| 场景 | 说明 |
| 模块加载失败 | 通过 `lsmod` 判断模块是否成功加载 |
| 驱动问题排查 | 查看相关驱动模块是否在运行 |
| 内存泄漏检测 | 分析模块占用内存情况 |
| 系统性能分析 | 识别高内存占用的模块 |
五、注意事项
- `lsmod` 只能查看当前正在运行的模块,无法查看未加载的模块。
- 权限问题:普通用户可能无法看到完整的模块信息,建议使用 `sudo` 或 root 权限执行。
- 模块信息存储在 `/proc/modules` 文件中,`lsmod` 实际上是从该文件读取数据并格式化输出。
通过 `lsmod`,用户可以更深入地了解 Linux 内核模块的运行状态,是系统管理员和开发人员必备的工具之一。


