Query what Linux/Unix distribution you're using (from the command-line) [duplicate]

When using an unfamiliar Linux/BSD/Unix computer (e.g. by SSH) from the command line, how can you tell what distribution (and what version of that distribution) you're using?

Some options I've tried:

  • lsb_release --all: doesn't exist on OpenSuSE 11.3; works on Debian squeeze and Ubuntu 10.10.
  • uname --all: doesn't give distro information on SuSE and Debian; works in Ubuntu.
  • cat /etc/apt/sources.list in you can see which distribution's servers the machine connects to for updates. Obviously, only works for Debian-based distributions. Won't work if the computer has been configured to use a custom repository server.

Unfortunately none of these seem to work across many distributions. Is there a simple command to check?


Solution 1:

If Python 2.3 or later is installed, this will work with many distributions:

python -c "import platform; print platform.dist()"

Solution 2:

cat /proc/version

might do the trick.

Solution 3:

There is no one magic command that works across all distributions - you will need to try a series of things to work out an answer.

Things to try include some you have done, like lsb_release, and others that you haven't like looking at /etc/redhat-release, /etc/fedora-release, etc.