Commands to Check Hardware Information in Linux

Commands to Check Hardware Information in Linux

We have lot of commands in linux but some give more details what we expect, here are the few which gives too depth detail about hardware information on linux. Each command we can use different scenario. This all contains details about hardware components like CPU, memory and more.

  1. lscpu

lscpu gathers CPU architecture information from sizes and /proc/cpuinfo.  The command output can be optimized for parsing or for easy readability by humans.  The information

includes, for example, the number of CPUs, threads, cores, sockets, and Non-Uniform Memory Access (NUMA) nodes.  There is also information about the CPU caches and cache sharing, family, model, bogoMIPS, byte order, and stepping.

# lscpu

  1. lshw – List Hardware

lshw is a small 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 (PowerMac G4 is known to work).

It currently supports DMI (x86 and IA-64 only), Open Firmware device tree (PowerPC only), PCI/AGP, CPUID (x86), IDE/ATA/ATAPI, PCMCIA (only tested on x86), SCSI and USB.

# lshw -short

  1. hwinfo – Hardware Information

Hwinfo is another general purpose hardware probing utility that can report detailed and brief information about multiple different hardware components, and more than what lshw can report.

# hwinfo –short

  1. lspci – List PCI

The lspci command lists out all the pci buses and details about the devices connected to them.
The vga adapter, graphics card, network adapter, usb ports, sata controllers, etc all fall under this category.

# lspci

Filter out specific device information with grep.

# lspci -v | grep “VGA” -A 12

  1. lsscsi – List scsi devices

Lists out the scsi/sata devices like hard drives and optical drives.

# lsscsi

[3:0:0:0]    disk    ATA      ST3500418AS      CC38  /dev/sda

[4:0:0:0]    cd/dvd  SONY     DVD RW DRU-190A  1.63  /dev/sr0

  1. lsusb – List usb buses and device details

This command shows the USB controllers and details about devices connected to them. By default brief information is printed. Use the verbose option “-v” to print detailed information about each usb port

# lsusb

Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

Bus 007 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub

Bus 006 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub

Bus 005 Device 002: ID 045e:00cb Microsoft Corp. Basic Optical Mouse v2.0

On the above system, 1 usb port is being used by the mouse.

  1. lsblk – List block devices

List out information all block devices, which are the hard drive partitions and other storage devices like optical drives and flash drives

# lsblk

  1. df – disk space of file systems

Reports various partitions, their mount points and the used and available space on each.

# df -H

  1. Pydf – Python df

An improved df version written in python, that displays colored output that looks better than df

# pydf

  1. fdisk

Fdisk is a utility to modify partitions on hard drives, and can be used to list out the partition information as well.

# fdisk -l

  1. mount

The mount is used to mount/unmount and view mounted file systems.

# mount | column –t

Again, use grep to filter out only those file systems that you want to see

# mount | column -t | grep ext

  1. free – Check RAM

Check the amount of used, free and total amount of RAM on system with the free command.

# free -m

total       used       free     shared    buffers     cached

Mem:          1861        850       1010          0        136        476

-/+ buffers/cache:        237       1623

Swap:         2047          1       2046

  1. dmidecode

The dmidecode command is different from all other commands. It extracts hardware information by reading data from the SMBOIS data structures (also called DMI tables).

# display information about the processor/cpu

# dmidecode -t processor

# memory/ram information

# dmidecode -t memory

# bios details

# dmidecode -t bios

Check out the man page for more details.

  1. /proc files

Many of the virtual files in the /proc directory contain information about hardware and configurations. Here are some of them

CPU/Memory information

# cpu information

# cat /proc/cpuinfo

# memory information

# cat /proc/meminfo

Linux/kernel information

# cat /proc/version

Linux version 2.6.32-642.3.1.el6.x86_64 ( (gcc version 4.4.7 20120313 (Red Hat 4.4.7-17) (GCC) ) #1 SMP Tue Jul 12 18:30:56 UTC 2016

SCSI/Sata devices

# cat /proc/scsi/scsi

Attached devices:

Host: scsi1 Channel: 00 Id: 00 Lun: 00

Vendor: NECVMWar Model: VMware IDE CDR10 Rev: 1.00

Type:   CD-ROM                           ANSI  SCSI revision: 05

Host: scsi2 Channel: 00 Id: 00 Lun: 00

Vendor: VMware   Model: Virtual disk     Rev: 1.0

Type:   Direct-Access                    ANSI  SCSI revision: 02


# cat /proc/partitions

major minor  #blocks  name

8        0   52428800 sda

8        1       1024 sda1

8        2    1048576 sda2

8        3    9434112 sda3

8        4   41943040 sda4

253        0   49274880 dm-0

253        1    2097152 dm-1

  1. hdparm

hdparm provides a command line interface to various kernel interfaces supported by the Linux SATA/PATA/SAS “libata” subsystem and the older IDE driver subsystem.  Many newer (2008 and later) USB drive enclosures now also support “SAT” (SCSI-ATA Command Translation) and therefore may also work with hdparm.  Some options may work correctly only with the latest kernels.

 # hdparm -i /dev/sda


Model=ST3500418AS, FwRev=CC38, SerialNo=9VMJXV1N

Config={ HardSect NotMFM HdSw>15uSec Fixed DTR>10Mbs RotSpdTol>.5% }

RawCHS=16383/16/63, TrkSize=0, SectSize=0, ECCbytes=4

BuffType=unknown, BuffSize=16384kB, MaxMultSect=16, MultSect=16

CurCHS=16383/16/63, CurSects=16514064, LBA=yes, LBAsects=976773168

IORDY=on/off, tPIO={min:120,w/IORDY:120}, tDMA={min:120,rec:120}

PIO modes:  pio0 pio1 pio2 pio3 pio4

DMA modes:  mdma0 mdma1 mdma2

UDMA modes: udma0 udma1 udma2 udma3 udma4 udma5 *udma6

AdvancedPM=no WriteCache=enabled

Drive conforms to: unknown:  ATA/ATAPI-4,5,6,7

* signifies the current active mode