Linux命令-systool(sysfs 设备属性查看)
Linux命令-systoolsysfs 设备属性查看快速参考安装与依赖查看总线信息查看设备信息查看驱动信息查看设备类热插拔设备实战与 /sys 文件系统直接交互综合查询脚本选项速查systool是 sysfs 文件系统的用户态查询工具可以显示和操作内核设备模型的层次结构信息包括总线、设备、驱动和模块的属性。它与lspci -v或直接读取/sys/文件系统功能类似但提供了更结构化的输出方式。快速参考systool[选项][设备路径]systool属于sysfsutils包直接与内核的 sysfs 虚拟文件系统交互适合查看热插拔设备、PCI 总线、USB 设备等内核对象属性。安装与依赖# Debian/Ubuntusudoapt-getinstallsysfsutils# RHEL/CentOSsudoyuminstallsysfsutils# Fedorasudodnfinstallsysfsutils# 验证安装whichsystool systool--version21||systool-V21rpm-qa|grepsysfsutils# RPM 系检查dpkg-l|grepsysfsutils# Debian 系检查查看总线信息# 列出所有总线类型systool-b# 查看特定总线的属性如 PCI 总线systool-bpci# 查看 USB 总线systool-busb# 查看 SCSI 总线systool-bscsi# 查看 I2C 总线嵌入式设备常用systool-bi2c# 查看 platform 总线systool-bplatform# 查看所有总线的完整详细信息forbusin$(systool-b|awkNR1{print $1});doecho Bus:$bussystool-b$bus2/dev/nulldone查看设备信息# 列出所有设备systool-d# 查看特定设备通过路径systool-d/devices/pci0000:00# 列出所有块设备systool-d-bblock# 查看 SCSI 设备systool-d-bscsi# 查看 USB 设备属性systool-d-busb# 查看网络设备信息systool-d-bnet# 通过类查看设备如 input 类systool-cinput查看驱动信息# 列出所有已注册驱动systool-m# 查看特定驱动详情如 e1000 网卡驱动systool-me1000# 查看 ext4 文件系统驱动systool-mext4# 查看 i915 显卡驱动systool-mi915# 查看 usb_storage 驱动systool-musb_storage# 列出所有已加载模块的属性lsmod|awk{print $1}|whilereadmod;dosystool-m$mod/dev/null21echo$mod: 可查询done查看设备类# 列出所有设备类systool-c# 查看网络类systool-cnet# 查看 USB 类systool-cusb_host# 查看块设备类systool-cblock# 查看输入设备类systool-cinput# 查看 misc 类systool-cmisc热插拔设备实战# 查看 PCI 设备完整属性systool-bpci-v# 查看特定 PCI 设备systool-bpci-d0000:00:1f.0# 查看 USB 设备树systool-busb-v|head-50# 查看当前挂载的文件系统设备systool-bblock-v# 查看 SCSI 磁盘属性systool-bscsi-v# 与 lspci 对比输出echo systool PCI systool-bpci21|head-10echo lspci -v lspci-v21|head-10与 /sys 文件系统直接交互# systool 本质上是读取 /sys 目录# 直接读取 sysfs 的等效操作# 查看 CPU 信息cat/sys/devices/system/cpu/cpu0/cpufreq/scaling_cur_freq# 查看网卡速率cat/sys/class/net/eth0/speed# 查看 USB 设备制造商cat/sys/bus/usb/devices/1-1/manufacturer# 查看磁盘模型cat/sys/block/sda/device/model# 查看 PCI 设备供应商cat/sys/bus/pci/devices/0000:00:1f.0/vendor# 列出 sysfs 层次结构tree /sys/class/2/dev/null||find/sys/class/-maxdepth2tree /sys/bus/2/dev/null||find/sys/bus/-maxdepth2综合查询脚本#!/bin/bash# sysfs 信息收集脚本# 用法: ./sysinfo.shechoecho 系统设备信息via systool/sysfsechoechoecho--- PCI 总线 ---systool-bpci2/dev/null||echosystool 不可用尝试 lspcilspci2/dev/nullechoecho--- USB 设备 ---systool-busb2/dev/null|head-20echoecho--- 块设备 ---systool-bblock2/dev/null||lsblkechoecho--- 网络设备 ---systool-cnet2/dev/null||iplinkshowechoecho--- CPU 信息 (sysfs) ---forcpuin/sys/devices/system/cpu/cpu[0-9]*;doname$(basename$cpu)freq$(cat$cpu/cpufreq/scaling_cur_freq2/dev/null||echoN/A)echo$name:${freq:-未知频率}doneechoecho--- 内存信息 (sysfs) ---mem_total$(cat/proc/meminfo|grepMemTotal)echo$mem_totalechoecho--- 内核模块统计 ---echo 已加载模块数:$(lsmod|wc-l)echo选项速查选项说明-b BUS查看指定总线pci/usb/scsi/…-c CLASS查看设备类net/block/input/…-d DEVICE查看指定设备-m MODULE查看内核模块属性-v详细输出-p PATH指定 sysfs 挂载路径-a显示所有属性systool提供了一种比直接遍历/sys更结构化的方式查看内核设备模型。在现代 Linux 系统中lspci、lsusb、lsblk等工具通常更易用但systool在查看驱动和模块关联关系时有独特优势。