How to Get System Specifications for a Linux PC

To check a Linux PC’s specifications, run fastfetch for a quick summary, then use focused commands such as lscpu, free -h, lspci, and lsblk to verify individual components.

Get a quick overview with Fastfetch

Fastfetch is a maintained, Neofetch-style system information tool. It gathers a compact overview of the operating system, kernel, host, processor, graphics, and memory. If it is already installed, open a terminal and run:

fastfetch
A dark Linux terminal shows Fastfetch listing operating system, kernel, host, CPU, graphics, and memory information.
Fastfetch prints a compact overview of the Linux PC, including its OS, kernel, CPU, GPU, and memory fields.

If the command is missing, install Fastfetch from your distribution’s package manager. The upstream project currently lists these examples; package availability depends on your release:

# Debian 13 or newer, or Ubuntu 25.04 or newer
sudo apt install fastfetch

# Fedora
sudo dnf install fastfetch

# Arch Linux
sudo pacman -S fastfetch

# openSUSE
sudo zypper install fastfetch

Older Debian and Ubuntu releases may not include Fastfetch in their standard repositories. Check the upstream installation page before adding a third-party repository. Fastfetch is only a summary: use the commands below when you need a particular device, installed-memory amount, or disk layout.

Check the Linux distribution and kernel

Read the distribution’s identification file and ask uname for the running kernel release:

cat /etc/os-release
uname -r
A terminal displays the contents of /etc/os-release and the result of uname -r.
The os-release file identifies the distribution, while uname -r prints the running kernel release.

/etc/os-release contains distribution identification data, while uname -r returns the kernel release. These are useful when checking software compatibility or reporting a Linux issue. See the os-release manual and the uname manual for the documented fields and options.

Find CPU and memory specifications

Processor model, cores, and threads

Run lscpu for the CPU model, architecture, logical CPU count, cores, sockets, and other topology details:

lscpu
A terminal shows lscpu output with architecture, CPU model, processor count, cores, and threads.
The lscpu report lists the CPU model and topology visible to Linux.

The result describes what Linux can see. On a virtual machine, it may reflect the virtual CPU assigned to the guest instead of the physical host processor. For details, see the lscpu manual.

Installed and currently available memory

Use free -h to see usable RAM and swap in human-readable units:

free -h
A terminal shows free -h with total, used, free, cached, and available memory values.
The free -h table summarizes usable RAM and swap in readable units.

The available column is a better quick estimate of memory that can be used by applications than the free column alone, because Linux uses otherwise idle RAM for caches. free does not identify a DIMM’s type or rated speed. If you need module-level details, try sudo dmidecode --type memory. The dmidecode project explains that it reads what system firmware reports; values can be incomplete or unreliable, and some computers expose little detail. The free manual describes its memory columns.

Identify graphics, storage, and USB devices

Graphics and PCI devices

Most graphics cards and integrated graphics controllers appear on the PCI bus. Filter the list to display-class devices:

lspci -nn | grep -Ei 'vga|3d|display'
A terminal filters lspci output for VGA, 3D, or display controllers and shows a sample NVIDIA device.
The filtered lspci output identifies a sample graphics controller and its PCI vendor/device ID.

The bracketed numbers are PCI vendor and device IDs. If the filter returns nothing, run lspci -nn to inspect the full list. You can also use lspci -k to see kernel drivers associated with devices. The lspci manual explains its output. If lspci is missing, install the pciutils package using your distribution’s package manager.

Disks and partitions

For drive names, models, capacities, device types, and mount points, run:

lsblk -o NAME,MODEL,SIZE,TYPE,MOUNTPOINTS
A terminal shows lsblk columns for disk name, model, size, type, and mount points.
The lsblk tree distinguishes disks from partitions and shows their sizes and mount points.

The tree helps distinguish a physical disk from its partitions. It reports block-device layout rather than a full performance or health test. The selected columns make the output easier to compare and share; consult the lsblk manual for other available fields.

USB peripherals

Use lsusb to list USB devices currently detected by Linux:

