How to Check Your Linux System Information

To check key Linux system information from the terminal: uname -a shows the kernel version and architecture, lsb_release -a or cat /etc/os-release shows the OS version, lscpu shows CPU details, free -h shows RAM usage, df -h shows disk space, ip addr shows network interfaces, and lshw or inxi -Fxz gives a comprehensive hardware overview. Most of these commands work on any Linux distribution without installing additional software.

Introduction: Knowing Your System

Knowing your Linux system’s details is not just satisfying curiosity — it is a practical necessity that comes up constantly. When you follow a tutorial, you need to know which distribution and version you are running. When you report a bug, developers ask for your kernel version. When troubleshooting performance issues, you check CPU load and memory usage. When planning storage, you check disk space. When configuring networking, you need interface names and IP addresses. When shopping for compatible hardware, you need to know what is already installed.

Linux provides an extraordinary array of commands for inspecting every aspect of the system — the operating system, kernel, CPU, memory, storage, network, graphics, and more. Unlike Windows, where system information is scattered across Device Manager, System Properties, and various control panels, Linux keeps most of this information in readable files under /proc, /sys, and /dev, with command-line tools that format and present it clearly.

This article covers the most useful system information commands organized by category: OS and kernel details, hardware inventory, CPU information, memory and swap, disk space and storage, network configuration, and comprehensive all-in-one tools. Each command is explained with its output so you know exactly what you are looking at.

OS and Distribution Information

The first questions about any Linux system: what distribution is it, and what version?

uname: Kernel and System Information

uname reports basic system information about the kernel and hardware:

$ uname -a
Linux mycomputer 6.8.0-51-generic #52-Ubuntu SMP PREEMPT_DYNAMIC Sat Nov 16 09:00:24 UTC 2024 x86_64 x86_64 x86_64 GNU/Linux

Breaking down the fields:

  • Linux — operating system name
  • mycomputer — hostname
  • 6.8.0-51-generic — kernel release version
  • #52-Ubuntu SMP PREEMPT_DYNAMIC... — kernel build version and compile date
  • x86_64 — machine hardware architecture (processor type)
  • GNU/Linux — operating system type

Individual uname flags:

$ uname -s          # Kernel name: Linux
$ uname -n          # Network hostname: mycomputer
$ uname -r          # Kernel release: 6.8.0-51-generic
$ uname -v          # Kernel version (build info)
$ uname -m          # Machine hardware: x86_64
$ uname -p          # Processor type: x86_64
$ uname -o          # OS: GNU/Linux

The most commonly needed flag is -r (kernel release version) — useful when checking if a kernel update requires a reboot or when verifying which kernel is running after an update.

lsb_release: Distribution Details

lsb_release (Linux Standard Base release) shows the distribution’s name, codename, and version:

$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 24.04.1 LTS
Release:        24.04
Codename:       noble

Individual flags:

$ lsb_release -d    # Description only: Ubuntu 24.04.1 LTS
$ lsb_release -r    # Release: 24.04
$ lsb_release -c    # Codename: noble

lsb_release may not be installed on all distributions. Install it: sudo apt install lsb-release or sudo dnf install redhat-lsb-core.

/etc/os-release: Universal Distribution Information

Every modern Linux distribution includes /etc/os-release — a standardized file that always works regardless of which tools are installed:

$ cat /etc/os-release
PRETTY_NAME="Ubuntu 24.04.1 LTS"
NAME="Ubuntu"
VERSION_ID="24.04"
VERSION="24.04.1 LTS (Noble Numbat)"
VERSION_CODENAME=noble
ID=ubuntu
ID_LIKE=debian
HOME_URL="https://www.ubuntu.com/"
SUPPORT_URL="https://help.ubuntu.com/"
BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/"
PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy"
UBUNTU_CODENAME=noble
LOGO=ubuntu-logo

This is the most reliable way to check distribution information in scripts, because it is always present and in a consistent format. Extract a specific value:

$ . /etc/os-release && echo "$PRETTY_NAME"
Ubuntu 24.04.1 LTS

On Fedora:

$ cat /etc/os-release
NAME="Fedora Linux"
VERSION="40 (Workstation Edition)"
ID=fedora
VERSION_ID=40
PRETTY_NAME="Fedora Linux 40 (Workstation Edition)"

