it-swarm.com.de

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

Gibt es eine Möglichkeit, festzustellen, welche Linux-Version (Distribution & Kernel-Version, nehme ich an) (von der Befehlszeile aus) auf einem beliebigen Linux-System ausgeführt wird?

204
Daryl Spitzer

Der Kernel wird allgemein mit uname erkannt:

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

Es gibt wirklich keine verteilungsübergreifende Methode, um festzustellen, auf welcher Distribution und Version Sie sich befinden. Es gab Versuche, dies zu vereinheitlichen, aber letztendlich variiert es leider. LSB-Tools liefern diese Informationen, sind jedoch ironischerweise nicht überall standardmäßig installiert. Beispiel auf einem Ubuntu 9.04-System mit installiertem lsb-release-Paket:

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

Andernfalls überprüft die am besten verfügbare Methode /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 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 am häufigsten funktionieren. Bei abgespeckten "Server" -Installationen und Barebones-Installationen ist möglicherweise nicht das "Release" -Paket für die Distribution installiert.

Darüber hinaus gibt es 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 enthalten. Einige Sicherheitsrichtlinien und Best Practices weisen jedoch darauf hin, dass diese Dateien Banner für Zugriffsbenachrichtigungen enthalten sollten.

Verwandte: Wie finde ich heraus, welche Version des Softwarepakets auf dem Knoten installiert ist? , Marionette .

264
jtimberman

Sie könnten auch versuchen:

$ cat /etc/issue

In der Regel (jedoch nicht immer) erfahren Sie, welche Distribution Sie verwenden. /etc/issue ist die Datei, die für den Anmeldebildschirm verwendet wird.

39

Kernel: uname -a

20
raspi
cat /etc/os-release

mindestens für Ubuntu, Fedora und OpenSUSE.

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

OpenSUSE hatte cat/etc/SuSE-release bis 13.1, wird jedoch zugunsten von os-release nicht mehr weiterentwickelt.

Redhat 6.1 hat cat/etc/redhat-release

15
sweetfa

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

14
CesarB

cat /proc/version hat mich auf einem freigegebenen VPS gefunden.

12
iono

Kernel: uname -r

Distribution: lsb_release -a

Diese laufen auf den meisten Linux-Systemen

6
Albert Z.

Einzeiler

lsb_release -a && uname -r
5

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

Verwenden 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 einen einzelnen String zurück, der die zugrunde liegende Plattform mit möglichst vielen nützlichen Informationen identifiziert.

Oder mit 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 und processor

Oder mit der Funktion dist():

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

Der letzte Befehl versucht, den Namen der Linux-Distribution zu ermitteln, aber er lautetseit Python 3.5 veraltetund wird entfernt in Python 3.8 .

1
simhumileco