Check os version in Linux
The procedure to find os name and version on Linux:
Open the terminal application (bash shell)
For remote server login using the ssh: ssh user@server-name
Type any one of the following command to find os name and version in Linux:
cat /etc/os-release
lsb_release -a
hostnamectl
Type the following command to find Linux kernel version:
uname -r
Let us see all examples in details for common Linux distros.
The /etc/os-release file
Type the following cat command:
$ cat /etc/os-release
Sample outputs:
NAME="Ubuntu"
VERSION="20.04.1 LTS (Focal Fossa)"
ID=ubuntu
ID_LIKE=debian
PRETTY_NAME="Ubuntu 20.04.1 LTS"
VERSION_ID="20.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=focal
UBUNTU_CODENAME=focal
We can filter out information such as OS version and name using the grep command/egrep command as follows:
$ grep '^VERSION' /etc/os-release
$ egrep '^(VERSION|NAME)=' /etc/os-release
Here is what we see:
NAME="CentOS Linux"
VERSION="8 (Core)"
Even tiny Linux distro such as Alpine Linux provide the required OS (Operating system) information, including version:
NAME="Alpine Linux"
ID=alpine
VERSION_ID=3.12.1
PRETTY_NAME="Alpine Linux v3.12"
HOME_URL="https://alpinelinux.org/"
BUG_REPORT_URL="https://bugs.alpinelinux.org/"
Checking OS version on Linux using the lsb_release command
The lsb_release command gives LSB (Linux Standard Base) and distribution-specific information on the CLI. The syntax is:
$ lsb_release -a
Sample outputs:
LSB Version::core-4.1-amd64:core-4.1-noarch
Distributor ID:CentOS
Description:CentOS Linux release 7.4.1708 (Core)
Release:7.4.1708
Codename:Core
hostnamectl command
Use hostnamectl command to query and change the system hostname and related settings. Just type the following command to check OS name and Linux kernel version:
$ hostnamectl
And it will give info as follows. Look out for “Operating System” and “Kernel“:
Static hostname: nixcraft-www-42
Icon name: computer-vm
Chassis: vm
Machine ID: beb217fbb4324b7d9959f78c279e6599
Boot ID: 10f00cc5ca614b518a84d1793d0134bc
Virtualization: qemu
Operating System: Ubuntu 16.04.3 LTS
Kernel: Linux 4.10.0-42-generic
Architecture: x86-64
Another outputs from my OpenSUSE Linux 15.2 server:
Static hostname: opensuse-nixcraft
Icon name: computer-vm
Chassis: vm
Machine ID: b95459dbd45d428fa513ab6a9636d1a8
Boot ID: 9a144556789241e29b62b962cfb6ba1d
Virtualization: kvm
Operating System: openSUSE Leap 15.2
CPE OS Name: cpe:/o:opensuse:leap:15.2
Kernel: Linux 5.3.18-lp152.50-default
Architecture: x86-64
uname command
Just print Linux kernel version, run:
$ uname -r
Sample outputs:
Check os version in Linux command line
Another option is to type the following command:
$ cat /proc/version
Sample outputs:
Linux version 3.10.0-693.11.6.el7.x86_64 (mockbuild@x86-041.build.eng.bos.redhat.com) (gcc version 4.8.5 20150623 (Red Hat 4.8.5-16) (GCC) ) #1 SMP Thu Dec 28 14:23:39 EST 2017
/etc/issue file
Use more command/less command as follows:
$ cat /etc/issue
$ more /etc/issue
$ less /etc/issue
Getting help
You can also view the manual page on uname using the following command:
$ man hostnamectl
$ man uname
$ man cat
We explained how to find and display the OS version on Linux. The safest option is to query /etc/os-release file using grep or cat command. Systemd based Linux distro users can use the hostnamectl command.