Il comando Linux lshw elenca tutta la configurazione hardware del sistema.
Alcune delle informazioni comuni che possiamo estrarre dal comando lshw sono:
- Informazioni sulla memoria RAM
- Configurazioni CPU
- Informazioni sulla scheda madre
- Informazioni sul disco rigido
- Informazioni sui dispositivi di rete
Caratteristiche del comando Linux lshw
- Possibilità di produrre l'output in vari formati come XML, JSON e HTML.
- Possiamo scaricare facilmente l'output in un file utilizzando l'operatore di reindirizzamento.
- L'output predefinito contiene molte informazioni, possiamo ottenere informazioni hardware specifiche utilizzando varie opzioni.
- Supporta anche la GUI, utile solo per ambienti desktop. La maggior parte delle volte, eseguiamo questi comandi su un server Linux in cui non disponiamo di un software GUI.
Limitazioni del comando lshw
- Al momento non rileva i dispositivi Firewire.
- Deve essere eseguito come superutente, root o con sudo, per ottenere i dettagli hardware corretti.
- Ho scoperto che l'opzione -dump per salvare l'output in un file non funziona.
Esempi di informazioni sull'hardware Linux
Diamo un'occhiata ad alcuni esempi per ottenere le informazioni sull'hardware di Linux usando il comando lshw.
1. Ottenere informazioni complete sull'hardware Linux
root@localhost:~# sudo lshw localhost description: Computer product: Standard PC (Q35 + ICH9, 2009) vendor: QEMU version: pc-q35-3.1 width: 64 bits capabilities: smbios-2.8 dmi-2.8 vsyscall32 configuration: boot=normal *-core description: Motherboard physical id: 0 *-firmware description: BIOS vendor: SeaBIOS physical id: 0 version: rel-1.12.0-0-ga698c8995f-prebuilt.qemu.org date: 04/01/2014 size: 96KiB *-cpu description: CPU product: AMD EPYC 7501 32-Core Processor vendor: Advanced Micro Devices [AMD] physical id: 400 bus info: cpu@0 version: pc-q35-3.1 slot: CPU 0 size: 2GHz capacity: 2GHz width: 64 bits capabilities: fpu fpu_exception wp vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 syscall nx mmxext fxsr_opt pdpe1gb rdtscp x86-64 rep_good nopl cpuid extd_apicid tsc_known_freq pni pclmulqdq ssse3 fma cx16 sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand hypervisor lahf_lm cmp_legacy cr8_legacy abm sse4a misalignsse 3dnowprefetch osvw perfctr_core ssbd ibpb vmmcall fsgsbase tsc_adjust bmi1 avx2 smep bmi2 rdseed adx smap clflushopt sha_ni xsaveopt xsavec xgetbv1 virt_ssbd arat configuration: cores=1 enabledcores=1 threads=1 *-memory description: System Memory physical id: 1000 size: 2GiB capacity: 2GiB capabilities: ecc configuration: errordetection=multi-bit-ecc *-bank description: DIMM RAM vendor: QEMU physical id: 0 slot: DIMM 0 size: 2GiB *-pci description: Host bridge product: 82G33/G31/P35/P31 Express DRAM Controller vendor: Intel Corporation physical id: 100 bus info: pci@0000:00:00.0 version: 00 width: 32 bits clock: 33MHz *-display UNCLAIMED description: VGA compatible controller physical id: 1 bus info: pci@0000:00:01.0 version: 02 width: 32 bits clock: 33MHz capabilities: vga_controller configuration: latency=0 resources: memory:fd000000-fdffffff memory:febd0000-febd0fff memory:c0000-dffff *-scsi:0 description: SCSI storage controller product: Virtio SCSI vendor: Red Hat, Inc. physical id: 2 bus info: pci@0000:00:02.0 version: 00 width: 64 bits clock: 33MHz capabilities: scsi msix bus_master cap_list configuration: driver=virtio-pci latency=0 resources: irq:22 ioport:c000(size=64) memory:febd1000-febd1fff memory:fe000000-fe003fff *-virtio0 UNCLAIMED description: Virtual I/O device physical id: 0 bus info: virtio@0 configuration: driver=virtio_scsi *-scsi:1 description: SCSI storage controller product: Virtio SCSI vendor: Red Hat, Inc. physical id: 3 bus info: pci@0000:00:03.0 version: 00 width: 64 bits clock: 33MHz capabilities: scsi msix bus_master cap_list configuration: driver=virtio-pci latency=0 resources: irq:23 ioport:c040(size=64) memory:febd2000-febd2fff memory:fe004000-fe007fff *-virtio1 UNCLAIMED description: Virtual I/O device physical id: 0 bus info: virtio@1 configuration: driver=virtio_scsi *-network description: Ethernet controller product: Virtio network device vendor: Red Hat, Inc. physical id: 4 bus info: pci@0000:00:04.0 version: 00 width: 64 bits clock: 33MHz capabilities: msix bus_master cap_list rom configuration: driver=virtio-pci latency=0 resources: irq:20 ioport:c0c0(size=32) memory:febd3000-febd3fff memory:fe008000-fe00bfff memory:feb80000-febbffff *-virtio2 description: Ethernet interface physical id: 0 bus info: virtio@2 logical name: eth0 serial: f2:3c:92:d4:76:9e capabilities: ethernet physical configuration: autonegotiation=off broadcast=yes driver=virtio_net driverversion=1.0.0 ip=45.79.122.188 link=yes multicast=yes *-isa description: ISA bridge product: 82801IB (ICH9) LPC Interface Controller vendor: Intel Corporation physical id: 1f bus info: pci@0000:00:1f.0 version: 02 width: 32 bits clock: 33MHz capabilities: isa configuration: driver=lpc_ich latency=0 resources: irq:0 *-storage description: SATA controller product: 82801IR/IO/IH (ICH9R/DO/DH) 6 port SATA Controller [AHCI mode] vendor: Intel Corporation physical id: 1f.2 bus info: pci@0000:00:1f.2 version: 02 width: 32 bits clock: 33MHz capabilities: storage msi ahci_1.0 bus_master cap_list configuration: driver=ahci latency=0 resources: irq:31 ioport:c0e0(size=32) memory:febd4000-febd4fff *-serial UNCLAIMED description: SMBus product: 82801I (ICH9 Family) SMBus Controller vendor: Intel Corporation physical id: 1f.3 bus info: pci@0000:00:1f.3 version: 02 width: 32 bits clock: 33MHz configuration: latency=0 resources: ioport:700(size=64) *-scsi:0 physical id: 1 logical name: scsi0 *-disk description: EXT4 volume product: QEMU HARDDISK vendor: Linux physical id: 0.0.0 bus info: scsi@0:0.0.0 logical name: /dev/sda logical name: / version: 1.0 serial: ccf427b1-b94a-4237-b067-d9e9fc34756f size: 49GiB capabilities: 5400rpm journaled extended_attributes large_files huge_files dir_nlink recover extents ext4 ext2 initialized configuration: ansiversion=5 created=2020-02-19 14:27:58 filesystem=ext4 lastmountpoint=/ logicalsectorsize=512 modified=2020-04-28 08:10:42 mount.fstype=ext4 mount.options=rw,relatime,errors=remount-ro,data=ordered mounted=2020-04-28 08:10:43 sectorsize=512 state=mounted *-scsi:1 physical id: 2 logical name: scsi1 *-disk description: Linux swap volume product: QEMU HARDDISK vendor: QEMU physical id: 0.1.2 bus info: scsi@1:0.1.2 logical name: /dev/sdb version: 1 serial: 179fdb40-6f5a-4973-99fd-2c0dfee57907 size: 512MiB capacity: 512MiB capabilities: 5400rpm swap initialized configuration: ansiversion=5 filesystem=swap logicalsectorsize=512 pagesize=4096 sectorsize=512 root@localhost:~#
Come puoi vedere sono molte informazioni, se desideri informazioni rapide sull'hardware, eseguilo con l'opzione -short.
root@localhost:~# sudo lshw -short H/W path Device Class Description ============================================= system Standard PC (Q35 + ICH9, 2009) /0 bus Motherboard /0/0 memory 96KiB BIOS /0/400 processor AMD EPYC 7501 32-Core Processor /0/1000 memory 2GiB System Memory /0/1000/0 memory 2GiB DIMM RAM /0/100 bridge 82G33/G31/P35/P31 Express DRAM Controller /0/100/1 display VGA compatible controller /0/100/2 storage Virtio SCSI /0/100/2/0 generic Virtual I/O device /0/100/3 storage Virtio SCSI /0/100/3/0 generic Virtual I/O device /0/100/4 network Virtio network device /0/100/4/0 eth0 network Ethernet interface /0/100/1f bridge 82801IB (ICH9) LPC Interface Controller /0/100/1f.2 storage 82801IR/IO/IH (ICH9R/DO/DH) 6 port SATA Controller [AHCI mode] /0/100/1f.3 bus 82801I (ICH9 Family) SMBus Controller /0/1 scsi0 storage /0/1/0.0.0 /dev/sda volume 49GiB QEMU HARDDISK /0/2 scsi1 storage /0/2/0.1.2 /dev/sdb volume 512MiB QEMU HARDDISK root@localhost:~#
2. Ottenere informazioni sulla CPU Linux
Possiamo eseguire lshw -C class_name
per ottenere le informazioni sulla classe hardware specifica. Vediamo come ottenere le informazioni sulla CPU.
root@localhost:~# sudo lshw -C cpu *-cpu description: CPU product: AMD EPYC 7501 32-Core Processor vendor: Advanced Micro Devices [AMD] physical id: 400 bus info: cpu@0 version: pc-q35-3.1 slot: CPU 0 size: 2GHz capacity: 2GHz width: 64 bits capabilities: fpu fpu_exception wp vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 syscall nx mmxext fxsr_opt pdpe1gb rdtscp x86-64 rep_good nopl cpuid extd_apicid tsc_known_freq pni pclmulqdq ssse3 fma cx16 sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand hypervisor lahf_lm cmp_legacy cr8_legacy abm sse4a misalignsse 3dnowprefetch osvw perfctr_core ssbd ibpb vmmcall fsgsbase tsc_adjust bmi1 avx2 smep bmi2 rdseed adx smap clflushopt sha_ni xsaveopt xsavec xgetbv1 virt_ssbd arat configuration: cores=1 enabledcores=1 threads=1 root@localhost:~#
Se hai più CPU, il comando fornirà informazioni su tutte le CPU.
Il lshw -C processor
il comando stamperà anche le informazioni sulla CPU.
Se non sei sicuro del nome della classe, guardalo nell'output breve lshw.
3. Ottenere informazioni sulla memoria Linux
root@localhost:~# sudo lshw -C memory *-firmware description: BIOS vendor: SeaBIOS physical id: 0 version: rel-1.12.0-0-ga698c8995f-prebuilt.qemu.org date: 04/01/2014 size: 96KiB *-memory description: System Memory physical id: 1000 size: 2GiB capacity: 2GiB capabilities: ecc configuration: errordetection=multi-bit-ecc *-bank description: DIMM RAM vendor: QEMU physical id: 0 slot: DIMM 0 size: 2GiB root@localhost:~#
4. Ottenere informazioni sul disco rigido Linux
root@localhost:~# sudo lshw -C storage
5. Ottenere informazioni sulla scheda madre Linux
root@localhost:~# sudo lshw -C bus *-core description: Motherboard physical id: 0 *-serial UNCLAIMED description: SMBus product: 82801I (ICH9 Family) SMBus Controller vendor: Intel Corporation physical id: 1f.3 bus info: pci@0000:00:1f.3 version: 02 width: 32 bits clock: 33MHz configuration: latency=0 resources: ioport:700(size=64) root@localhost:~#
6. Ottenere informazioni sulle interfacce di rete Linux
root@localhost:~# sudo lshw -C network *-network description: Ethernet controller product: Virtio network device vendor: Red Hat, Inc. physical id: 4 bus info: pci@0000:00:04.0 version: 00 width: 64 bits clock: 33MHz capabilities: msix bus_master cap_list rom configuration: driver=virtio-pci latency=0 resources: irq:20 ioport:c0c0(size=32) memory:febd3000-febd3fff memory:fe008000-fe00bfff memory:feb80000-febbffff *-virtio2 description: Ethernet interface physical id: 0 bus info: virtio@2 logical name: eth0 serial: f2:3c:92:d4:76:9e capabilities: ethernet physical configuration: autonegotiation=off broadcast=yes driver=virtio_net driverversion=1.0.0 ip=45.79.122.188 link=yes multicast=yes root@localhost:~#
7. Informazioni sull'hardware Linux nei formati HTML, XML e JSON
L'output predefinito del comando lshw è in testo normale. Possiamo ottenere l'output nei formati HTML, XML e JSON specificando le opzioni corrispondenti.
XML:
root@localhost:~# sudo lshw -C bus -xml <?xml version="1.0" standalone="yes" ?> <!-- generated by lshw-B.02.18 --> <!-- GCC 7.3.0 --> <!-- Linux 4.15.0-88-generic #88-Ubuntu SMP Tue Feb 11 20:11:34 UTC 2020 x86_64 --> <!-- GNU libc 2 (glibc 2.27) --> <list> <node id="core" claimed="true" class="bus" handle=""> <description>Motherboard</description> <physid>0</physid> <node id="serial" class="bus" handle="PCI:0000:00:1f.3"> <description>SMBus</description> <product>82801I (ICH9 Family) SMBus Controller</product> <vendor>Intel Corporation</vendor> <physid>1f.3</physid> <businfo>pci@0000:00:1f.3</businfo> <version>02</version> <width units="bits">32</width> <clock units="Hz">33000000</clock> <configuration> <setting id="latency" value="0" /> </configuration> <resources> <resource type="ioport" value="700(size=64)" /> </resources> </node> </node> </list> root@localhost:~#
JSON:
root@localhost:~# sudo lshw -C memory -json { "id" : "firmware", "class" : "memory", "claimed" : true, "description" : "BIOS", "vendor" : "SeaBIOS", "physid" : "0", "version" : "rel-1.12.0-0-ga698c8995f-prebuilt.qemu.org", "date" : "04/01/2014", "units" : "bytes", "size" : 98304 }, { "id" : "memory", "class" : "memory", "claimed" : true, "handle" : "DMI:1000", "description" : "System Memory", "physid" : "1000", "units" : "bytes", "size" : 2147483648, "capacity" : 2147483648, "configuration" : { "errordetection" : "multi-bit-ecc" }, "capabilities" : { "ecc" : "Multi-bit error-correcting code (ECC)" }, "children" : [ { "id" : "bank", "class" : "memory", "claimed" : true, "handle" : "DMI:1100", "description" : "DIMM RAM", "vendor" : "QEMU", "physid" : "0", "slot" : "DIMM 0", "units" : "bytes", "size" : 2147483648 } ] }, root@localhost:~#
HTML:
root@localhost:~# sudo lshw -C memory -html
8. Salvataggio delle informazioni sull'hardware Linux in un file
Ho provato a utilizzare l'opzione -dump con il comando lshw ma non ha funzionato per me. Tuttavia, possiamo sempre utilizzare l'operatore di reindirizzamento (>) per salvarlo in un nuovo file.
# sudo lshw -html > hardware_info.html
Conclusione
Il comando Linux lshw è uno strumento semplice per ottenere le informazioni hardware complete. Le varie opzioni per ottenere le informazioni hardware specifiche e in più formati come HTML e JSON sono molto utili anche per condividere i dettagli con altri.
Riferimento :Elenco Hardware