如何快速提升网站流量?

在Linux系统中,查看设备的子设备数量是设备管理、驱动调试或系统维护中的常见需求,子设备通常指依附于父设备(如USB控制器、PCI总线)的衍生设备(如USB外设、PCI扩展卡),以下是几种专业可靠的方法:


使用 lsusb 查看USB子设备(推荐)

适用场景:快速统计USB控制器下的子设备数量。
步骤

lsusb -t

输出示例

/:  Bus 02.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/4p, 5000M
    |__ Port 1: Dev 2, If 0, Class=Hub, Driver=hub/4p, 5000M
        |__ Port 3: Dev 3, If 0, Class=Mass Storage, Driver=usb-storage, 5000M  # 子设备1
        |__ Port 4: Dev 4, If 0, Class=Human Interface Device, Driver=usbhid, 5000M  # 子设备2

统计子设备数

lsusb -t | grep -v "root_hub" | grep "Dev" | wc -l```  
**原理**:  
通过USB设备树结构,过滤非根集线器(`root_hub`)的条目,精确统计子设备。
---
### **2. 通过 `sysfs` 文件系统直接查询**  
**适用场景**:查看任意设备(如PCI、I2C)的子设备,需知道父设备路径。  
**步骤**:  
1. 定位父设备的`sysfs`路径(通常在`/sys/bus/`或`/sys/devices/`):  
   ```bash
   lspci | grep "USB controller"  # 示例:获取USB控制器名称(如0000:00:14.0)
  1. 进入对应目录并查看子设备数:
    cd /sys/bus/pci/devices/0000:00:14.0  # 替换为你的设备路径
    ls -d */ | wc -l  # 统计子目录(每个子设备对应一个目录)

    输出示例

    3  # 表示该父设备下有3个子设备

    关键目录

  • /sys/bus/usb/devices/:所有USB设备层级
  • /sys/bus/pci/devices/:PCI设备树

使用 udevadm 查询设备树

适用场景:详细分析设备依赖关系,支持所有设备类型。
步骤

udevadm info -p /sys/class/usb_host/usb1  # 以USB主机控制器为例

输出示例

P: /devices/pci0000:00/0000:00:14.0/usb1
N: bus/usb/001/001
E: DEVTYPE=usb_device
E: DRIVER=hub
E: PRODUCT=1d6b/2/0006
...(子设备信息在后续层级)

统计子设备

udevadm info -q all -p /sys/class/usb_host/usb1 | grep "E: DEVTYPE=" | wc -l
# 输出:5(包含父设备自身,需减1得子设备数)

脚本化统计(高级用法)

适用场景:批量检查多个父设备的子设备数量。
示例脚本

#!/bin/bash
for device in /sys/bus/pci/devices/*; do
  parent=$(basename $device)
  child_count=$(ls -d $device/*/ 2>/dev/null | wc -l)
  echo "父设备 $parent 的子设备数: $child_count"
done

注意事项

  1. 权限要求:部分操作需root权限(如访问/sys目录)。
  2. 动态变化:热插拔设备可能导致统计结果实时变化。
  3. 设备类型差异
    • USB设备优先用lsusb -t
    • PCI设备用sysfs路径查询
    • 通用设备用udevadm
  4. 虚拟设备干扰:部分内核虚拟设备可能被计入,需结合业务场景过滤。

方法 适用场景 命令复杂度
lsusb -t USB设备快速统计
sysfs查询 精准定位PCI/I2C设备
udevadm 全设备类型分析

根据实际需求选择方法:

  • 快速检查USBlsusb
  • 驱动开发/调试sysfsudevadm
  • 自动化监控 → 自定义脚本

引用说明

  • Linux内核文档(kernel.org)关于sysfs的设计规范。
  • udevadm手册页(man udevadm)及USB规范(usb.org)。
  • 方法均通过Ubuntu 22.04/CentOS 9环境验证,兼容主流Linux发行版。

原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/8464.html

(0)
酷番叔酷番叔
上一篇 2025年7月24日 08:52
下一篇 2025年7月24日 09:15

相关推荐

  • 高并发云原生组件,如何实现高效稳定运行?

    采用弹性伸缩、负载均衡、服务网格及熔断限流,实现资源动态调度与故障自愈。

    2026年3月6日
    8600
  • u深度安装Linux系统详细步骤是怎样的?

    使用u深度安装Linux系统是许多用户的首选方法,尤其适合新手操作,u深度作为一款功能强大的U盘启动盘制作工具,能帮助用户轻松将Linux系统写入U盘,并完成安装,以下是详细步骤及注意事项,确保安装过程顺利,准备工作下载系统镜像:访问Linux发行版官网(如Ubuntu、Linux Mint等),下载ISO格式……

    2025年9月24日
    13200
  • Linux中如何配置网络服务?详细步骤与方法是什么?

    Linux网络服务配置是系统管理中的核心任务,涉及网络接口、IP地址、DNS、路由及防火墙等多个方面,不同发行版可能采用不同工具(如ifconfig、ip、Netplan、NetworkManager等),但核心逻辑一致,以下从基础到进阶详细介绍配置步骤,网络接口基础配置网络接口是设备与网络通信的物理或虚拟通道……

    2025年9月27日
    12600
  • Linux启动隐藏哪些秘密?

    电源启动与硬件自检(BIOS/UEFI阶段)通电自检(POST)按下电源键后,主板固件(BIOS或UEFI)启动:BIOS(传统模式):检测CPU、内存、硬盘等基础硬件,通过蜂鸣声或屏幕提示错误,UEFI(现代标准):图形化界面,支持大容量硬盘和安全启动(Secure Boot),速度更快,用户可见现象:屏幕显……

    2025年7月15日
    17200
  • 电脑如何仅装Linux系统文件夹?

    将电脑仅安装Linux系统的文件夹结构,本质是完全部署Linux操作系统,摒弃其他系统(如Windows),实现基于Linux原生文件环境的纯净使用,这一过程涉及系统选择、安装准备、分区规划、系统配置及文件结构理解等环节,以下为详细步骤和说明,前期准备工作选择Linux发行版Linux发行版众多,需根据需求选择……

    2025年10月8日
    13900

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信