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

392714
Daryl Spitzer

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

196

8 ответов на вопрос

257
jtimberman

Ядро универсально определяется с помощью 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 

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

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

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.

Мандрива имеет /etc/mandriva-release.

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

$ cat /etc/* 

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

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

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

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

Lol здесь я думал, чтобы предложить: искать О! Ivo Flipse 15 лет назад 3
Slackware имеет / etc / slackware-версию Ken Keenan 15 лет назад 2
Спасибо, Кен, у меня нет системы Slackware. jtimberman 15 лет назад 0
IOW: ls / etc / * и изучите все, что вернется ... freiheit 15 лет назад 4
Freiheit, вы должны поместить это в отдельный ответ. Daryl Spitzer 15 лет назад 0
У Mandriva есть / etc / mandriva-release erichui 15 лет назад 0
У большинства также есть / etc / issue Drew Stephens 15 лет назад 1
@dinomite Действительно, и многие помещают эту информацию туда, но это не должно считаться окончательным, и часто используется для баннеров доступа, как я добавил к ответу ранее. jtimberman 15 лет назад 0
SuSE: `cat / etc / SuSE-release` (только что протестировано, работает) kol 6 лет назад 0
38
Pablo Santa Cruz

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

$ cat / etc / issue

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

Это единственный, который прибил его для меня на общем сервере Media Temple. Спасибо!! TryTryAgain 11 лет назад 2
Ха, на RedHat, это просто `\ S [newline] Kernel \ r на \ m` ruffin 9 лет назад 1
19
raspi

Ядро: uname -a

+1. Для подобных систем, таких как [MinGW] (http://en.wikipedia.org/wiki/MinGW), «-a» требуется для получения информации о версии, например, «MINGW32_NT-5.1 LAP065 1.0.17 (0.48 / 3/2) 2011-04-24 23:39 i686 Msys ". Peter Mortensen 12 лет назад 0
13
CesarB

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

13
sweetfa
cat /etc/os-release 

at a minimum for Ubuntu, Fedora and OpenSUSE.

Does not work for OS X at least until 10.9 (Mavericks). Use sw_vers instead.

OpenSUSE had cat /etc/SuSE-release up until 13.1 but is deprecated in favour of os-release.

Redhat 6.1 has cat /etc/redhat-release

DOC: https://www.freedesktop.org/software/systemd/man/os-release.html pevik 7 лет назад 1
9
iono

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

5
Albert Z.

Ядро: uname -r

дистрибутив: lsb_release -a

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

3
Serge Stroobandt

Один лайнер

lsb_release -a && uname -r 
Это может быть более уместным в качестве комментария к ответу Альберта З. fixer1234 6 лет назад 1
могучий ответ, чтобы заключить все ответы! Я должен поддержать за усилия :) user_balaz 6 лет назад 1

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