The UNIX and Linux Forums  

Go Back   The UNIX and Linux Forums > Top Forums > Shell Programming and Scripting
Google UNIX.COM


Shell Programming and Scripting Post questions about KSH, CSH, SH, BASH, PERL, PHP, SED, AWK and OTHER shell scripts here.

More UNIX and Linux Forum Topics You Might Find Helpful
Thread Thread Starter Forum Replies Last Post
What Linux distribution should I use? Sixmax UNIX for Dummies Questions & Answers 7 05-27-2008 10:27 PM
Distribution Release: rPath Linux 2.0 iBot Software Releases - RSS News 0 05-15-2008 11:20 PM
Distribution Release: X/OS Linux 5.1 iBot UNIX and Linux RSS News 0 02-02-2008 07:40 AM
Distribution Release: UHU-Linux 2.1 iBot UNIX and Linux RSS News 0 02-01-2008 04:10 PM
How to know which Linux Distribution i am using BasavarajaKC UNIX for Dummies Questions & Answers 3 06-02-2006 05:00 AM

Reply
 
Submit Tools LinkBack Thread Tools Search this Thread Display Modes
  #1  
Old 06-02-2006
Registered User
 

Join Date: Jun 2006
Posts: 6
How to know which Linux Distribution i am using ?

Hi,

I m working on many Linux servers in my project. But i am unable to know which Linux Distribution i am using Like whether i am using SUSE or REDHAT or MONDRAKE. I tried with "uname" command. But it does not help me. Please provide me the command if u know.

Regards,
Basavaraja KC
Reply With Quote
Forum Sponsor
  #2  
Old 06-02-2006
Jariya's Avatar
Registered User
 

Join Date: May 2005
Location: Madrid, Spain
Posts: 29
have you typed "uname -a" ? i can see what darwin im using... :/
Reply With Quote
  #3  
Old 06-02-2006
Registered User
 

Join Date: Jun 2006
Posts: 6
already tried with uname -a

But its giving only "Linux", not which distribution of Linux.

Please any body help on this.
Reply With Quote
  #4  
Old 06-02-2006
tayyabq8's Avatar
Moderator
 

Join Date: Nov 2004
Location: Bahrain
Posts: 555
try
Code:
cat /etc/issue
Following are the info files for different distributions:
Code:
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
Regards,
Tayyab
Reply With Quote
  #5  
Old 06-07-2006
Jariya's Avatar
Registered User
 

Join Date: May 2005
Location: Madrid, Spain
Posts: 29
An alternative way... i found by luck this file. here u can see the distribution but i dont know if its on all systems. At least its in Debian...

/proc/version

anyone ones if this file is a linux standard? because Darwin doesnt use /proc.
thx
Reply With Quote
  #6  
Old 07-04-2008
Registered User
 

Join Date: Jul 2008
Posts: 4
whichNix

Found this old thread while researching. I come up against this problem often in a very heterogeneous network I admin. Barring us deploying Puppet or a similar solution (someday), I need a fix. There is no canonical way to determine distro so this script is a hack around. It works (gives a best guess) on slack, suse, rh, centOS, ubuntu, solaris, and a couple of other proprietary systems we use.

Comment, suggest, port, test, change, flame.
Code:
#! /bin/bash
# return an awkable string consisting of
#    unix OS type, or
#    Linux dist, or
#    a long guess (based on /proc), or
#    no clue

giveUp () {
   echo "Unknown"
   exit 0
}

# keep this easily awkable, prepending an initial clue
versionGuess () {
   if [ -e /proc/version ]; then
      echo -n "Unsure "
      cat /proc/version
      exit 0
   fi
   return 1
}

# if we have ignition, print and exit
gotDist () {
   [ -n "$1" ] && echo "$1" && exit 0
}

# we are only interested in a single word "dist" here
# various malformations can occur; admin will have to code appropately based on output
linuxRelease () {
   if [ -r /etc/lsb-release ]; then
      dist=$(grep 'DISTRIB_ID' /etc/lsb-release | sed 's/DISTRIB_ID=//' | head -1)
      gotDist "$dist"
   fi

   dist=$(find /etc/ -maxdepth 1 -name '*release' 2> /dev/null | sed 's/\/etc\///' | sed 's/-release//' | head -1)
   gotDist "$dist"

   dist=$(find /etc/ -maxdepth 1 -name '*version' 2> /dev/null | sed 's/\/etc\///' | sed 's/-version//' | head -1)
   gotDist "$dist"

   return 1
}

# start with uname and branch the decision from there
dist=$(uname -s 2> /dev/null)
if [ "$dist" = "Linux" ]; then
   linuxRelease
   versionGuess
   giveUp
elif [ -n "$dist" ]; then
   echo "$dist"
   exit 0
else
   versionGuess
   giveUp
fi

# we shouldn't get here
giveUp
# done
Reply With Quote
Google The UNIX and Linux Forums
Reply

Tags
linux, solaris, ubuntu

Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes




All times are GMT -7. The time now is 12:35 AM.


Powered by: vBulletin, Copyright ©2000 - 2006, Jelsoft Enterprises Limited.
The UNIX and Linux Forums Content Copyright ©1993-2008. All Rights Reserved.Ad Management by RedTyger Visit The Complex Event Processing Blog

Content Relevant URLs by vBSEO 3.2.0