Для получения версии Linux на хосте я чаще всего использую команду:
# lsb_release –a
No LSB modules are available. Distributor ID: Debian Description: Debian GNU/Linux 11 (bullseye) Release: 11 Codename: bullseye
Эта команда входит в пакет lsb-core, который по-умолчанию установлен в Ubuntu и Debian. Поэтому она не является универсальной.
В rpm дистрибутивах Linux (RHEL, CentOS, Rocky/Oracle Linux) имя дистрибутива можно узнать так:
# cat /etc/*rel*
CentOS Linux release 7.9.2009 (Core)
В менее распространённых дистрибутивах Linux можно вывести архитектуру процессора и версию ядра с помощью команда uname:
# uname -a
В выводе этой команды также содержится и версия дистрибутива Linux.
Как вы видите, для определения версии Linux в разных дистрибутивах используются разные команды.
В версиях Linux с systemd (большинство современных дистрибутивов), чтобы узнать версию ОС можно использовать универсальную команду:
$ hostnamectl
Static hostname: appubnt1 Icon name: computer-vm Chassis: vm Machine ID: xxxxxxxxxxxxxxxxxxx Boot ID: xxxxxxxxxxxxxxxxxxxxxx Virtualization: vmware Operating System: Ubuntu 22.04.1 LTS Kernel: Linux 5.15.0-56-generic Architecture: x86-64 Hardware Vendor: VMware, Inc. Hardware Model: VMware Virtual Platform
Она одинаково работает на всех платформах. Кроме того, вы сразу видите на какой платформе запущена Linux: контейнер, ВМ или железо