Seeing accurate hardware details in Linux helps confirm what the kernel can actually use before capacity planning, driver troubleshooting, hardware replacement, or virtualization checks. A quick inventory also helps explain why one host behaves differently from another with different processors, storage devices, or bus controllers.

Linux exposes detected hardware through kernel interfaces such as /sys and /proc, while tools such as lshw, lscpu, lsblk, lspci, and lsusb turn that data into readable reports. Together they cover the overall system inventory, processor topology, block devices, PCI hardware, and USB devices without changing system state.

Some details require root privileges, and virtual machines or containers can show virtual hardware names, generic model strings, or missing buses instead of physical host details. Minimal images can also omit utilities such as lshw, lspci, or lsusb until the matching distro packages are installed, so blank or generic fields are often an environment clue rather than immediate hardware failure.

Steps to show hardware information in Linux:

  1. Open a terminal on the Linux system.
  2. Display a short hardware inventory with lshw.
    $ sudo lshw -short
    H/W path      Device      Class          Description
    ====================================================
                              system         Parallels ARM Virtual Machine (Parallels_ARM_VM)
    /0                        bus            Parallels ARM Virtual Platform
    /0/0                      memory         128KiB BIOS
    /0/4                      processor      ARMv8
    /0/7                      memory         4GiB System Memory
    /0/7/0                    memory         4GiB DIMM DRAM EDO
    /0/5                      network        Virtio network device
    /0/8/0.0.0    /dev/sda    disk           68GB Pristine-UbuntuS
    ##### snipped #####

    lshw -short is the quickest whole-system view because it groups detected hardware by class and shows the device path that the kernel is exposing.

  3. Check processor architecture and topology with lscpu.
    $ lscpu
    Architecture:                         aarch64
    CPU op-mode(s):                       64-bit
    Byte Order:                           Little Endian
    CPU(s):                               2
    On-line CPU(s) list:                  0,1
    Vendor ID:                            ARM
    Model name:                           -
    Thread(s) per core:                   1
    Core(s) per socket:                   2
    Socket(s):                            1
    NUMA node(s):                         1
    ##### snipped #####

    Field names vary by architecture and virtualization layer, so some systems show Core(s) per cluster or leave Model name blank.

  4. List whole-disk devices and their transport with lsblk.
    $ lsblk --nodeps --output NAME,MODEL,SIZE,TRAN,TYPE
    NAME MODEL                SIZE TRAN TYPE
    sda  Pristine-UbuntuS      64G sata disk
    sr0  Virtual DVD-ROM [1] 1024M sata rom

    Using explicit columns keeps the output stable and avoids the default tree view when only the top-level devices are needed.

  5. Show detected PCI hardware with lspci.
    $ lspci
    00:01.0 Audio device: Intel Corporation 82801I (ICH9 Family) HD Audio Controller
    00:02.0 USB controller: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) USB2 EHCI Controller
    00:03.0 USB controller: NEC Corporation uPD720200 USB 3.0 Host Controller (rev 04)
    00:05.0 Ethernet controller: Red Hat, Inc. Virtio network device
    00:0a.0 VGA compatible controller: Red Hat, Inc. Virtio 1.0 GPU (rev 01)
    ##### snipped #####

    On physical hosts this list reflects real bus devices, while virtual machines usually show the guest-visible virtual chipset instead of the host's real motherboard devices.

  6. Show detected USB hardware with lsusb.
    $ lsusb
    Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
    Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
    Bus 003 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
    Bus 003 Device 002: ID 203a:fffc PARALLELS Virtual Mouse
    Bus 003 Device 003: ID 203a:fffb PARALLELS Virtual Keyboard
    Bus 003 Device 004: ID 203a:fff9 PARALLELS FaceTime HD Camera

    Headless servers and containers may show only root hubs or no useful USB devices at all, which is normal when no guest-visible controller is present.

  7. Sanitize identifying fields before saving or sharing a hardware report.
    $ sudo lshw -sanitize -class system -class processor
    computer
        description: Computer
        product: Parallels ARM Virtual Machine (Parallels_ARM_VM)
        vendor: Parallels International GmbH.
        version: 0.1
        serial: [REMOVED]
        width: 64 bits
        capabilities: smbios-3.6.0 dmi-3.6.0 smp cp15_barrier swp tagged_addr_disabled
      *-cpu
           description: CPU
           product: ARMv8
           vendor: Apple
    ##### snipped #####

    The -sanitize flag removes serial numbers, UUIDs, and similar identifiers, but the report can still reveal platform, model, and bus details that may be sensitive in shared environments.