hostnamectl: System Identity

hostnamectl shows the system’s hostname and related information in a clean format:

$ hostnamectl
 Static hostname: mycomputer
       Icon name: computer-laptop
         Chassis: laptop 💻
      Machine ID: a1b2c3d4e5f6789012345678901234ab
         Boot ID: f1e2d3c4b5a6987654321098765432ba
Operating System: Ubuntu 24.04.1 LTS
          Kernel: Linux 6.8.0-51-generic
    Architecture: x86-64
 Hardware Vendor: Dell Inc.
  Hardware Model: XPS 15 9500
Firmware Version: 1.23.0

This combines hostname, hardware vendor/model, OS version, kernel, and firmware in one view — useful for a quick system summary.

Kernel Information in Depth

Checking the Kernel Version

$ uname -r
6.8.0-51-generic

The kernel version string 6.8.0-51-generic means:

  • 6 — major version
  • 8 — minor version
  • 0 — patch level
  • 51 — Ubuntu-specific packaging revision
  • generic — flavor (generic for standard desktop/server kernel; lowlatency, realtime, etc. for specialized variants)

Listing Installed Kernels

On Ubuntu, multiple kernel versions may be installed:

$ dpkg --list | grep linux-image
ii  linux-image-6.8.0-49-generic   amd64   Signed kernel image generic
ii  linux-image-6.8.0-51-generic   amd64   Signed kernel image generic
ii  linux-image-generic             amd64   Generic Linux kernel image

The running kernel is 6.8.0-51-generic (from uname -r). The older 6.8.0-49-generic remains available at the GRUB boot menu.

Loaded Kernel Modules

Kernel modules are drivers and extensions loaded into the running kernel:

$ lsmod
Module                  Size  Used by
nvidia_uvm           1245184  0
nvidia_drm             65536  4
nvidia               8347648  96 nvidia_uvm,nvidia_drm
drm_kms_helper        282624  1 nvidia_drm
i2c_nvidia_gpu         16384  0
[many more...]

Find information about a specific module:

$ modinfo nvidia
filename:       /lib/modules/6.8.0-51-generic/updates/dkms/nvidia.ko
description:    NVIDIA Uniform Architecture Driver
author:         NVIDIA Corporation
version:        550.120

Hardware Overview

lshw: Comprehensive Hardware List

lshw (list hardware) provides a detailed inventory of all hardware. It requires root for complete information:

$ sudo lshw
mycomputer
    description: Notebook
    product: XPS 15 9500
    vendor: Dell Inc.
    version: 0.1
    serial: ABCDE12
    width: 64 bits
    capabilities: smp vsyscall32
  *-core
       description: Motherboard
       product: 0C5D0Y
     *-cpu
          description: CPU
          product: Intel(R) Core(TM) i7-10750H CPU @ 2.60GHz
          width: 64 bits
     *-memory
          description: System Memory
          size: 32GiB
     *-pci
          *-display
               description: VGA compatible controller
               product: NVIDIA Corporation TU117M [GeForce GTX 1650 Ti]

More readable short format:

$ sudo lshw -short
H/W path        Device      Class          Description
=======================================================
                            system         XPS 15 9500
/0                          bus            0C5D0Y
/0/0                        memory         64KiB BIOS
/0/2d                       memory         32GiB System Memory
/0/2d/0                     memory         16GiB Row Of Chips LPDDR4X
/0/2d/1                     memory         16GiB Row Of Chips LPDDR4X
/0/100/2                    display        UHD Graphics
/0/100/1c.0/0               display        GeForce GTX 1650 Ti
/0/100/1f.3                 multimedia     Comet Lake PCH cAudio
/0/1         /dev/sda       disk           512GB NVMe SSD
/0/2         /dev/sdb       disk           1TB Crucial MX500

HTML output for detailed report:

$ sudo lshw -html > system_report.html

inxi: The User-Friendly System Information Tool

inxi is a feature-rich system information script that produces clean, readable output. Install it if not present:

$ sudo apt install inxi    # Ubuntu/Debian
$ sudo dnf install inxi    # Fedora

Full system information:

