Liệt kê các thiết bị USB trên dòng lệnh OSX


Câu trả lời:


127

Ngoài system_profiler SPUSBDataType (được đề xuất bởi @kjs), bạn cũng có thể sử dụng ioreg -p IOUSB:

$ ioreg -p IOUSB 
+-o Root  <class IORegistryEntry, id 0x100000100, retain 10>
  +-o EHCI Root Hub Simulation@1A,7  <class IOUSBRootHubDevice, id 0x100000227,$
  | +-o HubDevice@fa100000  <class IOUSBHubDevice, id 0x10000027a, registered, $
  | | +-o Apple Internal Keyboard / Trackpad@fa120000  <class IOUSBDevice, id 0$
  | | +-o BRCM2070 Hub@fa110000  <class IOUSBHubDevice, id 0x1000002b4, registe$
  | |   +-o Bluetooth USB Host Controller@fa113000  <class IOUSBDevice, id 0x10$
  | +-o FaceTime HD Camera (Built-in)@fa200000  <class IOUSBDevice, id 0x100000$
  +-o EHCI Root Hub Simulation@1D,7  <class IOUSBRootHubDevice, id 0x100000228,$
    +-o HubDevice@fd100000  <class IOUSBHubDevice, id 0x10000027b, registered, $
      +-o IR Receiver@fd110000  <class IOUSBDevice, id 0x100000288, registered,$

Theo mặc định, nó cắt theo chiều rộng của cửa sổ (80 ký tự trong ví dụ ở trên), vì vậy bạn có thể muốn thêm -w0 để có được một màn hình toàn chiều rộng. Ngoài ra, thêm -l sẽ hiển thị chi tiết (có thể nhiều hơn bạn cần) về từng thiết bị:

$ ioreg -p IOUSB -w0 -l
    +-o Root  <class IORegistryEntry, id 0x100000100, retain 10>
  | {
  |   "IOKitBuildVersion" = "Darwin Kernel Version 14.0.0: Fri Sep 19 00:26:44 PDT 2014; root:xnu-2782.1.97~2/RELEASE_X86_64"
  |   "OS Build Version" = "14B25"
  |   "OSKernelCPUSubtype" = 3
  |   "OSKernelCPUType" = 16777223
  |   "OSPrelinkKextCount" = 185
  |   "IOConsoleLocked" = No
  |   "IORegistryPlanes" = {"IOACPIPlane"="IOACPIPlane","IOPower"="IOPower","IODeviceTree"="IODeviceTree","IOService"="IOService","IOUSB"="IOUSB","IOFireWire"="IOFireWire"}
[...etc...]

[EDIT]: Nếu bạn chỉ muốn tên thiết bị, bạn có thể lọc danh sách cơ bản để cắt rác:

$ ioreg -p IOUSB -w0 | sed 's/[^o]*o //; s/@.*$//' | grep -v '^Root.*'
EHCI Root Hub Simulation
HubDevice
Apple Internal Keyboard / Trackpad
BRCM2070 Hub
Bluetooth USB Host Controller
FaceTime HD Camera (Built-in)
EHCI Root Hub Simulation
HubDevice
IR Receiver

vẫn hiển thị nhiều hơn tôi muốn, nhưng là một dòng thuận tiện cho mỗi danh sách thiết bị
Milliways

Có cách nào thuận tiện để sử dụng thông tin này để gắn thiết bị không? Tôi có một ngóc ngách ioreg hiển thị như được kết nối, nhưng diskutil list không hiển thị nó. Có thông tin nào từ ioreg mà tôi có thể sử dụng để gắn ngóc ngách?
stiemannkj1

@ stiemannkj1: Tôi không quen thuộc với các ngóc ngách, vì vậy tôi không chắc họ sẽ xuất hiện như thế nào trên máy Mac. Theo tôi hiểu, việc gắn nó sẽ yêu cầu một ổ đĩa thiết bị nhận ra nó là một dòng đĩa (trình điều khiển USB tiêu chuẩn có nên làm điều này không?) Và có một cái gì đó giống như một hệ thống tập tin dễ nhận biết trên đó. Tôi không đủ quen thuộc với hệ thống trình điều khiển để biết cách kiểm tra điều này, nhưng tôi không nghĩ ioreg có thể cho bạn biết những gì bạn muốn biết.
Gordon Davisson

68

Chạy lệnh này:

system_profiler SPUSBDataType

một số ppl chỉ là? *!
Buscar웃

1
Cảm ơn - nó trông giống như System Information (có lẽ là vậy) nhưng hiển thị quá nhiều chi tiết, nhưng rất tiện để biết
Milliways

1
Đây là một câu trả lời tốt hơn nếu bạn cần truy cập vào các trường như ID nhà cung cấp hoặc ID sản phẩm.
CodeGnome

1
Điều này cho thấy thông tin khác nhau, chẳng hạn như sử dụng năng lượng trong amps.
Simon Woodside

4
Một lợi thế bổ sung của lệnh này là khả năng xuất ra bằng XML, trong trường hợp cần có đầu ra có thể phân tích cú pháp: system_profiler -xml SPUSBDataType
Andre M
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.