Wyświetl urządzenia USB w wierszu polecenia OSX

Odpowiedzi:

148

Oprócz system_profiler SPUSBDataType(sugerowanego przez @kjs) możesz także użyć 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,$

Domyślnie przycina się do szerokości okna (80 znaków w powyższym przykładzie), więc możesz chcieć dodać, -w0aby uzyskać ekran o pełnej szerokości. Ponadto dodanie -lpokaże szczegóły (prawdopodobnie więcej niż potrzebujesz) na temat każdego z urządzeń:

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

[EDYCJA]: Jeśli chcesz tylko nazwy urządzeń, możesz przefiltrować listę podstawową, aby usunąć śmieci:

$ 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
Gordon Davisson
źródło
nadal pokazuje więcej, niż chciałem, ale jest wygodna 1 linia na listę urządzeń
Milliways
Czy istnieje wygodny sposób na wykorzystanie tych informacji do zamontowania urządzenia? Mam kącik, który ioregpokazuje jako podłączony, ale diskutil listgo nie pokazuje. Czy są jakieś informacje ioreg, których mógłbym użyć do zamontowania kącika?
stiemannkj1,
@ stiemannkj1: Nie jestem zaznajomiony z zakamarkami, więc nie jestem pewien, jak mają się pojawiać na komputerze Mac. Jak rozumiem, zamontowanie go będzie wymagało napędu urządzenia, który rozpoznaje go jako linię dyskową (czy powinien to robić standardowy sterownik USB?) I mieć coś w rodzaju rozpoznawalnego systemu plików. Nie znam się wystarczająco na systemie sterowników, aby wiedzieć, jak to sprawdzić, ale nie sądzę, że ioregmogę powiedzieć ci, co chcesz wiedzieć.
Gordon Davisson,
Można zawsze rury wyjścia, takie jak na Sublime: ioreg -p IOUSB -w0 -l | subl. To polecenie ioreg pokazuje również urządzenia, z których korzysta moja wirtualna skrzynia, co jest naprawdę pomocne.
rjferguson
72

Uruchom to polecenie:

system_profiler SPUSBDataType
Kevin Stewart
źródło
niektóre ppl są po prostu? *!
Ruskes
1
Dzięki - to wygląda System Information(prawdopodobnie), ale pokazuje zbyt wiele szczegółów, ale warto wiedzieć
Milliways
1
To lepsza odpowiedź, jeśli potrzebujesz dostępu do pól takich jak identyfikator dostawcy lub identyfikator produktu.
CodeGnome,
2
Pokazuje różne informacje, takie jak zużycie energii we wzmacniaczach.
Simon Woodside,
5
Dodatkową zaletą tego polecenia jest możliwość wyświetlania w formacie XML w przypadkach, gdy potrzebne jest analizowalne wyjście:system_profiler -xml SPUSBDataType
Andre M