Home Learn Linux 10 Linux commands to use for system hardware check

10 Linux commands to use for system hardware check

Gaining insight into your system and hardware is crucial for optimization and troubleshooting. Learn 10 key commands that reveal detailed information about your computer's inner workings.

by Divya Kiran Kumar
linux commands for system hardware info check

In this guide, we will explore 10 essential commands that every Linux user should know, regardless of whether they are a seasoned sysadmin or a curious beginner. These commands offer a glimpse into the inner workings of your Linux machine. We will cover a range of commands that provide insights into various aspects of your system, from understanding your system’s architecture to monitoring real-time system performance.

This is not just about executing commands; it’s about developing a relationship with your Linux system, learning to communicate with it more effectively. Each command tells a unique story about your system, and comprehending these narratives makes you not just a user but a connoisseur of the Linux operating system.

So, let’s grab our keyboards and begin our exploration into the command-line universe, discovering tools and commands that will enhance your proficiency and confidence in handling and understanding your Linux system.

10 essential commands to check system and hardware information

1. uname – Unveiling basic system information

Syntax: uname -a

Output example:

Linux example-host 5.4.0-42-generic #46-Ubuntu SMP Fri Jul 10 00:24:02 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux

This command provides a quick overview of your system, including the kernel version, hostname, and hardware architecture. It’s incredibly useful for getting a high-level view of the system you’re working on, especially when diagnosing compatibility issues.

This is my go-to command when I first log into a new system. It’s like a formal handshake with a new friend, where you get to know their name and a bit about them.

2. lsb_release – Discovering distribution-specific information

Syntax: lsb_release -a

Output example:

No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 20.04.1 LTS
Release:        20.04
Codename:       focal

The lsb_release command is specific to Linux distributions and provides detailed information about the distribution you’re using. This is crucial when you’re managing software dependencies that may vary between distributions.

I find lsb_release extremely useful when managing multiple machines, especially to ensure compatibility of software across different distributions.

3. hostnamectl – System identification made easy

Syntax: hostnamectl

Output example:

   Static hostname: example-host
         Icon name: computer-laptop
           Chassis: laptop
        Machine ID: 3c911f123a994b3d8a6c8c3c76c5d390
           Boot ID: a1b2c3d4e5f67890123456789abcdef0
  Operating System: Ubuntu 20.04.1 LTS
            Kernel: Linux 5.4.0-42-generic
      Architecture: x86-64

Hostnamectl is particularly useful for system administrators and those managing multiple machines, as it provides detailed information about the system, including the hostname, operating system, kernel, and hardware details.

This command is a personal favorite for its simplicity and the wealth of information it provides with just one word.

4. lscpu – Processor details at your fingertips

Syntax: lscpu

Output example:

Architecture:        x86_64
CPU op-mode(s):      32-bit, 64-bit
Byte Order:          Little Endian
Address sizes:       39 bits physical, 48 bits virtual
CPU(s):              4
On-line CPU(s) list: 0-3
Thread(s) per core:  2
Core(s) per socket:  2
Socket(s):           1
NUMA node(s):        1
Vendor ID:           GenuineIntel
CPU family:          6
Model:               142
Model name:          Intel(R) Core(TM) i5-8250U CPU @ 1.60GHz
Stepping:            10
CPU MHz:             800.123
CPU max MHz:         3400.0000
CPU min MHz:         400.0000

Lscpu displays detailed information about the CPU architecture, including the number of cores, threads, CPU family, and current operating frequencies. It’s essential for understanding the processing capabilities of your system, especially when optimizing performance or evaluating whether your system can handle certain applications.

As someone who loves tweaking system performance, lscpu is invaluable for understanding the processor’s capabilities.

5. free – Memory usage demystified

Syntax: free -m

Output example:

              total        used        free      shared  buff/cache   available
Mem:           7859        2468        3665         125        1726        4915
Swap:          2047           0        2047

The free command, used here with the -m option to display the memory in megabytes, gives an instant view of the system’s memory usage, including total, used, and free memory. It’s especially useful for monitoring your system’s memory performance under different loads.

Memory management is crucial, and free helps me keep an eye on how much memory is being used and how much is available.

6. df – Disk space in detail

Syntax: df -h

Output example:

Filesystem      Size  Used Avail Use% Mounted on
udev            3.9G     0  3.9G   0% /dev
tmpfs           789M  1.7M  787M   1% /run
/dev/sda1       234G  173G   50G  78% /
tmpfs           3.9G  125M  3.8G   4% /dev/shm
tmpfs           5.0M  4.0K  5.0M   1% /run/lock

Df with the -h (human-readable) option shows the amount of disk space used and available on your file systems. It’s a handy command for keeping track of disk usage, particularly useful for those who manage large files or databases.

I use df frequently to monitor disk space, especially before and after installing large software or performing system updates.

