lshw – komenda do listowania sprzętu w Linux

W świecie Linuksa dostęp do informacji o sprzęcie jest niezwykle prosty — wystarczy jedno polecenie. Jednym z najbardziej wszechstronnych narzędzi do tego celu jest lshw (ang. List Hardware), które potrafi wyciągnąć niemal wszystko: od modelu CPU po szczegóły magistrali i firmware.

Krótka historia

lshw powstało na początku lat 2000 jako odpowiedź na potrzebę uniwersalnego narzędzia do inwentaryzacji sprzętu. W przeciwieństwie do starszych poleceń jak lsusb czy lspci, które skupiają się na konkretnych podsystemach, lshw oferuje pełny, hierarchiczny widok całego systemu. Z czasem stało się standardowym narzędziem diagnostycznym w wielu dystrybucjach.

Podstawowe użycie

Najprostsze wywołanie:

sudo lshw

## przedstawi wiele szczegółów o Twoim sprzęcie w Linux

Zwraca bardzo szczegółowy, drzewiasty opis sprzętu. Dane są kompletne, ale często trudne do przeglądania.

Dlatego warto używać:

$ sudo lshw -short
H/W path    Device          Class       Description
===================================================
                            system      LeMaker Banana Pro
/0                          bus         Motherboard
/0/0                        processor   cpu
/0/1                        processor   cpu
/0/2                        memory      960MiB System memory
/0/3        scsi0           storage     
/0/3/0.0.0  /dev/sda        volume      149GiB Hitachi HTS54321
/1          usb1            bus         EHCI Host Controller
/2          usb2            bus         EHCI Host Controller
/2/1        card1           multimedia  webcamproduct
/3          usb3            bus         Generic Platform OHCI controller
/4          usb4            bus         Generic Platform OHCI controller
/5          mmc0            bus         MMC Host
/5/1234     /dev/mmcblk0    disk        3904MB SA04G
/5/1234/1   /dev/mmcblk0p1  volume      3532MiB EXT4 volume
/6          mmc1            bus         MMC Host
/6/1                        generic     SDIO Device
/6/1/1      mmc1:0001:1     network     43362
/6/1/2      mmc1:0001:2     generic     43362
/7          card0           multimedia  sun4icodec
/8          input0          input       axp20x-pek
/9          input1          input       sunxi-ir
/a          end0            network     Ethernet interface

Daje to skróconą, czytelną tabelę urządzeń.

Filtrowanie informacji

Jedną z największych zalet lshw jest możliwość filtrowania:

$ sudo lshw -class cpu
  *-cpu:0                   
       description: CPU
       product: cpu
       physical id: 0
       bus info: cpu@0
       size: 960MHz
       capacity: 960MHz
       capabilities: half thumb fastmult vfp edsp neon vfpv3 tls vfpv4 idiva idivt vfpd32 lpae evtstrm cpufreq
  *-cpu:1
       description: CPU
       product: cpu
       physical id: 1
       bus info: cpu@1
       size: 960MHz
       capacity: 960MHz
       capabilities: half thumb fastmult vfp edsp neon vfpv3 tls vfpv4 idiva idivt vfpd32 lpae evtstrm cpufreq



$ sudo lshw -class memory
  *-memory                  
       description: System memory
       physical id: 2
       size: 960MiB



$ sudo lshw -class network
  *-interface:0 DISABLED    
       description: Wireless interface
       product: 43362
       vendor: Broadcom
       physical id: 1
       bus info: mmc@1:0001:1
       logical name: mmc1:0001:1
       logical name: wlan0
       serial: 98:0b:56:87:f1:1c
       capabilities: ethernet physical wireless
       configuration: broadcast=yes driver=brcmfmac driverversion=5.90.125.95 firmware=01-b30a427d multicast=yes wireless=IEEE 802.11
  *-network
       description: Ethernet interface
       physical id: a
       logical name: end0
       serial: 12:19:56:33:24:92
       size: 1Gbit/s
       capacity: 1Gbit/s
       capabilities: ethernet physical tp mii 10bt 10bt-fd 100bt 100bt-fd 1000bt 1000bt-fd autonegotiation
       configuration: autonegotiation=on broadcast=yes driver=st_gmac driverversion=6.18.21-current-sunxi duplex=full ip=192.168.0.227 link=yes multicast=yes port=twisted pair speed=1Gbit/s

Dzięki temu możesz szybko sprawdzić tylko interesujący fragment systemu.

Formatowanie wyjścia

lshw potrafi generować dane w różnych formatach:

  • HTML:
sudo lshw -html > raport.html
  • JSON:
sudo lshw -json

To szczególnie przydatne przy automatyzacji i integracji z innymi narzędziami.

Ciekawe i praktyczne opcje

  • -sanitize – ukrywa wrażliwe dane (np. numery seryjne)
  • -numeric – pokazuje identyfikatory sprzętowe
  • -businfo – prezentuje powiązania z magistralami

Przykład:

$ sudo lshw -class disk -businfo
Bus info      Device          Class       Description
=====================================================
              /dev/mmcblk0    disk        3904MB SA04G

Świetnie sprawdza się przy analizie dysków i ich połączeń.

Dlaczego warto znać lshw?

Dla początkujących to szybki sposób na poznanie swojego sprzętu.
Dla zaawansowanych — narzędzie diagnostyczne i baza pod automatyzację.

W połączeniu z innymi poleceniami (dmesg, lsblk, lspci) lshw daje pełny obraz systemu — bez potrzeby instalowania ciężkich narzędzi GUI.

Jeśli jeszcze go nie używasz, warto dodać lshw do swojego zestawu podstawowych komend.

About the author

Autor "BIELI" to zapalony entuzjasta otwartego oprogramowania, który dzieli się swoją pasją na blogu poznajlinuxa.pl. Jego wpisy są skarbnicą wiedzy na temat Linuxa, programowania oraz najnowszych trendów w świecie technologii. Autor "BIELI" wierzy w siłę społeczności Open Source i zawsze stara się inspirować swoich czytelników do eksplorowania i eksperymentowania z kodem.