On a typical Ubuntu system, /etc/issue contains
Ubuntu 22.04.1 LTS \n \l
so cat /etc/issue tells you all you need to know. On Fedora/Rocky (and presumably
RHEL, but I'm not wealthy enough to test), it contains
\S
Kernel \r on an \m (\l)
which is not much help. What does \S expand to?
The information you want is in /etc/os-release. For example
NAME="Fedora Linux"
VERSION="38 (KDE Plasma)"
ID=fedora
VERSION_ID=38
VERSION_CODENAME=""
PLATFORM_ID="platform:f38"
PRETTY_NAME="Fedora Linux 38 (KDE Plasma)"
ANSI_COLOR="0;38;2;60;110;180"
LOGO=fedora-logo-icon
CPE_NAME="cpe:/o:fedoraproject:fedora:38"
DEFAULT_HOSTNAME="fedora"
HOME_URL="https://fedoraproject.org/"
DOCUMENTATION_URL="https://docs.fedoraproject.org/en-US/fedora/f38/system-administrators-guide/"
SUPPORT_URL="https://ask.fedoraproject.org/"
BUG_REPORT_URL="https://bugzilla.redhat.com/"
REDHAT_BUGZILLA_PRODUCT="Fedora"
REDHAT_BUGZILLA_PRODUCT_VERSION=38
REDHAT_SUPPORT_PRODUCT="Fedora"
REDHAT_SUPPORT_PRODUCT_VERSION=38
SUPPORT_END=2024-05-14
VARIANT="KDE Plasma"
VARIANT_ID=kde
So we know this is fedora. Note that we can source this as a shell script. Then we can do for example
( . /etc/os-release; echo "$PRETTY_NAME"; )
or even define
os_detail() { ( . /etc/os-release; echo "${!1}"; ); }
so that we can do
os_detail NAME
to get the os name.