$ inxi -Fxz
System:
  Host: mycomputer Kernel: 6.8.0-51-generic arch: x86_64 bits: 64
  Desktop: GNOME v: 46.0 Distro: Ubuntu 24.04.1 LTS
Machine:
  Type: Laptop System: Dell product: XPS 15 9500
  Mobo: Dell model: 0C5D0Y serial: <filter>
  UEFI: Dell v: 1.23.0 date: 11/15/2024
CPU:
  Info: 6-core model: Intel Core i7-10750H bits: 64 type: MT MCP
  Speed (MHz): avg: 2600 min/max: 800/5000
Graphics:
  Device-1: Intel UHD Graphics driver: i915
  Device-2: NVIDIA GeForce GTX 1650 Ti driver: nvidia v: 550.120
  Display: wayland server: X.org v: 1.21.1.11 with: Xwayland
  renderer: Mesa Intel UHD Graphics (CML GT2) v: 4.6
Memory:
  RAM: total: 31.09 GiB used: 8.42 GiB (27.1%)
  Array-1: capacity: 64 GiB
  Device-1: ChannelA-DIMM0 type: LPDDR4X size: 16 GiB speed: 4267 MT/s
  Device-2: ChannelB-DIMM0 type: LPDDR4X size: 16 GiB speed: 4267 MT/s
Drives:
  Local Storage: total: 1.36 TiB used: 234.5 GiB (16.8%)
  ID-1: /dev/nvme0n1 vendor: Samsung model: MZVLB512HBJQ size: 476.94 GiB
  ID-2: /dev/sda vendor: Crucial model: CT1000MX500SSD1 size: 931.51 GiB
Network:
  Device-1: Intel Wi-Fi 6 AX201 driver: iwlwifi

The -z flag anonymizes serial numbers and MAC addresses — useful when sharing output publicly. inxi is one of the most useful single commands for a complete system overview.

CPU Information

lscpu: CPU Architecture and Details

$ lscpu
Architecture:            x86_64
  CPU op-mode(s):        32-bit, 64-bit
  Address sizes:         39 bits physical, 48 bits virtual
  Byte Order:            Little Endian
CPU(s):                  12
  On-line CPU(s) list:   0-11
Vendor ID:               GenuineIntel
  Model name:            Intel(R) Core(TM) i7-10750H CPU @ 2.60GHz
    CPU family:          6
    Model:               165
    Thread(s) per core:  2
    Core(s) per socket:  6
    Socket(s):           1
    Stepping:            2
    CPU max MHz:         5000.0000
    CPU min MHz:         800.0000
    BogoMIPS:            5199.98
Virtualization:          VT-x
Caches (sum of all):
  L1d:                   192 KiB (6 instances)
  L1i:                   192 KiB (6 instances)
  L2:                    1.5 MiB (6 instances)
  L3:                    12 MiB (1 instance)

Key information from lscpu:

  • CPU(s): 12 — total logical CPUs (6 cores × 2 threads with hyperthreading)
  • Thread(s) per core: 2 — hyperthreading is enabled
  • Core(s) per socket: 6 — physical cores
  • CPU max MHz: 5000 — maximum boost frequency (5 GHz)
  • Virtualization: VT-x — Intel virtualization extensions available

/proc/cpuinfo: Raw CPU Data

$ cat /proc/cpuinfo | grep "model name" | head -1
model name	: Intel(R) Core(TM) i7-10750H CPU @ 2.60GHz

$ cat /proc/cpuinfo | grep "cpu cores" | head -1
cpu cores	: 6

$ grep -c "processor" /proc/cpuinfo
12

/proc/cpuinfo contains one entry per logical CPU. grep -c "processor" counts the total number of logical processors.

Checking CPU Temperature

$ sudo apt install lm-sensors
$ sudo sensors-detect    # One-time detection (press Enter for defaults)
$ sensors
coretemp-isa-0000
Adapter: ISA adapter
Package id 0:  +52.0°C  (high = +100.0°C, crit = +100.0°C)
Core 0:        +48.0°C  (high = +100.0°C, crit = +100.0°C)
Core 1:        +49.0°C  (high = +100.0°C, crit = +100.0°C)
Core 2:        +52.0°C  (high = +100.0°C, crit = +100.0°C)
Core 3:        +48.0°C  (high = +100.0°C, crit = +100.0°C)
Core 4:        +50.0°C  (high = +100.0°C, crit = +100.0°C)
Core 5:        +51.0°C  (high = +100.0°C, crit = +100.0°C)

