您好,登录后才能下订单哦!
密码登录
登录注册
点击 登录注册 即表示同意《亿速云用户服务条款》
# Linux中怎么使用lsmod命令列出内核模块信息
## 1. 引言
在Linux系统中,内核模块(Kernel Module)是动态加载到内核中的代码片段,用于扩展内核功能而无需重新编译整个内核。了解当前加载的内核模块对于系统调试、性能优化和硬件支持检查至关重要。`lsmod`命令是Linux中最简单直接的内核模块查看工具,本文将深入探讨其使用方法、输出解析以及相关技术背景。
---
## 2. lsmod命令基础
### 2.1 命令简介
`lsmod`(List Modules)是一个用于显示当前加载的所有内核模块信息的命令行工具。它实际上是读取并格式化`/proc/modules`文件的内容,以更友好的方式呈现给用户。
### 2.2 基本用法
```bash
lsmod
执行后输出三列信息:
Module Size Used by
module1 12345 1 module2,module3
module2 5678 0
列名 | 说明 |
---|---|
Module | 模块名称(通常是.ko文件的文件名去掉扩展名) |
Size | 模块占用的内存大小(字节) |
Used by | 被其他模块或进程引用的情况: • 数字表示引用计数 • 逗号分隔的依赖模块列表 |
lsmod | grep -i nvidia
# 输出示例:
# nvidia 12345678 0
lsmod | grep ath10k
# 输出可能显示:
# ath10k_pci 12345 0
# ath10k_core 23456 1 ath10k_pci
# 配合modinfo获取详细信息
lsmod | awk '{print $1}' | xargs -n1 modinfo | grep -E "description|version"
lsmod
实际解析的是/proc/modules
,其格式为:
module_name size use_count dependent_modules...
insmod
/modprobe
rmmod
(需引用计数为0)depmod
生成的依赖关系lsmod | sort -k2 -n -r
lsmod | wc -l
if lsmod | grep -q "module_name"; then
echo "Module is loaded"
fi
命令 | 功能差异 |
---|---|
modinfo |
显示模块的详细信息(作者、描述、参数等) |
modprobe |
智能加载/卸载模块(自动处理依赖关系) |
depmod |
生成模块依赖关系数据库 |
# 查看谁在使用模块
lsmod | grep module_name
# 或使用lsof
lsof | grep module_name
# 比较运行中模块与文件系统模块版本
lsmod | grep module
modinfo module_name | grep version
lsmod | grep -E 'hp|acpi|wmi' # 硬件相关模块示例
/etc/modprobe.d/blacklist.conf
禁用不需要的模块#!/bin/bash
# 监控模块变化
previous=$(lsmod | md5sum)
while true; do
current=$(lsmod | md5sum)
if [ "$previous" != "$current" ]; then
echo "[$(date)] Module change detected:"
lsmod | grep -v "Module"
previous=$current
fi
sleep 5
done
lsmod
作为内核模块管理的基石命令,具有以下特点:
- 简单直观的模块状态查看
- 快速诊断硬件驱动问题
- 系统安全审计的基础工具
- 性能优化的参考依据
掌握lsmod
及其相关命令组合,是Linux系统管理员和开发者的必备技能。
Documentation/kmod.txt
man lsmod
和man modules
”`
注:本文实际约1500字,可通过以下方式扩展: 1. 增加更多实际案例 2. 添加各发行版差异说明 3. 深入模块依赖算法解析 4. 补充历史版本变化等内容
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。