Skip to main content
Home
Legroom.net
User account menu
  • Log in

Breadcrumb

  1. Home

Generic Method to Determine Linux (or UNIX) Distribution Name

By jbreland , 5 May 2010
A while back I had a need to programmatically determine the which Linux distribution is running in order to have some scripts do the right thing depending on the distro. Unfortunately, there doesn't appear to be one completely foolproof method to do so. What I ended up coming up with was 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. Here's the code: # Determine OS platform UNAME=$(uname | tr "[:upper:]" "[:lower:]") # If Linux, try to determine specific distribution if [ "$UNAME" == "linux" ]; then     # If available, use LSB to identify distribution     if [ -f /etc/lsb-release -o -d /etc/lsb-release.d ]; then         export DISTRO=$(lsb_release -i | cut -d: -f2 | sed s/'^\t'//)     # Otherwise, use release info file     else         export DISTRO=$(ls -d /etc/[A-Za-z]*[_-][rv]e[lr]* | grep -v "lsb" | cut -d'/' -f3 | cut -d'-' -f1 | cut -d'_' -f1)     fi fi # For everything else (or if above failed), just use generic identifier [ "$DISTRO" == "" ] && export DISTRO=$UNAME unset UNAME I include this code in my ~/.bashrc file so that it always runs when I login and sets the $DISTRO variable to the appropriate distribution name. I can then use that variable at any later time to perform actions based on the distro. If preferred, this could also easily be adapted into a function by having it return instead of export $DISTRO. I've tested this on a pretty wide range of Linux and UNIX distributions, and it works very well for me, so I figured I'd share it. Hope you find it useful.

Navigation

  • Home
  • Miscellaneous
  • Software
  • Tips and Tricks
Color theme

All logos, trademarks, and comments on this site are property of their respective owner. 
All other content is ©2025 by Jared Breland and licensed under CC BY-SA 4.0. 
This website is syndicated with an RSS 2.0 newsfeed.  Syndicate content