Memory and Swap Information

free: RAM and Swap Usage

$ free -h
               total        used        free      shared  buff/cache   available
Mem:            31Gi        8.3Gi       1.2Gi       512Mi        21Gi        22Gi
Swap:          2.0Gi          0B       2.0Gi

Understanding the columns:

  • total — total physical RAM (31 GB)
  • used — RAM currently in use by processes (8.3 GB)
  • free — RAM that is completely unused (1.2 GB — this looks low but is misleading)
  • shared — RAM used by shared memory (tmpfs, etc.)
  • buff/cache — RAM used by kernel buffers and page cache (21 GB — this is memory holding cached file data, immediately available to applications if needed)
  • available — the real measure of available memory: free + releasable buff/cache (22 GB — plenty of RAM available)

The available column is the important one. Linux uses idle RAM as disk cache to speed up file access — this cached memory is not truly “used” because the kernel will release it instantly when an application needs memory.

Display in different units:

$ free -m     # In megabytes
$ free -g     # In gigabytes
$ free -b     # In bytes

Show continuously updated memory usage:

$ free -h -s 2    # Update every 2 seconds

/proc/meminfo: Detailed Memory Information

$ cat /proc/meminfo
MemTotal:       32505856 kB
MemFree:         1258496 kB
MemAvailable:   23068672 kB
Buffers:          524288 kB
Cached:         19922944 kB
SwapCached:            0 kB
SwapTotal:       2097152 kB
SwapFree:        2097152 kB
HugePages_Total:       0
HugePages_Free:        0
HugepageSize:       2048 kB

vmstat: Virtual Memory Statistics

$ vmstat -s -S M
      31744 M total memory
       8524 M used memory
       8213 M active memory
      19832 M inactive memory
       1230 M free memory
        512 M buffer memory
      21478 M swap cache
       2048 M total swap
          0 M used swap
       2048 M free swap

vmstat is particularly useful for monitoring memory behavior over time:

$ vmstat 2 5    # Report every 2 seconds, 5 times

Disk and Storage Information

df: Disk Space Usage

$ df -h
Filesystem      Size  Used Avail Use% Mounted on
tmpfs           3.2G  2.3M  3.2G   1% /run
/dev/nvme0n1p2  469G  225G  220G  51% /
tmpfs            16G  255M   16G   2% /dev/shm
tmpfs           5.0M  8.0K  5.0M   1% /run/lock
/dev/nvme0n1p1  1.1G   11M  1.1G   1% /boot/efi
/dev/sda1       916G   50G  820G   6% /mnt/storage

Column meanings:

  • Filesystem — the device or filesystem name
  • Size — total capacity
  • Used — space currently occupied
  • Avail — space available for use
  • Use% — percentage used
  • Mounted on — where in the filesystem tree this is accessible

Show only physical filesystems (exclude tmpfs and other virtual):

$ df -h --exclude-type=tmpfs --exclude-type=devtmpfs

Show inode usage (for when you run out of inodes before disk space):

$ df -i
Filesystem      Inodes  IUsed   IFree IUse% Mounted on
/dev/nvme0n1p2 30539776 1234567 29305209    4% /

lsblk: Block Device Tree

$ lsblk
NAME        MAJ:MIN RM   SIZE RO TYPE MOUNTPOINTS
nvme0n1     259:0    0   477G  0 disk
├─nvme0n1p1 259:1    0   1.1G  0 part /boot/efi
├─nvme0n1p2 259:2    0 470.9G  0 part /
└─nvme0n1p3 259:3    0     5G  0 part [SWAP]
sda           8:0    0 931.5G  0 disk
└─sda1        8:1    0 931.5G  0 part /mnt/storage

lsblk shows the hierarchy of block devices — physical drives, their partitions, and where each is mounted. This is the clearest view of your storage layout.

With filesystem information:

