[ About | Licence | Contacts ]
Written by Oleksandr Gavenko (AKA gavenkoa), compiled on 2017-01-30 from rev ccaa2f364422+.

Detect OS info

uname

$ uname -a
Linux poly.tech-recipes.com 2.6.5-1.358 #1 Sat May 8 09:04:50 EDT 2004 i686 i686 i386
GNU/Linux

  kernel name:     Linux
  hostname:        poly.tech-recipes.com
  kernel release:  2.6.5-1.358
  kernel version:  #1 Sat May 8 09:04:50 EDT 2004

Linux version files

See for file /etc/<distroname>-version or /etc/<distroname>-release:

$ cat determine-os.sh
  #!/bin/sh
  [ -e /etc/SuSE-release ] && echo This is a SuSE system.
  [ -e /etc/redhat-release ] && echo This is a redhat system.
  [ -e /etc/fedora-release ] && echo This is a fedora system.
  [ -e /etc/debian-version ] && echo This is a debian system.
  [ -e /etc/slackware-version ] && echo This is a slackware system.

See also list:

Novell SuSE
/etc/SuSE-release
Red Hat
/etc/redhat-release, /etc/redhat_version
Fedora
/etc/fedora-release
Slackware
/etc/slackware-release, /etc/slackware-version
Debian
/etc/debian_release, /etc/debian_version,
Mandrake
/etc/mandrake-release
Yellow dog
/etc/yellowdog-release
Sun JDS
/etc/sun-release
Solaris/Sparc
/etc/release
Gentoo
/etc/gentoo-release

Kernel version info

Commonly, distributions will leave tags in the kernel version string to identify themselves. This can be found in the log files like /var/log/syslog or /var/log/messages:

$ cat /etc/issue

or:

$ cat /proc/version

Even if you run a custom kernel, you might still get hints from the gcc version like this one line from /var/log/syslog:

Feb 20 05:54:07 sarge kernel: nf3 (root@sarge) (gcc version 3.4.4 20050314 (prerelease)
(Debian 3.4.3-13sarge1)) #1 PREEMPT Thu Nov 16 20:31:43 CET 2006

'lsb_release' command

$ sudo apt-get install lsb-release

$ lsb_release -s -i
Debian

$ lsb_release -s -c
squeeze

$ lsb_release -s -r
6.0