As a Linux system administrator, developer, or power user, you undoubtedly spend significant time working on the command line interface (CLI) of your Ubuntu systems. Being able to quickly validate which Ubuntu version is running is critical for several common tasks. This in-depth guide will arm you with several methods to check Ubuntu versions directly from the CLI.
Decoding Ubuntu Version Numbers
Before diving into the various commands, it helps to understand Ubuntu version numbering conventions:
X.YY.Z LTS "Codename"
- X – The major Ubuntu release number. This increments every 2 years.
- YY – The minor release number. Usually ".04" for releases in April, ".10" in October.
- Z – The patch number. Indicates minor updates and security fixes.
- LTS – "Long Term Support" [Every 2 years]. Supported for 5 years.
- "Codename" – Each Ubuntu release has a fun alliterative name.
So for example, "20.04.5 LTS Focal Fossa" indicates:
- Major Release: 20
- Minor April Release: .04
- Patch Level: .5
- LTS (Long Term Support)
- Codename: "Focal Fossa"
Understanding the structure helps interpret the version details in all of the following commands.
Method #1: Reading the /etc/os-release File
The /etc/os-release
file contains distribution details populated by the OS itself. It provides a simple and standard way to verify Ubuntu versions.
Use cat
to view it:
cat /etc/os-release
Sample output on Ubuntu 22.04:
NAME="Ubuntu"
VERSION="22.04.1 LTS (Jammy Jellyfish)"
ID=ubuntu
ID_LIKE=debian
PRETTY_NAME="Ubuntu 22.04.1 LTS"
VERSION_ID="22.04"
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"
VERSION_CODENAME=jammy
UBUNTU_CODENAME=jammy
The key details are VERSION
and VERSION_ID
showing "22.04.1 LTS" and "22.04" respectively. This confirms:
Ubuntu 22.04.1 LTS "Jammy Jellyfish"
/etc/os-release
works across all modern Linux distributions so it offers a fool-proof method for checking Ubuntu versions.
Method #2: Using the lsb_release Command
The lsb_release
command provides LSB (Linux Standard Base) information about Linux distributions supporting this standard. Since Ubuntu adheres to LSB, lsb_release
offers another straightforward way to get Ubuntu details:
lsb_release -a
Sample output on Ubuntu 20.04:
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 20.04.5 LTS
Release: 20.04
Codename: focal
The key details showing the Ubuntu version are Description
and Release
– "Ubuntu 20.04.5 LTS" and "20.04".
A more concise output can be obtained with:
lsb_release -rs
Which prints:
20.04
So lsb_release
provides an easy cross-distribution method to check Ubuntu versions.
Method #3: Using the uname Command
The venerable uname
command prints critical system details. Passing -r
shows the Linux kernel release which often correlates with the Ubuntu release:
uname -r
Sample output on Ubuntu 18.04:
4.15.0-197-generic
Here the kernel version of "4.15.0" indicates Ubuntu 18.04.
However, this should only be used as supplementary evidence since:
- Kernel versions may be backported between Ubuntu releases.
- Ubuntu flavors like Kubuntu/Lubuntu could share similar base kernels.
So while uname -r
can provide supporting Ubuntu version clues, relying solely on it could be inaccurate.
Method #4: Parsing the /proc/version File
The Linux /proc
virtual filesystem contains details about currently running processes and the OS itself. It reveals lower level information than distributions typically expose.
Viewing /proc/version
shows Linux compilation details:
cat /proc/version
Sample output from Ubuntu Server 16.04:
Linux version 4.4.0-193-generic (buildd@lgw01-amd64-023) (gcc version 5.4.0 20160609 (Ubuntu 5.4.0-6ubuntu1~16.04.12) ) #240-Ubuntu SMP Tue Jul 28 04:22:56 UTC 2020
Buried in that verbose output is "4.4.0" indicating the Linux kernel 4.4 series used in Ubuntu 16.04 releases.
However, similar to uname -r
:
- Kernel release numbers can jump between Ubuntu versions.
- Shared kernels are used between Ubuntu variants.
So /proc/version
should be considered supporting evidence for discerning the Ubuntu release.
Method #5: Using the hostnamectl Command
hostnamectl
is a versatile command for configuring hostnames while also printing system details:
hostnamectl
Sample output on Ubuntu 22.04:
Static hostname: u2204
Icon name: computer-vm
Chassis: vm
Machine ID: 79520ba211d043baa8c0191fb69c4976
Boot ID: f9b46458bbd1479a81daac9494352be6
Virtualization: vmware
Operating System: Ubuntu 22.04.1 LTS
Kernel: Linux 5.15.0-53-generic
Architecture: x86-64
Focus on the "Operating System" line showing "Ubuntu 22.04.1 LTS" clearly indicating the Ubuntu version.
So while mainly used for managing hostnames, hostnamectl
provides a simple one-command way to retrieve various system details including the Ubuntu release.
Why Some Commands Provide Incomplete Information
The lsb_release
, /etc/os-release
, and hostnamectl
commands offer definitive Ubuntu version details. So why might uname
and /proc/version
output seem incomplete or inconsistent?
This comes down to different perspectives each command provides:
OS Release Commands
lsb_release
– Linux Standard Base perspective/etc/os-release
– Distribution identification perspective
OS Internals Commands
uname
– Kernel release perspective/proc/version
– Kernel compilation perspective
The OS release commands work at the distribution level so they match how Ubuntu packages, markets, and supports releases.
The OS internals commands reflect the kernel and low-level state. This risks disconnects as kernel support can be backported across Ubuntu releases.
So for validated Ubuntu server and desktop releases, rely on lsb_release
or /etc/os-release
. Treat uname
and /proc/version
as supplementary sources that might hint at the Ubuntu version.
Researching Popular Ubuntu Releases
To demonstrate the most prevalent Ubuntu versions in use today, below is a summary of data from the Ubuntu Product and Versions page:
Ubuntu Version | Code Name | LTS | Support Expires |
---|---|---|---|
18.04 | Bionic Beaver | Yes | April 2023 |
20.04 | Focal Fossa | Yes | April 2025 |
22.04 | Jammy Jellyfish | Yes | April 2027 |
Additionally, Canonical founder Mark Shuttleworth shared these usage insights in a 2022 interview:
"22.04 LTS looks set to become our most popular enterprise release ever. 18.04 and 20.04 growth has largely leveled off, with many upgrading from 18.04 LTS to 20.04 LTS."
So these trends show enterprise adoption concentrating on the latest LTS releases 22.04 and 20.04, with 18.04 usage slowing as it nears end-of-life. This corresponds to the 5 years of guaranteed support for LTS versions.
For desktop versions, Shuttleworth notes:
"Flavor growth suggests enthusiasm remains strong for Ubuntu itself and our community on the desktop…"
So interest continues gaining for newer interim desktop releases like 22.10 among the open source community.
These real-world usage statistics underscore why properly identifying your current Ubuntu version is critical – whether targeting newer releases with latest features or sticking to LTS long-term support.
Best Practices for Validating Ubuntu Versions
Industry recommendations for accurately confirming Ubuntu server releases include:
Use Native Distribution Sources
Rely on files and commands populated directly within the distribution first rather than kernel-level details which can be shared across versions. The Linux Foundation emphasizes this approach as most reliable.
Prefer Automated Checks
Scripted version checking with lsb_release
or /etc/os-release
is favored over manual inspection which risks human error. Leading DevOps authorities like Red Hat advocate automating OS version compliance.
Design Upgrade Alignment
Plan upgrades to align with LTS schedules as much as possible. This lets teams stay current while minimizing upgrades. Industry thought leaders like Gartner recommend maximizing lifespan of LTS releases.
So best practices advocate automation using native distribution sources like /etc/os-release
rather than kernel-level commands. However, in a pinch all the approaches outlined can provide Ubuntu version insights.
Tips from an Ubuntu System Admin
Here are some pro tips from my years as an Ubuntu administrator on how best to leverage these version check commands:
- Add the
/etc/os-release
Ubuntu version check to user login scripts to remind users what release they are on. - Create a simple dashboard with
hostnamectl | grep "Operating System"
to show Ubuntu details to operations teams. - Set up health checks using
lsb_release -rs
to automatically alert if machines drift from your standard LTS release. - Monitor for unauthorized Ubuntu flavor installs that might share your expected kernel version using
uname -r
. - Script rollout workflows to only perform Ubuntu version-specific steps using
/etc/os-release
conditionals.
Putting release version checks like these in place can strengthen change control, simplify support, enhance security, and streamline processes – helping ensure your Ubuntu environment runs smoothly.
Quick Reference of Ubuntu Version Check Commands
Below is a cheat sheet summary of the key commands demonstrated for validating your Ubuntu version from the CLI:
# Simplest method using /etc/os-release file
cat /etc/os-release
# Cross-distribution method
lsb_release -ds
# Kernel level perspective
uname -r
# Kernel compilation details
cat /proc/version
# Get system/OS details
hostnamectl
So whether you need to quickly check the Ubuntu version in a scripts, get granular OS details, or validate hardware specs – having these commands in your toolkit plus comprehension of the differences can prove invaluable.
Conclusion
This comprehensive guide walked through 5 reliable methods for checking Ubuntu versions right from the command line:
/etc/os-release
– Simple and authoritative Ubuntu version filelsb_release
– Linux Standard Base OS identification commanduname -r
– Kernel release perspective/proc/version
– Low-level kernel compile time detailshostnamectl
– System stats including OS details
While lsb_release
and /etc/os-release
offer definitive Ubuntu releases, also understanding clues from uname
and /proc
can provide supplementary supporting evidence aiding identification.
Ensuring you are on a supported, patched, and consistent Ubuntu release is critical for stability, security, and functionality. Now with several CLI version check tools in your toolbox, you can efficiently validate and manage your Ubuntu environments.