$ lsblk -f
NAME        FSTYPE FSVER LABEL UUID                                 FSAVAIL FSUSE% MOUNTPOINTS
nvme0n1
├─nvme0n1p1 vfat   FAT32       A1B2-C3D4                              1.1G     1% /boot/efi
├─nvme0n1p2 ext4   1.0         a1b2c3d4-e5f6-7890-abcd-ef1234567890   220G    51% /
└─nvme0n1p3 swap   1           b2c3d4e5-f6a7-8901-bcde-f01234567891               [SWAP]

fdisk and parted: Partition Details

$ sudo fdisk -l /dev/nvme0n1
Disk /dev/nvme0n1: 476.94 GiB, 512110190592 bytes, 1000215216 sectors
Disk model: Samsung MZVLB512HBJQ-000L2
Units: sectors of 1 * 512 = 512 bytes
Disk identifier: A1B2C3D4-E5F6-7890-ABCD-EF1234567890

Device           Start        End    Sectors   Size Type
/dev/nvme0n1p1    2048    2203647    2201600   1.1G EFI System
/dev/nvme0n1p2 2203648  989855743  987652096 470.9G Linux filesystem
/dev/nvme0n1p3 989855744 999999487   10143744   4.8G Linux swap

nvme and hdparm: Drive Health

Check NVMe SSD health:

$ sudo nvme smart-log /dev/nvme0n1
SMART/Health Information (NVMe Log 0x02)
Critical Warning:                   0x00
Temperature:                        35°C
Available Spare:                    100%
Available Spare Threshold:          10%
Percentage Used:                    1%
Data Units Read:                    4,234,567 [2.17 TB]
Data Units Written:                 2,123,456 [1.09 TB]
Power On Hours:                     1234

Install nvme-cli: sudo apt install nvme-cli

Network Information

ip addr: Network Interfaces and Addresses

$ ip addr
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 127.0.0.1/8 scope host lo
    inet6 ::1/128 scope host
2: enp3s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP
    link/ether a4:c3:f0:12:34:56 brd ff:ff:ff:ff:ff:ff
    inet 192.168.1.105/24 brd 192.168.1.255 scope global dynamic
    inet6 fe80::a6c3:f0ff:fe12:3456/64 scope link
3: wlp4s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP
    link/ether bc:d0:74:78:9a:bc brd ff:ff:ff:ff:ff:ff
    inet 192.168.1.110/24 brd 192.168.1.255 scope global dynamic

Short form:

$ ip -br addr
lo               UNKNOWN        127.0.0.1/8 ::1/128
enp3s0           UP             192.168.1.105/24 fe80::a6c3:f0ff:fe12:3456/64
wlp4s0           UP             192.168.1.110/24

Checking the Public IP Address

$ curl -s ifconfig.me
203.0.113.42

$ curl -s icanhazip.com
203.0.113.42

These services return your public IP as seen from the internet — useful for verifying VPN connections or checking external connectivity.

Network Interfaces

$ ip link show
$ nmcli device status          # NetworkManager device status
DEVICE   TYPE      STATE      CONNECTION
enp3s0   ethernet  connected  Wired connection 1
wlp4s0   wifi      connected  HomeNetwork
lo       loopback  unmanaged  --

DNS Configuration

$ cat /etc/resolv.conf
nameserver 127.0.0.53
options edns0 trust-ad

$ resolvectl status             # systemd-resolved DNS details
Global
       Protocols: -LLMNR -mDNS -DNSOverTLS DNSSEC=no/unsupported
resolv.conf mode: stub
  Current DNS Server: 192.168.1.1
         DNS Servers: 192.168.1.1 8.8.8.8

GPU and Display Information

lspci: PCI Device List (Includes GPU)

$ lspci | grep -i vga
00:02.0 VGA compatible controller: Intel Corporation UHD Graphics (rev 05)
01:00.0 VGA compatible controller: NVIDIA Corporation TU117M [GeForce GTX 1650 Ti] (rev a1)

$ lspci -v -s 01:00.0    # Detailed info for the NVIDIA GPU

glxinfo: OpenGL/GPU Details

$ sudo apt install mesa-utils
$ glxinfo | grep -i "opengl\|vendor\|renderer"
OpenGL vendor string: NVIDIA Corporation
OpenGL renderer string: NVIDIA GeForce GTX 1650 Ti/PCIe/SSE2
OpenGL version string: 4.6.0 NVIDIA 550.120

