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

Gibt es eine Möglichkeit zu bestimmen, welche Version (Distribution & Kernel-Version, nehme ich an) von Linux ausgeführt wird (über die Befehlszeile), die auf jedem Linux-System funktioniert?

Author: Breakthrough, 2009-07-22

9 answers

Der Kernel wird universell erkannt mit uname:

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

Es gibt wirklich keinen Cross-Distribution-Weg, um zu bestimmen, auf welcher Distribution und Version Sie sich befinden. Es gab Versuche, dies konsistent zu machen, aber letztendlich variiert es leider. LSB-Tools liefern diese Informationen, sind aber ironischerweise nicht standardmäßig überall installiert. Beispiel auf einem Ubuntu 9.04-System mit installiertem lsb-release - Paket:

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

Ansonsten ist die nächste weit verbreitete Methode überprüfen von /etc/something-release Dateien. Diese existieren auf den meisten gängigen Plattformen und auf 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 derzeit kein SUSE-System zur Verfügung, 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 populären Distributionen dann

$ cat /etc/*{release,version}

Wird meistens funktionieren. Abgespeckte und Barebone "Server" - Installationen haben möglicherweise nicht das 'Release' - Paket für die Distribution installiert.

Zusätzlich sind zwei Programme von Drittanbietern, mit denen Sie diese Informationen automatisch abrufen können, Ohai und Facter.

Beachten Sie, dass viele Distributionen diese Art von Informationen in /etc/issue oder /etc/motd, aber einige Sicherheitsrichtlinien und Best Practices weisen darauf hin, dass diese Dateien Zugriffsbanner enthalten sollten.

Related: Wie finde ich die Version des auf dem Knoten installierten Softwarepakets heraus?, Marionette.

 271
Author: jtimberman,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2017-05-23 12:41:35

Sie könnten auch versuchen:

$ cat /etc/issue

Es wird Ihnen normalerweise (nicht immer) sagen, welche Distribution Sie verwenden. /etc/issue ist die Datei, die für den Anmeldebildschirm verwendet wird.

 45
Author: Pablo Santa Cruz,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2019-01-08 08:08:29

Kernel: uname -a

 20
Author: raspi,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2009-07-22 19:21:27
cat /etc/os-release

Mindestens für Ubuntu, Fedora und openSUSE.

Funktioniert nicht für OS X, mindestens bis 10.9 (Mavericks). Verwenden sw_vers statt.

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

Redhat 6.1 hat cat /etc/redhat-release

 16
Author: sweetfa,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2017-03-09 13:05:15

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

 14
Author: CesarB,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2009-07-22 23:48:08

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

 12
Author: iono,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2014-06-26 06:59:45

Kernel: uname -r

Distribution: lsb_release -a

Diese werden auf den meisten Linux-Systemen ausgeführt

 6
Author: Albert Z.,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2015-06-18 17:06:13

Einzeiler-

lsb_release -a && uname -r
 5
Author: Serge Stroobandt,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2020-06-12 13:48:39

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

Mit platform() Funktion:

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 Zeichenfolge zurück, die die zugrunde liegende Plattform mit so vielen nützlichen Informationen wie möglich identifiziert.

Oder mit uname() Funktion:

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 ein namedtuple() zurück, das sechs Attribute enthält: system, node, release, version, machine, und processor.

Oder verwenden der Funktion dist():

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

Der letzte Befehl versucht, den Namen der Linux-Distribution Name zu bestimmen, aber es ist veraltet seit Python 3.5 und wird in Python entfernt 3.8.

 2
Author: simhumileco,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2019-01-08 08:35:06