Is there a way to determine what version (distribution & kernel version, I suppose) of Linux is running (from the command-line), that works on any Linux system?
How to Find Linux Version from Command Line
command linelinuxversion
command linelinuxversion
Is there a way to determine what version (distribution & kernel version, I suppose) of Linux is running (from the command-line), that works on any Linux system?
Best Answer
The kernel is universally detected with
uname
:There really isn't a cross-distribution way to determine what distribution and version you're on. There have been attempts to make this consistent, but ultimately it varies, unfortunately. LSB tools provide this information, but ironically aren't installed by default everywhere. Example on an Ubuntu 9.04 system with the
lsb-release
package installed:Otherwise, the closest widely-available method is checking
/etc/something-release
files. These exist on most of the common platforms, and on their derivatives (i.e., Red Hat and CentOS).Here are some examples.
Ubuntu has
/etc/lsb-release
:But Debian has
/etc/debian_version
:Fedora, Red Hat and CentOS have:
Gentoo:
I don't have a SUSE system available at the moment, but I believe it is
/etc/SuSE-release
.Slackware has
/etc/slackware-release
and/or/etc/slackware-version
.Mandriva has
/etc/mandriva-release
.For most of the popular distributions then,
will most often work. Stripped down and barebones "server" installations might not have the 'release' package for the distribution installed.
Additionally, two 3rd party programs you can use to automatically get this information are Ohai and Facter.
Note that many distributions have this kind of information in
/etc/issue
or/etc/motd
, but some security policies and best practices indicate that these files should contain access notification banners.Related: How to find out version of software package installed on the node?, puppet.