nvidia-smi: NVIDIA GPU Status

$ nvidia-smi
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 550.120       Driver Version: 550.120    CUDA Version: 12.4     |
|-------------------------------+----------------------+----------------------+
| GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC|
| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M.|
|=============================================================================|
|   0  GeForce GTX 1650 Ti  Off | 00000000:01:00.0  Off|                  N/A|
| N/A   45C    P8     3W /  80W |    456MiB / 4096MiB |      0%      Default |
+-----------------------------------------------------------------------------+

System Uptime and Load

uptime: How Long the System Has Been Running

$ uptime
 10:35:42 up 5 days,  2:18,  2 users,  load average: 0.52, 0.48, 0.45
  • 10:35:42 — current time
  • up 5 days, 2:18 — system has been running for 5 days and 2 hours 18 minutes
  • 2 users — two users currently logged in
  • load average: 0.52, 0.48, 0.45 — average number of processes waiting to run over the last 1, 5, and 15 minutes

Interpreting load average: On a system with 12 CPUs (like the example above), a load average of 1.0 means all CPUs are at about 8% utilization. A load average of 12.0 means the CPUs are fully utilized. A load average consistently above the CPU count indicates the system is overloaded.

$ uptime -p    # Pretty format
up 5 days, 2 hours, 18 minutes

who and w: Who Is Logged In

$ who
sarah    pts/0        2026-02-18 09:22 (192.168.1.100)
root     pts/1        2026-02-18 09:30 (192.168.1.105)

$ w
 10:35:42 up 5 days,  2:18,  2 users,  load average: 0.52, 0.48, 0.45
USER     TTY      FROM             LOGIN@   IDLE JCPU   PCPU WHAT
sarah    pts/0    192.168.1.100    09:22    0.00s  0.25s  0.03s bash
root     pts/1    192.168.1.105    09:30    5.00s  0.05s  0.01s w

last: Login History

$ last | head -10
sarah    pts/0        192.168.1.100    Wed Feb 18 09:22   still logged in
root     pts/1        192.168.1.105    Wed Feb 18 09:30   still logged in
sarah    pts/0        192.168.1.100    Tue Feb 17 08:15 - 18:45  (10:30)

System Resource Monitoring

top: Real-Time Process and Resource Monitor

$ top

The top display updates every few seconds showing:

  • System uptime and load averages (top line)
  • Task counts (running, sleeping, stopped)
  • CPU usage breakdown (user, system, idle)
  • Memory usage
  • Per-process list sorted by CPU usage

Key top keyboard commands:

  • q — quit
  • M — sort by memory usage
  • P — sort by CPU usage (default)
  • k — kill a process (enter PID when prompted)
  • 1 — toggle per-CPU display

htop: Enhanced Interactive Monitor

htop is a more visual, user-friendly alternative:

$ sudo apt install htop
$ htop

htop adds color-coded CPU bars, memory usage bars, mouse support, and easier process management compared to top.

BIOS and Firmware Information

dmidecode: Hardware and BIOS Details

dmidecode reads hardware information from DMI/SMBIOS tables — the same data your BIOS/UEFI provides:

$ sudo dmidecode -t bios
# dmidecode 3.4
Getting SMBIOS data from sysfs.
SMBIOS 3.1.1 present.

Handle 0x0000, DMI type 0, 26 bytes
BIOS Information
	Vendor: Dell Inc.
	Version: 1.23.0
	Release Date: 11/15/2024
	ROM Size: 32 MB
	Characteristics:
		PCI is supported
		PCI Express is supported
		UEFI is supported
$ sudo dmidecode -t memory | grep -A10 "Memory Device"
Memory Device
	Array Handle: 0x003A
	Size: 16384 MB
	Form Factor: Row Of Chips
	Type: LPDDR4X
	Speed: 4267 MT/s
	Manufacturer: Samsung
	Part Number: K4EBE304EB-EGCG
$ sudo dmidecode -t processor | grep "Max Speed"
	Max Speed: 5000 MHz

Available DMI types: bios, system, baseboard, chassis, processor, memory, cache, connector, slot

Complete System Information Quick Reference

