先放一条命令:

cat /sys/kernel/debug/usb/devices | grep "`cat /sys/kernel/debug/usb/devices | grep Manufacturer | grep -vE 'Linux|Љ'`" -B4 | grep Ver| cut -b 10

(插入u盘时返回1个字符是正确的,没插时,因为grep非系统设备为空,cat信息不过滤全部显示,后面在grep Ver和cut以列表的形式返回所有设备信息)

参考资料:USB检测过程及lsusb内容详解(转)

Linux下查看USB设备命令:

cat /sys/kernel/debug/usb/devices

# cat /sys/kernel/debug/usb/devices                               T:  Bus=04 Lev=00 Prnt=00 Port=00 Cnt=00 Dev#=  1 Spd=12   MxCh= 2
B:  Alloc=  0/900 us ( 0%), #Int=  0, #Iso=  0
D:  Ver= 1.10 Cls=09(hub  ) Sub=00 Prot=00 MxPS=64 #Cfgs=  1
P:  Vendor=1d6b ProdID=0001 Rev= 3.18
S:  Manufacturer=Linux 3.18.16_s5 ohci_hcd
S:  Product=Generic Platform OHCI controller
S:  SerialNumber=f9880000.ohci
C:* #Ifs= 1 Cfg#= 1 Atr=e0 MxPwr=  0mA
I:* If#= 0 Alt= 0 #EPs= 1 Cls=09(hub  ) Sub=00 Prot=00 Driver=hub
E:  Ad=81(I) Atr=03(Int.) MxPS=   2 Ivl=255msT:  Bus=03 Lev=00 Prnt=00 Port=00 Cnt=00 Dev#=  1 Spd=480  MxCh= 2
B:  Alloc=  0/800 us ( 0%), #Int=  0, #Iso=  0
D:  Ver= 2.00 Cls=09(hub  ) Sub=00 Prot=00 MxPS=64 #Cfgs=  1
P:  Vendor=1d6b ProdID=0002 Rev= 3.18
S:  Manufacturer=Linux 3.18.16_s5 ehci_hcd
S:  Product=EHCI Host Controller
S:  SerialNumber=f9890000.ehci
C:* #Ifs= 1 Cfg#= 1 Atr=e0 MxPwr=  0mA
I:* If#= 0 Alt= 0 #EPs= 1 Cls=09(hub  ) Sub=00 Prot=00 Driver=hub
E:  Ad=81(I) Atr=03(Int.) MxPS=   4 Ivl=256msT:  Bus=03 Lev=01 Prnt=01 Port=01 Cnt=01 Dev#=  2 Spd=480  MxCh= 0
D:  Ver= 2.00 Cls=00(>ifc ) Sub=00 Prot=00 MxPS=64 #Cfgs=  1
P:  Vendor=148f ProdID=7601 Rev= 0.01
S:  Manufacturer=Љ
S:  Product=Љ
S:  SerialNumber=Љ
C:* #Ifs= 1 Cfg#= 1 Atr=a0 MxPwr=160mA
I:* If#= 0 Alt= 0 #EPs= 8 Cls=ff(vend.) Sub=ff Prot=ff Driver=rt2870
E:  Ad=84(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
E:  Ad=85(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
E:  Ad=08(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms
E:  Ad=04(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms
E:  Ad=05(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms
E:  Ad=06(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms
E:  Ad=07(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms
E:  Ad=09(O) Atr=02(Bulk) MxPS= 512 Ivl=0msT:  Bus=02 Lev=00 Prnt=00 Port=00 Cnt=00 Dev#=  1 Spd=5000 MxCh= 1
B:  Alloc=  0/800 us ( 0%), #Int=  0, #Iso=  0
D:  Ver= 3.00 Cls=09(hub  ) Sub=00 Prot=03 MxPS= 9 #Cfgs=  1
P:  Vendor=1d6b ProdID=0003 Rev= 3.18
S:  Manufacturer=Linux 3.18.16_s5 xhci-hcd
S:  Product=xHCI Host Controller
S:  SerialNumber=f9870000.xhci
C:* #Ifs= 1 Cfg#= 1 Atr=e0 MxPwr=  0mA
I:* If#= 0 Alt= 0 #EPs= 1 Cls=09(hub  ) Sub=00 Prot=00 Driver=hub
E:  Ad=81(I) Atr=03(Int.) MxPS=   4 Ivl=256msT:  Bus=02 Lev=01 Prnt=01 Port=00 Cnt=01 Dev#= 11 Spd=5000 MxCh= 0
D:  Ver= 3.10 Cls=00(>ifc ) Sub=00 Prot=00 MxPS= 9 #Cfgs=  1
P:  Vendor=0951 ProdID=1666 Rev= 1.10
S:  Manufacturer=Kingston
S:  Product=DataTraveler 3.0
S:  SerialNumber=E0D55E6CE79AE371979A26C9
C:* #Ifs= 1 Cfg#= 1 Atr=80 MxPwr=504mA
I:* If#= 0 Alt= 0 #EPs= 2 Cls=08(stor.) Sub=06 Prot=50 Driver=usb-storage
E:  Ad=81(I) Atr=02(Bulk) MxPS=1024 Ivl=0ms
E:  Ad=02(O) Atr=02(Bulk) MxPS=1024 Ivl=0msT:  Bus=01 Lev=00 Prnt=00 Port=00 Cnt=00 Dev#=  1 Spd=480  MxCh= 1
B:  Alloc=  0/800 us ( 0%), #Int=  0, #Iso=  0
D:  Ver= 2.00 Cls=09(hub  ) Sub=00 Prot=01 MxPS=64 #Cfgs=  1
P:  Vendor=1d6b ProdID=0002 Rev= 3.18
S:  Manufacturer=Linux 3.18.16_s5 xhci-hcd
S:  Product=xHCI Host Controller
S:  SerialNumber=f9870000.xhci
C:* #Ifs= 1 Cfg#= 1 Atr=e0 MxPwr=  0mA
I:* If#= 0 Alt= 0 #EPs= 1 Cls=09(hub  ) Sub=00 Prot=00 Driver=hub
E:  Ad=81(I) Atr=03(Int.) MxPS=   4 Ivl=256ms# 

根据制造商筛选

cat /sys/kernel/debug/usb/devices | grep Manufacturer

# cat /sys/kernel/debug/usb/devices | grep Manufacturer
S:  Manufacturer=Linux 3.18.16_s5 ohci_hcd
S:  Manufacturer=Linux 3.18.16_s5 ehci_hcd
S:  Manufacturer=Љ
S:  Manufacturer=Linux 3.18.16_s5 xhci-hcd
S:  Manufacturer=Kingston
S:  Manufacturer=Linux 3.18.16_s5 xhci-hcd

过滤掉系统自带的usb设备

cat /sys/kernel/debug/usb/devices | grep Manufacturer | grep -vE 'Linux|Љ'

# cat /sys/kernel/debug/usb/devices | grep Manufacturer | grep -vE 'Linux|Љ'
S:  Manufacturer=Kingston

如果直接读取上述U盘:Manufacturer=Kingston的信息,对设备信息上面取4行,下面取7行,提取如下

cat /sys/kernel/debug/usb/devices | grep Manufacturer=Kingston -B4 -A7

# cat /sys/kernel/debug/usb/devices | grep Manufacturer=Kingston -B4 -A7
T:  Bus=02 Lev=01 Prnt=01 Port=00 Cnt=01 Dev#= 11 Spd=5000 MxCh= 0
D:  Ver= 3.10 Cls=00(>ifc ) Sub=00 Prot=00 MxPS= 9 #Cfgs=  1
P:  Vendor=0951 ProdID=1666 Rev= 1.10
S:  Manufacturer=Kingston
S:  Product=DataTraveler 3.0
S:  SerialNumber=E0D55E6CE79AE371979A26C9
C:* #Ifs= 1 Cfg#= 1 Atr=80 MxPwr=504mA
I:* If#= 0 Alt= 0 #EPs= 2 Cls=08(stor.) Sub=06 Prot=50 Driver=usb-storage
E:  Ad=81(I) Atr=02(Bulk) MxPS=1024 Ivl=0ms
E:  Ad=02(O) Atr=02(Bulk) MxPS=1024 Ivl=0ms

当这个USB3.0的U盘插入到板卡USB3.0口时,显示Ver= 3.10,当它被插入到板卡USB2.0时,输出Ver= 2.10,

所以,在当前设备信息,插找Ver字符串并提取该行,然后用cut命令直接提取此行第10个位置的字符即可

cat /sys/kernel/debug/usb/dvices | grep Manufacturer=Kingston -B4 -A7 | grep Ver | cut -b 10

# cat /sys/kernel/debug/usb/devices | grep Manufacturer=Kingston -B4 -A7
T:  Bus=03 Lev=01 Prnt=01 Port=00 Cnt=01 Dev#=  5 Spd=480  MxCh= 0
D:  Ver= 2.10 Cls=00(>ifc ) Sub=00 Prot=00 MxPS=64 #Cfgs=  1
P:  Vendor=0951 ProdID=1666 Rev= 1.10
S:  Manufacturer=Kingston
S:  Product=DataTraveler 3.0
S:  SerialNumber=E0D55E6CE79AE371979A26C9
C:* #Ifs= 1 Cfg#= 1 Atr=80 MxPwr=300mA
I:* If#= 0 Alt= 0 #EPs= 2 Cls=08(stor.) Sub=06 Prot=50 Driver=usb-storage
E:  Ad=81(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
E:  Ad=02(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms
#
#
# cat /sys/kernel/debug/usb/devices | grep Manufacturer=Kingston -B4 -A7 | grep Ver
D:  Ver= 2.10 Cls=00(>ifc ) Sub=00 Prot=00 MxPS=64 #Cfgs=  1
#
# cat /sys/kernel/debug/usb/dvices | grep Manufacturer=Kingston -B4 -A7 | grep Ver | cut -b 10
2

Linux下获取插入USB的3.0U盘工作模式是2.0还是3.0相关推荐

  1. u盘linux需要多大内存,linux下获取硬盘、内存、U盘大小及使用大小

    /* * 获取硬盘大小;内存大小;usb大小 */ #ifndef SYSINFOGET_H #define SYSINFOGET_H #include //磁盘信息 #include #includ ...

  2. linux cpu 使用10个进程,linux下获取占用CPU资源最多的10个进程

    linux下获取占用CPU资源最多的10个进程,可以使用如下命令组合: ps aux|head -1;ps aux|grep -v PID|sort -rn -k +3|head linux下获取占用 ...

  3. linux用的usb无线网卡,linux下几款usb无线网卡的使用

    linux下几款usb无线网卡的使用 我最近要在龙芯福龙的盒子上使用无线网卡,盒子的接口很少,可以用的只有usb接口.市面上的usb无线网卡很多,下面只是几个简单的例子: 1:TP-LINK TL-W ...

  4. Linux :: 时间日历指令【1】:date 指令:格式化显示时间信息、Linux 下获取时间

    前言:本篇是 Linux 基本操作篇章的内容! 笔者使用的环境是基于腾讯云服务器:CentOS 7.6 64bit. 学习集: C++ 入门到入土!!!学习合集 Linux 从命令到网络再到内核!学习 ...

  5. linux怎么获取当前路径,linux 下获取当前工作路径的实例

    获取工作路径这里介绍两种方法: 1.使用getcwd()函数. 头文件:#include 定义函数:char * getcwd(char * buf, size_t size); 函数说明:getcw ...

  6. linux下获取某文件的总行数

    为什么80%的码农都做不了架构师?>>>    需求: linux下获取某文件的总行数 实现: 方案一: echo cat logfile.txt | wc -l 方案二: more ...

  7. Linux下获取毫秒级时间差

    Linux下获取毫秒级时间差 使用Linux的gettimeofday函数可以达到这个目的  其中t1=t_start.tv_sec是公元1970年至今的时间(换算为秒)  t2=t_start.tv ...

  8. Linux下MySql插入汉字报错解决(/etc/my.cnf不存在)

    2019独角兽企业重金招聘Python工程师标准>>> Linux下MySql插入汉字报错解决(/etc/my.cnf不存在) 看了很多帖子,大多数是说修改my.cnf,如 http ...

  9. linux下获取占用CPU资源最多的10个进程,可以使用如下命令组合: ps aux|head -1;ps aux|grep -v PID|sort -rn -k +3|head linux下

    linux下获取占用CPU资源最多的10个进程,可以使用如下命令组合: ps aux|head -1;ps aux|grep -v PID|sort -rn -k +3|head linux下获取占用 ...

最新文章

  1. PyTorch 笔记(05)— Tensor 基本运算(torch.abs、torch.add、torch.clamp、torch.div、torch.mul、torch.pow等)
  2. 每日算法练习之李白喝酒问题
  3. vim中搭建与sourceinsight类似功能
  4. [uoj24]缩紧优化
  5. 0_0 SimpleFactoryMode 简单工厂模式
  6. 直播连麦贾扬清,谈谈他所理解的四大 AI 落地问题 | 攻“疫”技术公开课
  7. 蜜蜂性别调控又有新机制?
  8. 懒人模式Singleton模式Meyers版本号
  9. python2 urllib2_python2.7 urllib和urllib2
  10. Xshell不能链接虚拟机(可ping通)--解决方案
  11. ASP.NET基于donetCHARTING的自动报表
  12. 7个相同小球4个不同盒子_不会解公考行测的“排列组合题”?掌握这7招,轻松搞定...
  13. 淘宝客系统教学系列_2.应用登录接口对接
  14. 大学本科基于html5毕业设计题目50例
  15. html5建站模板怎么用,怎么用模板建网站
  16. html 防网页假死,html5 WebWorkers 防止浏览器假死
  17. /etc/hosts 详解
  18. d3d9.dll丢失怎么办
  19. 8个优秀的预训练模型,帮助您开始使用自然语言处理(NLP)
  20. yxc_第一章 基础算法(二)_高精度

热门文章

  1. c语言中 null 和NULL的区别 %p和%x的区别 在dvc++运行
  2. 鸿蒙多屏互动打通万物交互壁垒,手把手带你打造鸿蒙式4K投屏互动
  3. java 接口开发时间_这35个接口,用Java开发,一般要多少天?一天可以完成多少个...
  4. sftp连接失败修复
  5. 〖编程初学者的自我修养 - 优质简历篇②〗- 面试官所青睐的优秀简历是什么样的?
  6. 仿ASSISTIVETOUCH效果的浮动层小球
  7. 好妈妈【第二章】把学习做成轻松的事,父母如何提升孩子的学习成绩
  8. 衍射极限、MTF与相机分辨率(1)
  9. 解决Vant组件库tabs标签页选中状态与当前页面不匹配
  10. 跳板机,堡垒机都是什么东西?