Как узнать, какую версию Linux я запускаю?

Есть ли способ определить, какая версия (дистрибутив и версия ядра, я полагаю) Linux работает (из командной строки), которая работает в любой Linux-системе?

191 голос | спросил Daryl Spitzer 22 J000000Wednesday09 2009, 23:20:02

8 ответов


253

Ядро обнаруживается повсеместно с помощью uname:

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

На самом деле нет способа перекрестного распространения, чтобы определить, какой дистрибутив и версия вы используете. Были попытки сделать это последовательным, но, в конечном счете, оно варьируется, к сожалению. Инструменты LSB предоставляют эту информацию, но по иронии судьбы по умолчанию не устанавливаются по умолчанию. Пример системы Ubuntu 9.04 с пакетом lsb-release:

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

В противном случае ближайший широкодоступный метод проверяет файлы /etc/something-release. Они существуют на большинстве общих платформ и на их производных (т. Е. Red Hat и CentOS).

Вот несколько примеров.

Ubuntu имеет /etc/lsb-release:

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

Но Debian имеет /etc/debian_version:

$ cat /etc/debian_version
5.0.2

Fedora, Red Hat и CentOS имеют:

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

На данный момент у меня нет системы SUSE, но я считаю, что это /etc/SuSE-release.

Slackware имеет /etc/slackware-release и /или /etc/slackware-version.

Mandriva имеет /etc/mandriva-release.

Для большинства популярных дистрибутивов,

$ cat /etc/*{release,version}

чаще всего будет работать. Устраненные и бобовые «серверные» установки могут не иметь пакет «release» для установленного дистрибутива.

Кроме того, две сторонние программы, которые вы можете использовать для автоматического получения этой информации, Ohai и Fect .

Обратите внимание, что многие дистрибутивы имеют такую ​​информацию в /etc/issue или /etc/motd, но некоторые политики безопасности и лучшие практики показывают, что эти файлы должны содержать баннеры уведомлений о доступе.

по теме: Как узнать версию пакета программного обеспечения, установленного на узле? , .

ответил jtimberman 22 J000000Wednesday09 2009, 23:34:33
38

Вы также можете попробовать:

$ cat /etc /issue

Обычно (не всегда) расскажет вам, какой дистрибутив вы используете. /etc /issue - это файл, используемый для экрана входа в систему.

ответил Pablo Santa Cruz 22 J000000Wednesday09 2009, 23:58:38
19

Ядро: uname -a

ответил raspi 22 J000000Wednesday09 2009, 23:21:27
13

lsb_release -a, когда доступно, полезно.

ответил CesarB 23 J000000Thursday09 2009, 03:48:08
13
cat /etc/os-release

как минимум для Ubuntu, Fedora и OpenSUSE.

Не работает для OS X как минимум до 10.9 (Mavericks). Вместо этого используйте sw_vers .

OpenSUSE имел cat /etc /SuSE-release до 13.1, но устарел в пользу os-release.

Redhat 6.1 имеет cat /etc /redhat-release

ответил sweetfa 3 AMpThu, 03 Apr 2014 02:56:41 +040056Thursday 2014, 02:56:41
9

cat /proc/version нашел меня Red Hat на общем VPS.

ответил iono 26 J0000006Europe/Moscow 2014, 10:59:45
4

Ядро: uname -r

Distro: lsb_release -a

Они будут работать на большинстве Linux-систем.

ответил Albert Z. 18 J0000006Europe/Moscow 2015, 20:06:13
3

Один лайнер

lsb_release -a && uname -r
ответил Serge Stroobandt 29 Jpm1000000pmMon, 29 Jan 2018 17:51:31 +030018 2018, 17:51:31

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132