Список USB-устройств в командной строке OSX

Ответы:

148

В дополнение к system_profiler SPUSBDataType(предложенному @kjs) вы также можете использовать 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,$

По умолчанию он обрезается до ширины окна (80 символов в приведенном выше примере), поэтому вы можете добавить его, -w0чтобы получить отображение во всю ширину. Кроме того, добавление -lпокажет детали (вероятно, больше, чем вам нужно) о каждом из устройств:

$ 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...]

[РЕДАКТИРОВАТЬ]: Если вы просто хотите, чтобы имена устройств, вы можете отфильтровать основной список, чтобы обрезать ненужные:

$ 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
Гордон Дэвиссон
источник
по-прежнему показывает больше, чем я хотел, но удобная 1 строка на список устройств
Milliways
Есть ли удобный способ использовать эту информацию для подключения устройства? У меня есть уголок, который ioregпоказывает, как подключен, но diskutil listне показывает его. Есть ли какая-нибудь информация, ioregкоторую я мог бы использовать, чтобы смонтировать уголок?
stiemannkj1
@ stiemannkj1: Я не знаком с Nooks, поэтому я не уверен, как они должны отображаться на Mac. Насколько я понимаю, для его монтирования потребуется диск устройства, который распознает его как нечто дисковое (должен ли это делать стандартный драйвер USB?) И что-то вроде распознаваемой файловой системы. Я не достаточно знаком с системой драйверов, чтобы знать, как это проверить, но я не думаю, что ioregможет сказать вам, что вы хотите знать.
Гордон Дэвиссон
Вы всегда можете трубы выход, например, для возвышенного: ioreg -p IOUSB -w0 -l | subl. Эта команда ioreg также показывает устройства, которые использует мой виртуальный ящик, что действительно полезно.
rjferguson
72

Запустите эту команду:

system_profiler SPUSBDataType
Кевин Стюарт
источник
Некоторые люди просто? *!
Рускес
1
Спасибо - это похоже на System Information(что, вероятно, так и есть), но показывает слишком много деталей, но полезно знать
Milliways
1
Это лучший ответ, если вам нужен доступ к таким полям, как идентификатор поставщика или идентификатор продукта.
CodeGnome
2
Это показывает различную информацию, такую ​​как использование мощности в усилителях.
Саймон Вудсайд
5
Дополнительным преимуществом этой команды является возможность вывода в XML для случаев, когда требуется анализируемый вывод:system_profiler -xml SPUSBDataType
Andre M