60

How to know which Linux Distribution I'm using?

uname -a gives

Linux xxxxxx.net 2.6.9-42.0.3.EL.wh1smp #1 SMP Fri Aug 14 15:48:17 MDT 2009 i686 i686 i386 GNU/Linux

How can I know this is Ubuntu/Debian/Fedora or Redhat?

I uses /etc/init.d/serviced restart for restarting serevices, seems it is not Redhat family

[itf][~]$ cat /etc/issue
cat: /etc/issue: No such file or directory
[itf][~]$ cat /etc/issue.net
cat: /etc/issue.net: No such file or directory
[itf][~]$ lsb_release -a
-sh: lsb_release: command not found
[itf][~]$ cat /etc/*-release
cat: /etc/*-release: No such file or directory
[itf][~]$ cat /etc/*-version
cat: /etc/*-version: No such file or directory
[itf][~]$ cat /etc/*release
cat: /etc/*release: No such file or directory
[itf][~]$ cat /etc/*_release
cat: /etc/*_release: No such file or directory
[itf][~]$ cat /etc/*version
cat: /etc/*version: No such file or directory
[itf][~]$
Mithun Sreedharan
  • 1,655
  • 4
  • 17
  • 20
  • If you want certain personal/confidential information to be removed, I think you can flag your question for moderator attention. Because we can still read it now... – Tamara Wijsman Mar 09 '12 at 08:54
  • @Tom Wijsman just want not to display that text in questions page, I know that will be there in history :-) – Mithun Sreedharan Mar 09 '12 at 09:18

14 Answers14

38
  • In Debian: /etc/debian_version

  • In Ubuntu: lsb_release -a or /etc/debian_version

  • In Redhat: cat /etc/redhat-release

  • In Fedora: cat /etc/fedora-release

Tamara Wijsman
  • 57,083
  • 27
  • 185
  • 256
Caterpillar
  • 573
  • 6
  • 12
33

Keep it simple!

cat /etc/*release
15

You might try this article from Novell.

If you are the owner of the system, then you know which Linux is installed and running. This article will help you to understand how to determine which Linux distribution is installed. You can incorporate this into your application to detect Linux distro.

Marcin Gil
  • 496
  • 3
  • 7
  • I already tried $ cat /etc/*release cat: /etc/*release: No such file or directory Running the mensioned script gives a result simalr to uname -a command Linux 2.6.9-42.0.3.EL.wh1smp( 2.6.9-42.0.3.EL.wh1smp i686) $ uname -a Linux qsquare.net 2.6.9-42.0.3.EL.wh1smp #1 SMP Fri Aug 14 15:48:17 MDT 2009 i686 i686 i386 GNU/Linux – Mithun Sreedharan Dec 08 '09 at 09:43
  • 6
    `cat /etc/*release` seems to work for some of the mainstream distros. I verified with Ubuntu, Mint, Red Hat, and Gentoo. – Brent Bradburn Mar 15 '12 at 19:50
  • Debian does not recognize this – Milad Naseri Aug 25 '12 at 13:07
  • The Novell solution works, at last on my RedHat 5.3. I've integrated it in my free shell lib : https://github.com/Offirmo/offirmo-shell-lib – Offirmo Nov 21 '12 at 15:51
  • @nobar: It also works with SUSE distributions: `/etc/SuSE-release` http://pastebin.com/dL5gVLQe – bwDraco Sep 21 '13 at 22:43
6

All compliant systems will have /etc/os-release which should give you information related to distribution etc

NAME=Fedora
VERSION="17 (Beefy Miracle)"
ID=fedora
VERSION_ID=17
PRETTY_NAME="Fedora 17 (Beefy Miracle)"
ANSI_COLOR="0;34"
CPE_NAME="cpe:/o:fedoraproject:fedora:17"
HOME_URL="https://fedoraproject.org/"
BUG_REPORT_URL="https://bugzilla.redhat.com/"
Yogesh
  • 163
  • 1
  • 5
3

Try one of these:

ls -ld /etc/\*release\*  /etc/\*version\*

gcc --version
slhck
  • 223,558
  • 70
  • 607
  • 592
ZaB
  • 2,429
  • 1
  • 16
  • 9
  • 1
    Can I ask you why you are refusing to use markup for code? Please indent code by four spaces, that makes it so much easier to read and distinguish. Thank you. – slhck Mar 09 '12 at 11:23
2

Use the Pre login message if it has not been edited cat /etc/issue

tread
  • 356
  • 3
  • 6
  • 21
2

Try http://legroom.net/2010/05/05/generic-method-determine-linux-or-unix-distribution-name.

A combination of techniques that combines querying the LSB utilities, distro release info files, and kernel info from uname. It'll take the most specific distro name it can find, falling back to generic Linux if necessary. It'll also identify UNIX variants as well, such as Solaris or AIX.

Tamara Wijsman
  • 57,083
  • 27
  • 185
  • 256
1

Check out this hack, that peeks at functions defined in startup scripts.

Tobu
  • 2,663
  • 19
  • 22
1

Hmm, maybe its another distro - the .EL suffix seems to be used by centos, but that's a redhat dervative. I'm also wondering what's your package management system? It might help to check whose repos you use- since these are usually vendor supplied, and distro specific

Journeyman Geek
  • 127,463
  • 52
  • 260
  • 430
0

An update here, now it is possible to use lsb_release -ds, so you can use it like linuxDistro=$(lsb_release -ds) with no extra parsing.

3manuek
  • 101
  • 2
0

The utilities neofetch and screenfetch both display your distribution name and version -- and they include some nice ASCII art. They might not be installed by default, however.

Brent Bradburn
  • 740
  • 10
  • 13
0

Based on the kernel version I'd say it's WBEL 4. They've been known to lag a bit with their updates, so it would probably be best to migrate to CentOS at your convenience.

Ignacio Vazquez-Abrams
  • 111,361
  • 10
  • 201
  • 247
0

There are several ways to find out. Here are 5 easy ones (debian-based distros):

  1. Using the lsb_release -a command. This command displays information about your distribution, including the name, version, description, and ID.

  2. Using the cat /etc/os-release command. This command displays information about your operating system, including the distribution name, version, and ID.

  3. Using the uname -a command. This command displays information about your kernel, including the kernel version.

  4. Using the cat /proc/version command. This command displays information about your kernel, including the kernel version and build.

  5. Using the hostnamectl command. This command displays information about your operating system, including the distribution name, version, and ID.

Check the Version of Your Linux Distribution

Destroy666
  • 5,299
  • 7
  • 16
  • 35
tcn
  • 1
0

Just putting the result into a var and in lowercase

OS=`awk -F= '/DISTRIB_ID/ {print tolower($2)}' /etc/lsb-release`
SergioAraujo
  • 251
  • 3
  • 6