7. lsblk – Listing block devices

Syntax: lsblk

Output example:

sda      8:0    0   256G  0 disk 
├─sda1   8:1    0   512M  0 part /boot/efi
├─sda2   8:2    0     1G  0 part /boot
└─sda3   8:3    0 254.5G  0 part /
sdb      8:16   0   1TB  0 disk 
└─sdb1   8:17   0   1TB  0 part /mnt/data

Lsblk is an incredibly useful command for getting a clear view of all the block devices (like hard drives and SSDs) connected to your system, along with their mount points. It’s a must-use for anyone involved in system storage management.

For disk partitioning and management, lsblk is a clear and concise way to view the layout of your drives.

8. dmidecode – The hidden hardware details

Syntax: sudo dmidecode -t system

Output example:

# dmidecode 3.2
Getting SMBIOS data from sysfs.
SMBIOS 3.2.1 present.

Handle 0x0001, DMI type 1, 27 bytes
System Information
    Manufacturer: Dell Inc.
    Product Name: XPS 15 9570
    Version: Not Specified
    Serial Number: 1234ABCD
    UUID: 4c4c4544-004b-3210-8033-b9c04f4a3131
    Wake-up Type: Power Switch
    SKU Number: 087B
    Family: XPS

Dmidecode is a powerful tool for extracting hardware information from the system’s BIOS or firmware, often more detailed than other commands can provide. It requires administrative privileges and is great for getting specific hardware details like manufacturer, product name, and serial number.

As someone intrigued by hardware, dmidecode feels like having a conversation with the deeper layers of the computer.

9. top – Real-time system monitor

Syntax: top

Output example: (This is a dynamic output, continuously updating in real-time)

top - 11:27:18 up  1:22,  2 users,  load average: 0.42, 0.35, 0.28
Tasks: 276 total,   1 running, 175 sleeping,   0 stopped,   0 zombie
%Cpu(s):  2.7 us,  0.8 sy,  0.0 ni, 96.4 id,  0.0 wa,  0.0 hi,  0.1 si,  0.0 st
MiB Mem :   7859.7 total,   3534.1 free,   2473.0 used,   1852.6 buff/cache
MiB Swap:   2048.0 total,   2048.0 free,      0.0 used.   4920.9 avail Mem 

12345 myuser    20   0  266956  58280  37456 S   0.7  0.7   0:03.89 gnome-terminal-

Top is like the live heartbeat monitor of your system, showing real-time data on CPU and memory usage, as well as information about running processes. It’s extremely useful for monitoring system performance, especially under different workloads.

I often use top to monitor system performance, especially when running resource-intensive applications.

10. ip addr – Exploring network interfaces

Syntax: ip addr

Output example:

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN 
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet scope host lo
       valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 01:23:45:67:89:ab brd ff:ff:ff:ff:ff:ff
    inet brd scope global dynamic eth0
       valid_lft 86399sec preferred_lft 86399sec
    inet6 fe80::1234:5678:9abc:def0/64 scope link 
       valid_lft forever preferred_lft forever

The ip addr command is an essential tool for network administrators and anyone needing to troubleshoot or configure network interfaces. It displays detailed information about all network interfaces on your system, including loopback interfaces, Ethernet, Wi-Fi, and any other network adapters. The output shows each interface’s name, state (up/down), MAC address, IP address, and other relevant data.

In today’s interconnected world, ip a is my quick way to check network configurations and troubleshoot connectivity issues.

Quick reference summary of commands

Command Primary Use
uname -a Displays basic system information.
lsb_release -a Shows distribution-specific details.
hostnamectl Provides detailed system identification.
lscpu Gives detailed CPU architecture information.
free -m Shows memory usage in megabytes.
df -h Displays disk space usage.
lsblk Lists all block devices.
dmidecode -t system Extracts detailed hardware information from BIOS.
top Real-time system monitor.
ip addr Displays details of network interfaces.


In this guide, we’ve explored 10 powerful commands that unlock a wealth of information about your system and hardware. Each command serves as a key, opening doors to deeper understanding and more effective management of your Linux environment.

Whether you’re delving into the specifics of your CPU architecture with lscpu, keeping an eye on memory usage with free -m, or troubleshooting network issues with ip addr, these commands equip you with the knowledge to make informed decisions and optimizations. They are more than just commands; they are essential tools in your toolkit as a Linux user.

You may also like

Leave a Comment



FOSS Linux is a leading resource for Linux enthusiasts and professionals alike. With a focus on providing the best Linux tutorials, open-source apps, news, and reviews written by team of expert authors. FOSS Linux is the go-to source for all things Linux.

Whether you’re a beginner or an experienced user, FOSS Linux has something for everyone.

Follow Us


©2016-2023 FOSS LINUX



“Linux” is the registered trademark by Linus Torvalds in the U.S. and other countries.