Как определить дистрибутив и версию Linux?

«Как определить дистрибутив и версию Linux?» — вопрос из категории Linux, который задают на 23% собеседований Devops Инженер. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Для идентификации системы используйте комбинацию команд, проверяющих наличие специфичных для дистрибутива файлов.

1. Универсальный метод (работает на большинстве систем):

cat /etc/os-release

Этот файл стандартизирован и содержит четкие поля: NAME, VERSION, ID (например, ubuntu, centos, rhel).

2. Альтернативные команды для разных дистрибутивов:

# Для дистрибутивов на основе Debian/Ubuntu
lsb_release -a

# Для дистрибутивов на основе RedHat/CentOS/Fedora
cat /etc/redhat-release

# Проверка нескольких возможных файлов релиза
cat /etc/*-release

3. Определение версии ядра (не зависит от дистрибутива):

uname -sr
# Пример вывода: Linux 5.4.0-91-generic

4. Практический скрипт для определения системы:

#!/bin/bash
if [ -f /etc/os-release ]; then
    . /etc/os-release
    OS=$NAME
    VER=$VERSION_ID
elif type lsb_release >/dev/null 2>&1; then
    OS=$(lsb_release -si)
    VER=$(lsb_release -sr)
elif [ -f /etc/redhat-release ]; then
    OS=$(cat /etc/redhat-release | awk '{print $1}')
    VER=$(cat /etc/redhat-release | awk '{print $4}')
else
    OS=$(uname -s)
    VER=$(uname -r)
fi

echo "Operating System: $OS"
echo "Version: $VER"