Information Command
OS name and version lsb_release -a or cat /etc/os-release
Kernel version uname -r
Full kernel info uname -a
System summary hostnamectl
CPU details lscpu
CPU model only grep "model name" /proc/cpuinfo | head -1
CPU temperature sensors (after sensors-detect)
RAM usage free -h
RAM details cat /proc/meminfo
Disk space df -h
Storage layout lsblk
Partition details sudo fdisk -l
Network interfaces ip -br addr
All hardware (brief) sudo lshw -short
All hardware (pretty) inxi -Fxz
GPU info lspci | grep -i vga
BIOS/firmware sudo dmidecode -t bios
RAM hardware info sudo dmidecode -t memory
Uptime and load uptime
Who is logged in w
Real-time resources top or htop
Kernel modules lsmod

Conclusion: Knowing Your System Is Knowing Linux

The ability to quickly interrogate your Linux system — to answer questions about its hardware, its OS version, its resource usage, and its configuration — is a foundational skill that pays dividends in every aspect of Linux use. Troubleshooting becomes faster when you know how to check CPU temperature and memory pressure. Following tutorials becomes easier when you can instantly confirm your kernel version and distribution. Planning upgrades becomes more informed when you know exactly what hardware you have.

The commands in this article cover the most common system information needs: uname -r and cat /etc/os-release for OS and kernel, lscpu for CPU, free -h for memory, df -h and lsblk for storage, ip addr for networking, and inxi -Fxz or sudo lshw -short for a complete hardware overview. These commands are fast, available on virtually every Linux system, and provide clear, actionable information.

Build the habit of checking these commands when you encounter a new system, when troubleshooting performance issues, or when you need to verify that a change has taken effect. The information they reveal is always exactly one command away.

Hot this week

How to Change Your Desktop Environment in Linux

Learn how to install and switch desktop environments in Linux — from GNOME to KDE Plasma, XFCE, MATE, Cinnamon, and more. Includes installation steps and how to choose the right DE.

Understanding Linux System Directories: What Goes Where?

Learn the Linux filesystem hierarchy — what each directory like /etc, /var, /usr, /home, /tmp, /proc, and /dev contains and why the system is organized this way.

What Is a Symbolic Link in Linux?

Learn what symbolic links (symlinks) are in Linux, the difference between soft and hard links, how to create them with ln, and practical uses for symlinks in system administration.

How to Mount and Unmount Drives in Linux

Learn how to mount and unmount drives, USB drives, and partitions in Linux using the mount command, /etc/fstab for persistent mounts, and how to safely eject external drives.

Understanding the Linux Man Pages: Your Built-in Documentation

Learn how to use Linux man pages to look up any command, understand its options, and navigate the built-in documentation system. Includes man, info, apropos, and whatis.

Topics

How to Change Your Desktop Environment in Linux

Learn how to install and switch desktop environments in Linux — from GNOME to KDE Plasma, XFCE, MATE, Cinnamon, and more. Includes installation steps and how to choose the right DE.

Understanding Linux System Directories: What Goes Where?

Learn the Linux filesystem hierarchy — what each directory like /etc, /var, /usr, /home, /tmp, /proc, and /dev contains and why the system is organized this way.

What Is a Symbolic Link in Linux?

Learn what symbolic links (symlinks) are in Linux, the difference between soft and hard links, how to create them with ln, and practical uses for symlinks in system administration.

How to Mount and Unmount Drives in Linux

Learn how to mount and unmount drives, USB drives, and partitions in Linux using the mount command, /etc/fstab for persistent mounts, and how to safely eject external drives.

Understanding the Linux Man Pages: Your Built-in Documentation

Learn how to use Linux man pages to look up any command, understand its options, and navigate the built-in documentation system. Includes man, info, apropos, and whatis.

How to View Running Processes in Linux

Learn how to view and manage running processes in Linux using ps, top, htop, pgrep, and pstree. Understand process states, PIDs, CPU/memory usage, and how to find and kill processes.

What Is BASH? Understanding the Linux Shell

Learn what Bash is, how the Linux shell works, the difference between the terminal and the shell, Bash features every user should know, and how to customize your shell environment.

Understanding Linux Groups and Group Permissions

Learn how Linux groups work, the difference between primary and supplementary groups, how group permissions control file access, and how to create and manage groups effectively.

Related Articles

Popular Categories