Hardware checks on a Linux host often start when a server specification, driver handoff, support ticket, or replacement plan needs proof of what the running system can see. Reading the inventory from the operating system shows the processor layout, memory, storage, PCI controllers, and USB devices that the kernel exposes, which can differ from chassis labels or a virtual machine plan.

Linux builds hardware views from sysfs, /proc, udev, firmware tables, and bus scans. lshw gives the broad inventory tree, lscpu focuses on processor topology, lsblk lists block devices, lspci reports PCI hardware, and lsusb reports USB buses and devices.

Some details need root privileges or the matching utility package. Virtual machines, containers, and cloud instances can expose guest-visible devices, blank model strings, or no useful PCI and USB buses, so treat generic names as an environment boundary before treating them as hardware failure.

Steps to show hardware information in Linux:

  1. Open a terminal on the Linux system.
  2. Display the short whole-system hardware inventory.
    $ sudo lshw -short
    H/W path       Device      Class          Description
    =====================================================
                               system         Workstation
    /0                         bus            Motherboard
    /0/0                       memory         64KiB BIOS
    /0/4                       processor      Intel(R) Core(TM) i7-13700
    /0/42                      memory         32GiB System Memory
    /0/100/1f.6    enp0s31f6   network        Ethernet Connection
    /0/100/17                  storage        SATA Controller
    /0/100/17/0    /dev/sda    disk           1TB SSD
    ##### snipped #####

    lshw reports partial data without root access on many systems. If the command is missing on a minimal install, install the lshw package with the distribution package manager.

  3. Check processor architecture and topology.
    $ lscpu
    Architecture:                         x86_64
    CPU op-mode(s):                       32-bit, 64-bit
    Address sizes:                        46 bits physical, 48 bits virtual
    Byte Order:                           Little Endian
    CPU(s):                               16
    On-line CPU(s) list:                  0-15
    Vendor ID:                            GenuineIntel
    Model name:                           Intel(R) Core(TM) i7-13700
    Thread(s) per core:                   2
    Core(s) per socket:                   8
    Socket(s):                            1
    NUMA node(s):                         1
    ##### snipped #####

    lscpu describes the CPU layout exposed to the running Linux environment. In guests or containers, that can differ from the physical host.

  4. List top-level block devices and their transport.
    $ lsblk --nodeps --output NAME,MODEL,SIZE,TRAN,TYPE
    NAME    MODEL                  SIZE TRAN   TYPE
    sda     Samsung SSD 870 EVO      1T sata   disk
    nvme0n1 Samsung SSD 980        500G nvme   disk
    sr0     DVD-ROM               1024M sata   rom

    Explicit lsblk columns keep the output stable and avoid the default tree view when only whole devices are needed.
    Related: How to show disk information in Linux

  5. Show detected PCI hardware.
    $ lspci
    00:00.0 Host bridge: Intel Corporation Device 7d01
    00:02.0 VGA compatible controller: Intel Corporation Raptor Lake-S GT1 [UHD Graphics 770]
    00:14.0 USB controller: Intel Corporation Alder Lake-S PCH USB 3.2 xHCI Host Controller
    00:17.0 SATA controller: Intel Corporation Alder Lake-S PCH SATA Controller [AHCI Mode]
    00:1f.6 Ethernet controller: Intel Corporation Ethernet Connection I219-LM

    lspci comes from the pciutils package on many distributions. Virtual machines usually show the guest chipset or Virtio devices instead of the host motherboard hardware.

  6. Show detected USB devices.
    $ lsusb
    Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
    Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
    Bus 003 Device 002: ID 046d:c534 Logitech, Inc. Unifying Receiver
    Bus 003 Device 003: ID 0781:5581 SanDisk Corp. Ultra
    Bus 003 Device 004: ID 0bda:8153 Realtek Semiconductor Corp. RTL8153 Gigabit Ethernet Adapter

    lsusb comes from the usbutils package on many distributions. Headless servers, containers, or guests without a passed-through controller may show only root hubs or no useful device list.
    Related: How to show USB device details in Linux

  7. Sanitize identifying fields before saving or sharing a hardware report.
    $ sudo lshw -sanitize -class system -class processor
    computer
        description: Desktop Computer
        product: Workstation
        vendor: Dell Inc.
        serial: [REMOVED]
        width: 64 bits
      *-cpu
           description: CPU
           product: Intel(R) Core(TM) i7-13700
           vendor: Intel Corp.
           physical id: 4
           bus info: cpu@0
           width: 64 bits
    ##### snipped #####

    -sanitize removes serial numbers, UUIDs, and network addresses from lshw output, but hardware model, platform, bus, and vendor details can still be sensitive in shared reports.