2009-07-22 19:20:02 +0000 2009-07-22 19:20:02 +0000
211
211

Wie finde ich heraus, welche Version von Linux ich verwende?

Gibt es eine Möglichkeit, herauszufinden, welche Version (Distributions- & Kernelversion, nehme ich an) von Linux läuft (von der Kommandozeile aus), die auf jedem Linux-System funktioniert?

Antworten (9)

269
269
269
2009-07-22 19:34:33 +0000

Der Kernel wird universell erkannt mit uname:

$ uname -or
2.6.18-128.el5 GNU/Linux

Es gibt wirklich keinen verteilungsübergreifenden Weg, um festzustellen, auf welcher Distribution und Version Sie sich befinden. Es hat Versuche gegeben, dies konsistent zu machen, aber letztendlich variiert es leider. LSB-Werkzeuge liefern diese Informationen, sind aber ironischerweise nicht überall standardmäßig installiert. Beispiel auf einem Ubuntu 9.04-System mit dem installierten Paket lsb-release:

$ lsb_release -irc
Distributor ID: Ubuntu
Release: 9.04
Codename: jaunty

Ansonsten ist die am nächsten liegende, weit verbreitete Methode die Überprüfung von /etc/something-release-Dateien. Diese existieren auf den meisten gängigen Plattformen und ihren Derivaten (d.h, Red Hat und CentOS).

Hier sind einige Beispiele.

Ubuntu hat /etc/lsb-release:

$ cat /etc/lsb-release
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=9.04
DISTRIB_CODENAME=jaunty
DISTRIB_DESCRIPTION="Ubuntu 9.04"

Aber Debian hat /etc/debian_version:

$ cat /etc/debian_version
5.0.2

Fedora, Red Hat und CentOS haben:

Fedora: $ cat /etc/fedora-release
Fedora release 10 (Cambridge)

Red Hat/older CentOS: $ cat /etc/redhat-release
CentOS release 5.3 (Final)

newer CentOS: $ cat /etc/centos-release
CentOS Linux release 7.1.1503 (Core)

Gentoo:

$ cat /etc/gentoo-release
Gentoo Base System release 1.12.11.1

Ich habe im Moment kein SUSE-System verfügbar, aber ich glaube, es ist /etc/SuSE-release.

Slackware hat /etc/slackware-release und/oder /etc/slackware-version.

Mandriva hat /etc/mandriva-release.

Für die meisten der populären Distributionen wird dann

$ cat /etc/*{release,version}

meistens funktionieren. Bei zerlegten und Barebones-“Server”-Installationen ist möglicherweise das ‘Release’-Paket für die Distribution nicht installiert.

Zusätzlich gibt es zwei Programme von Drittanbietern, die Sie verwenden können, um diese Informationen automatisch zu erhalten: Ohai und Facter .

Beachten Sie, dass viele Distributionen diese Art von Informationen in /etc/issue oder /etc/motd enthalten, aber einige Sicherheitsrichtlinien und bewährte Praktiken weisen darauf hin, dass diese Dateien Banner für die Zugriffsbenachrichtigung enthalten sollten.

Verwandtes Wie findet man die Version des auf dem Knoten installierten Softwarepakets heraus? puppet .

42
42
42
2009-07-22 19:58:38 +0000

Sie können auch versuchen:

$ cat /etc/issue

Normalerweise (allerdings nicht immer) erfahren Sie hier, welche Distribution Sie verwenden. /etc/issue ist die Datei, die für den Anmeldebildschirm verwendet wird.

20
20
20
2009-07-22 19:21:27 +0000

Kernel: uname -a

16
16
16
2014-04-02 22:56:41 +0000
cat /etc/os-release

mindestens für Ubuntu, Fedora und OpenSUSE.

funktioniert für OS X mindestens bis 10.9 nicht (Mavericks). Verwenden Sie stattdessen sw_vers.

OpenSUSE hatte cat /etc/SuSE-release bis 13.1, ist aber zugunsten von os-release veraltet.

Redhat 6.1 hat cat /etc/redhat-release

14
14
14
2009-07-22 23:48:08 +0000

lsb_release -a, wenn verfügbar, ist nützlich.

12
12
12
2014-06-26 06:59:45 +0000

cat /proc/version fand mich Red Hat auf einem gemeinsam genutzten VPS.

6
6
6
2015-06-18 17:06:13 +0000

Kernel: uname -r

Distro: lsb_release -a

Diese werden auf den meisten Linux-Systemen laufen

5
5
5
2018-01-29 14:51:31 +0000

Einzeiler

lsb_release -a && uname -r
1
1
1
2019-01-08 07:25:25 +0000

Dieses Problem kann auch mit * Python mit dem Modul platform gelöst werden**:

Mit der Funktion platform():

python -c 'import platform; print platform.platform()'
# Linux-4.9.0-8-amd64-x86_64-with-debian-9.6

Der obige Befehl _gibt eine einzelne Zeichenkette zurück, die die zugrundeliegende Plattform mit möglichst vielen nützlichen Informationen identifiziert. _

Oder Verwendung der Funktion uname():

python -c 'import platform; print platform.uname()'
# ('Linux', 'debian', '4.9.0-8-amd64', '#1 SMP Debian 4.9.130-2 (2018-10-27)', 'x86_64', '')

Der obige Befehl _gibt eine namedtuple() mit sechs Attributen zurück: system, node, release, version, machine, processor und dist(). _

Oder mit der Funktion &007:

python -c 'import platform; print platform.dist()'
# ('debian', '9.6', '')

Der letzte Befehl versucht, den Namen der Linux-Betriebssystemdistribution zu ermitteln, aber er ist seit Python 3.5** **depreprecated und _wird in Python 3.8** _ **entfernt.