lsusb
A terminal lists USB root hubs, a keyboard, a webcam, and another USB device with lsusb.
The lsusb output shows USB devices detected on the system, including sample peripherals.

This is useful for checking whether a webcam, adapter, or other USB device is visible to the system. It does not list internal PCI devices such as most built-in graphics or network controllers. If the command is unavailable, install usbutils from your distribution’s repositories. The lsusb manual documents its options.

Save a system report

To keep the information in one text file, run this Bash block. It creates a new filename using the current date and time, then writes the command output to your home folder:

report="$HOME/system-specs-$(date +%F-%H%M%S).txt"
{
  printf '=== OS ===\n'; cat /etc/os-release
  printf '\n=== Kernel ===\n'; uname -r
  printf '\n=== CPU ===\n'; lscpu
  printf '\n=== Memory ===\n'; free -h
  printf '\n=== Storage ===\n'; lsblk -o NAME,MODEL,SIZE,TYPE,MOUNTPOINTS
  printf '\n=== PCI devices ===\n'; lspci -nn
  printf '\n=== USB devices ===\n'; lsusb
} > "$report"
printf 'Saved report to %s\n' "$report"
A terminal groups hardware commands and redirects their output into a timestamped system-specs text file.
A shell command group writes a system information report to a timestamped text file.

If lspci or lsusb is not installed, install the matching package or remove that command from the block before running it. Review the report before sending it to someone: hardware inventories can reveal device identifiers, and additional commands such as dmidecode may expose serial numbers. You usually do not need sudo for the commands above, except when reading firmware-reported memory details.

Leave a Comment

How to Record Speaker Output on Linux with Audacity

How to Record Speaker Output on Linux with Audacity

Capture Linux desktop audio in Audacity by routing its recording stream to your output device’s monitor source. Follow PulseAudio and PipeWire steps, export tips, and fixes for silent tracks.

How to Use Dropbox on Linux: Install and Sync Your Files

How to Use Dropbox on Linux: Install and Sync Your Files

Install Dropbox on Linux from the official package, sign in, sync a local folder, manage selective sync, and check status from the command line.

How to Install Inkscape on Linux: Ubuntu, Fedora, Arch, and More

How to Install Inkscape on Linux: Ubuntu, Fedora, Arch, and More

Install Inkscape from your Linux distribution’s repositories, the Ubuntu stable PPA, Snap, or Flathub, with current commands and notes for choosing a package source.

How to Find and Remove Duplicate Files on Linux With FSlint

How to Find and Remove Duplicate Files on Linux With FSlint

Use FSlint to scan selected Linux folders, review duplicate groups, and safely delete redundant files or learn when hard-link merging is appropriate.

How to Install SABnzbd on Linux and Configure It

How to Install SABnzbd on Linux and Configure It

Install SABnzbd on Ubuntu or Debian, or run it in Docker on another Linux host. Then open the web interface and configure your provider and download folders.

How to Install the Paper GTK Theme on Linux

How to Install the Paper GTK Theme on Linux

Install the Paper GTK theme from supported Linux repositories, enable it for GTK apps in GNOME Tweaks, and see what the legacy theme can and cannot change.

How to Install and Set Up Plex on OpenMediaVault with Compose

How to Install and Set Up Plex on OpenMediaVault with Compose

The old OpenMediaVault Plex plugin is archived. Set up Plex on OMV 8 with OMV-Extras, the Compose plugin, persistent storage, and Plex’s official container.

How to Clean and Speed Up Ubuntu Safely

How to Clean and Speed Up Ubuntu Safely

Clean and speed up Ubuntu with safe APT cleanup, storage checks, and startup controls that help free space and troubleshoot a sluggish desktop.

How to Install the Hiri Email Client on Linux

How to Install the Hiri Email Client on Linux

Install Hiri on Linux with its Snap package or official tarball, add a desktop launcher, and check supported accounts plus a warning about Hiri’s old Snap release.

How to Get System Specifications for a Linux PC

How to Get System Specifications for a Linux PC

Use Fastfetch and built-in Linux commands to check your distro, kernel, CPU, memory, graphics, storage, and connected devices, then save a clear report.