Table of Contents
Introduction to lshw command
lshw is a command-line tool to extract detailed information on the hardware configuration of the machine. It can report exact memory configuration, firmware version, mainboard configuration, CPU version and speed, cache configuration, bus speed, etc. on DMI-capable x86 or IA-64 systems and on some PowerPC machines.
It should be available by default in most distributions but you can install it by installing
lshw package using the default package manager such as yum, dnf, apt etc.
Syntax to use lshw command
lshw needs root permission to display full information otherwise, it displays only partial information.
The syntax is:
# lshw [-format] [options]
The formats available are:
- -html: Outputs the device tree as an HTML page.
- -xml: Outputs the device tree as an XML tree.
- -json: Output the device tree as a JSON object
- -short: Outputs the device tree showing hardware paths
- -businfo: Outputs the device list showing bus information
Different examples to use lshw command
1. lshw command to display full hardware information
You can view the full information of hardware using lshw command with super-user only.
2. lshw command to display information in HTML format
You can change the output format to HTML using
-html option. It prints the hardware information in HTML format.
# lshw -html
3. Display hardware information in XML format with lshw command
You can use
-xml option to print the hardware information in XML format.
# lshw -xml
4. lshw command to display information in JSON format
You can view the hardware information in JSON format using
# lshw -json
5. Display hardware paths using lshw command
You can use
-short option to display hardware paths in a compact format.
# lshw -short
6. lshw command to display bus information
-businfo option displays the device list showing bus information, detailing SCSI, USB, IDE, and PCI addresses.
# lshw -businfo
7. lshw command to display the specific class of hardware
You can use
-class option to view the information on a given class of hardware. class can be found using
lshw -short or
# lshw -c class
# lshw -C class
# lshw -class class
To list the memory information, you can use:
8. Show system information with lshw command
To print the system information, we can use
-class system as shown below:
9. Show display information with lshw command
We can use
-class display to print the display information of the Linux server:
10. Show network information with lshw command
We can display the hardware details of the NIC card interfaces installed on the Linux server using
-class network argument:
root@ubuntu:~# lshw -class network *-network:0 description: Ethernet interface product: 82540EM Gigabit Ethernet Controller vendor: Intel Corporation physical id: 3 bus info: pci@0000:00:03.0 logical name: enp0s3 version: 02 serial: 08:00:27:84:07:7f size: 1Gbit/s capacity: 1Gbit/s width: 32 bits clock: 66MHz capabilities: pm pcix bus_master cap_list ethernet physical tp 10bt 10bt-fd 100bt 100bt-fd 1000bt-fd autonegotiation configuration: autonegotiation=on broadcast=yes driver=e1000 driverversion=7.3.21-k8-NAPI duplex=full ip=10.0.2.15 latency=64 link=yes mingnt=255 multicast=yes port=twisted pair speed=1Gbit/s resources: irq:19 memory:f0200000-f021ffff ioport:d020(size=8) *-network:1 description: Ethernet interface product: 82540EM Gigabit Ethernet Controller vendor: Intel Corporation physical id: 8 bus info: pci@0000:00:08.0 logical name: enp0s8 version: 02 serial: 08:00:27:aa:34:d4 size: 1Gbit/s capacity: 1Gbit/s width: 32 bits clock: 66MHz capabilities: pm pcix bus_master cap_list ethernet physical tp 10bt 10bt-fd 100bt 100bt-fd 1000bt-fd autonegotiation configuration: autonegotiation=on broadcast=yes driver=e1000 driverversion=7.3.21-k8-NAPI duplex=full ip=192.168.0.189 latency=64 link=yes mingnt=255 multicast=yes port=twisted pair speed=1Gbit/s resources: irq:16 memory:f0820000-f083ffff ioport:d240(size=8)
11. Show storage information with lshw command
You can use
-class storage to print the available storage information:
root@ubuntu:~# lshw -class storage *-ide description: IDE interface product: 82371AB/EB/MB PIIX4 IDE vendor: Intel Corporation physical id: 1.1 bus info: pci@0000:00:01.1 version: 01 width: 32 bits clock: 33MHz capabilities: ide isa_compatibility_mode_controller__supports_both_channels_switched_to_pci_native_mode__supports_bus_mastering bus_master configuration: driver=ata_piix latency=64 resources: irq:0 ioport:1f0(size=8) ioport:3f6 ioport:170(size=8) ioport:376 ioport:d000(size=16) *-storage description: SATA controller product: 82801HM/HEM (ICH8M/ICH8M-E) SATA Controller [AHCI mode] vendor: Intel Corporation physical id: d bus info: pci@0000:00:0d.0 version: 02 width: 32 bits clock: 33MHz capabilities: storage pm ahci_1.0 bus_master cap_list configuration: driver=ahci latency=64 resources: irq:21 ioport:d248(size=8) ioport:d250(size=4) ioport:d258(size=8) ioport:d260(size=4) ioport:d270(size=16) memory:f0840000-f0841fff *-scsi:0 physical id: 3 logical name: scsi1 capabilities: emulated *-scsi:1 physical id: 4 logical name: scsi2 capabilities: emulated
12. Show connected disk information with lshw command
To list the details of the connected disk we can use
-class disk argument as shown below:
13: Get processor information with lshw command
You can get the processor details of your Linux server using -class processor argument as shown below:
root@ubuntu:~# lshw -class processor *-cpu product: Intel(R) Core(TM) i7-8650U CPU @ 1.90GHz vendor: Intel Corp. physical id: 2 bus info: cpu@0 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 ht syscall nx rdtscp x86-64 constant_tsc rep_good nopl xtopology nonstop_tsc cpuid tsc_known_freq pni pclmulqdq monitor ssse3 cx16 pcid sse4_1 sse4_2 x2apic movbe popcnt aes xsave avx rdrand hypervisor lahf_lm abm 3dnowprefetch invpcid_single pti fsgsbase avx2 invpcid rdseed clflushopt md_clear flush_l1d
14. Get motherboard information with lshw command
You can get the details about your Linux server's motherboard using
-class bus argument:
15. Save lshw command output into a different file
By default lshw will print a very long summary of details from your Linux server hardware. We can save the output to a different file to analyse it later by using the following method:
~]# lshw > /tmp/lshw_output.txt ~]# ls -l /tmp/lshw_output.txt -rw-r--r-- 1 root root 12435 Nov 26 00:10 /tmp/lshw_output.txt
So, here we have saved the output of lshw command into
16. lshw command to enable system hardware components
You can enable different parameters of the system using
-enable option followed by hardware component which can be:
- dmi (for DMI/SMBIOS extensions)
- device-tree (for OpenFirmware device tree)
- spd (for memory Serial Presence Detect)
- memory (for memory-size guessing heuristics)
- cpuinfo (for kernel-reported CPU detection)
- cpuid (for CPU detection)
- pci (for PCI/AGP access)
- isapnp (for ISA PnP extensions)
- pcmcia (for PCMCIA/PCCARD)
- ide (for IDE/ATAPI)
- usb (for USB devices)
- scsi (for SCSI)
- network (for network interfaces detection).
# lshw -enable test
For example, to enable CPU detection, you can use the following command.
17. lshw command to disable any hardware component
You can disable a system parameter using
-disable option followed by the test.
# lshw -disable test
To disable CPU detection, you can use:
18. lshw command to hide display status
-quiet option is used to not display status in the output.
# lshw -quiet
19. Hide sensitive information from output with lshw command
You can use
-sanitize option to remove potentially sensitive information from the output (IP addresses, serial numbers, etc.).
# lshw -sanitize
20. Display numeric IDs using lshw command
-numeric option displays numeric IDs (for PCI and USB devices).
# lshw -numeric
21. lshw command to exclude timestamps from output
-notime option is used to exclude volatile attributes (timestamps) from the output.
# lshw -notime
lshw is a hardware lister tool that is very helpful to extract detailed information on the hardware of the system. We hope you will be now able to run
lshw command to get hardware information. If you still have any confusion, feel free to ask us in the comment section.