У Linux-системы две разные «версии»: версия ядра и версия дистрибутива. Ядро общее для всех дистрибутивов, а Ubuntu, Debian, Fedora или Rocky Linux - это сборки вокруг него со своими номерами выпусков. Для установки программ обычно нужна версия дистрибутива, для драйверов и диагностики - версия ядра.

Версия дистрибутива

Самый надёжный способ, работающий почти везде:

bash
cat /etc/os-release

Вывод выглядит так (в угловых скобках - то, что будет у вашей системы):

text
PRETTY_NAME="<Название> <версия>"
NAME="<Название>"
VERSION_ID="<версия>"
VERSION="<версия> (<кодовое имя>)"
VERSION_CODENAME=<кодовое имя>
ID=<идентификатор дистрибутива>
ID_LIKE=<семейство, например debian>

Строка PRETTY_NAME - название для человека, VERSION_ID - номер выпуска, ID_LIKE - семейство, к которому относится дистрибутив. Последнее полезно, когда инструкция написана для Debian или RHEL, а у вас производный дистрибутив.

В системах с systemd то же самое и немного больше покажет:

bash
hostnamectl

В выводе есть строки Operating System, Kernel и Architecture, то есть сразу дистрибутив, ядро и разрядность.

Команда lsb_release знакома по старым инструкциям:

bash
lsb_release -a

Она есть не во всех системах: в некоторых дистрибутивах её нужно ставить отдельным пакетом. Если команда не найдена, используйте /etc/os-release.

Файлы конкретных семейств

В некоторых дистрибутивах есть свои файлы с версией:

bash
cat /etc/debian_version   # Debian и производные
cat /etc/redhat-release   # RHEL, Rocky Linux, AlmaLinux, Fedora
cat /etc/alpine-release   # Alpine Linux

Если не знаете, что за система перед вами, выведите все такие файлы разом:

bash
cat /etc/*release

В Ubuntu файл /etc/debian_version показывает версию Debian, на которой основан выпуск, а не номер самой Ubuntu. Не путайте.

Версия ядра

Микросхема в центре и линии к диску, сети и памяти

bash
uname -r

Вывод вида X.Y.Z-NN-generic: первые три числа (X.Y.Z) - версия ядра, дальше - номер сборки дистрибутива и вариант ядра.

Полная информация:

bash
uname -a

Здесь имя компьютера, версия и дата сборки ядра, архитектура. Ещё один источник - файл /proc/version, где также указан компилятор, которым собрано ядро.

Установленные, но не загруженные ядра (например, после обновления без перезагрузки) показывают пакетные менеджеры:

bash
dpkg --list | grep linux-image  # Debian, Ubuntu
rpm -q kernel                   # RHEL и родственные

Если установлено ядро новее, чем показывает uname -r, система ждёт перезагрузки.

Разрядность и архитектура

bash
uname -m
  • x86_64 - 64-разрядная система на процессорах Intel и AMD;
  • i686 или i386 - 32-разрядная;
  • aarch64 - 64-разрядная ARM (одноплатные компьютеры, серверы на ARM, компьютеры с ARM-процессорами);
  • armv7l - 32-разрядная ARM.

Другие способы:

bash
getconf LONG_BIT             # 32 или 64
dpkg --print-architecture    # amd64, arm64, i386 (Debian, Ubuntu)

Последняя команда показывает архитектуру пакетов, и именно её нужно знать, когда скачиваете .deb вручную.

В контейнере и на удалённом сервере

В Docker-контейнере uname -r покажет ядро хост-системы: у контейнера нет своего ядра. Версию образа при этом покажет /etc/os-release внутри контейнера.

На удалённой машине команду можно выполнить сразу через SSH:

bash
ssh user@server 'cat /etc/os-release; uname -r'

Графический способ

В большинстве окружений рабочего стола версия есть в настройках: в GNOME - «Настройки» → «О системе», в KDE Plasma - «Параметры системы» → «О системе» (или программа «Информация о системе»). Там же обычно указаны ядро и разрядность.