详解Linux系统中的lsmod、lsof、lspci、lsscsi命令及实例
今天主要介绍下Linux系统中的lsmod、lsof、lspci、lsscsi命令及实例。
1. lsmod命令
Linux lsmod命令用于显示已经加载到内核中的模块的状态信息。执行lsmod命令后会列出所有已载入系统的模块。Linux操作系统的核心具有模块化的特性,应此在编译核心时,务须把全部的功能都放入核心。您可以将这些功能编译成一个个单独的模块,待需要时再分别载入。
(1) 语法:
- lsmod
(2) 实例:
说明:
- 第1列:表示模块的名称。
- 第2列:表示模块的大小。
- 第3列:表示依赖模块的个数。
- 第4列:表示依赖模块的内容。
通常在使用lsmod命令时,都会采用类似lsmod | grep -i ext3这样的命令来查询当前系统是否加载了某些模块
2. lsof命令
Linux lsof命令用于查看你进程开打的文件,打开文件的进程,进程打开的端口(TCP、UDP)。找回/恢复删除的文件。是十分方便的系统监视工具,因为lsof命令需要访问核心内存和各种文件,所以需要root用户执行。
在linux环境下,任何事物都以文件的形式存在,通过文件不仅仅可以访问常规数据,还可以访问网络连接和硬件。所以如传输控制协议 (TCP) 和用户数据报协议 (UDP) 套接字等,系统在后台都为该应用程序分配了一个文件描述符,无论这个文件的本质如何,该文件描述符为应用程序与基础操作系统之间的交互提供了通用接口。因为应用程序打开文件的描述符列表提供了大量关于这个应用程序本身的信息,因此通过lsof工具能够查看这个列表对系统监测以及排错将是很有帮助的。
(1) 语法:
- lsof(选项)
选项:
- -a:列出打开文件存在的进程;
- -c<进程名>:列出指定进程所打开的文件;
- -g:列出GID号进程详情;
- -d<文件号>:列出占用该文件号的进程;
- +d<目录>:列出目录下被打开的文件;
- +D<目录>:递归列出目录下被打开的文件;
- -n<目录>:列出使用NFS的文件;
- -i<条件>:列出符合条件的进程。(4、6、协议、:端口、 @ip )
- -p<进程号>:列出指定进程号所打开的文件;
- -u:列出UID号进程详情;
- -h:显示帮助信息;
- -v:显示版本信息。
(2) 实例:
lsof输出各列信息的意义如下:
- COMMAND:进程的名称
- PID:进程标识符
- PPID:父进程标识符(需要指定-R参数)
- USER:进程所有者
- PGID:进程所属组
- FD:文件描述符,应用程序通过文件描述符识别该文件
3. lspci命令
Linux lspci命令用于显示当前主机的所有PCI总线信息,以及所有已连接的PCI设备信息。
(1) 语法:
- lspci(选项)
选项:
- -n:以数字方式显示PCI厂商和设备代码;
- -t:以树状结构显示PCI设备的层次关系,包括所有的总线、桥、设备以及它们之间的联接;
- -b:以总线为中心的视图;
- -d:仅显示给定厂商和设备的信息;
- -s:仅显示指定总线、插槽上的设备和设备上的功能块信息;
- -i:指定PCI编号列表文件,而不使用默认的文件;
- -m:以机器可读方式显示PCI设备信息。
(2) 实例:
4. lsscsi命令
(1) Linux lsscsi命令参数:
- -s 显示容量大小。
- -c 用全称显示默认的信息。
- -d 显示设备主,次设备号。
- -g 显示对应的sg设备名。
- -H 显示主机控制器列表,-Hl,-Hlv。
- -l 显示相关属性,-ll,-lll=-L。
- -v 显示设备属性所在目录。
- -x 以16进制显示lun号。
- -p 输出DIF,DIX 保护类型。
- -P 输出有效的保护模式信息。
- -i 显示udev相关的属性
- -w 显示WWN