检测你正在使用的基于 systemd 的分发
此方法适用于现代版本的 Arch,CentOS,CoreOS,Debian,Fedora,Mageia,openSUSE,Red Hat Enterprise Linux,SUSE Linux Enterprise Server,Ubuntu 等。这种广泛的适用性使其成为第一种方法的理想选择,如果你还需要识别旧系统,则可以回退到其他方法。
看看/etc/os-release
。具体来说,看看变量 NAME
,VERSION
,ID
,VERSION_ID
和 PRETTY_NAME
。
在 Fedora 上,此文件可能如下所示:
NAME=Fedora
VERSION="24 (Workstation Edition)"
ID=fedora
VERSION_ID=24
PRETTY_NAME="Fedora 24 (Workstation Edition)"
ANSI_COLOR="0;34"
CPE_NAME="cpe:/o:fedoraproject:fedora:24"
HOME_URL="https://fedoraproject.org/"
BUG_REPORT_URL="https://bugzilla.redhat.com/"
REDHAT_BUGZILLA_PRODUCT="Fedora"
REDHAT_BUGZILLA_PRODUCT_VERSION=24
REDHAT_SUPPORT_PRODUCT="Fedora"
REDHAT_SUPPORT_PRODUCT_VERSION=24
PRIVACY_POLICY_URL=https://fedoraproject.org/wiki/Legal:PrivacyPolicy
VARIANT="Workstation Edition"
VARIANT_ID=workstation
在 CentOS 上,此文件可能如下所示:
NAME="CentOS Linux"
VERSION="7 (Core)"
ID="centos"
ID_LIKE="rhel fedora"
VERSION_ID="7"
PRETTY_NAME="CentOS Linux 7 (Core)"
ANSI_COLOR="0;31"
CPE_NAME="cpe:/o:centos:centos:7"
HOME_URL="https://www.centos.org/"
BUG_REPORT_URL="https://bugs.centos.org/"
CENTOS_MANTISBT_PROJECT="CentOS-7"
CENTOS_MANTISBT_PROJECT_VERSION="7"
REDHAT_SUPPORT_PRODUCT="centos"
REDHAT_SUPPORT_PRODUCT_VERSION="7"
该文件记录在 freedesktop 网站上 ; 原则上,它不是特定于系统的 - 但它将存在于所有基于 systemd 的发行版中。
从 bash shell 中,可以获取/etc/os-release
文件,然后直接使用各种变量,如下所示:
$ ( source /etc/os-release && echo "$PRETTY_NAME" )
Fedora 24 (Workstation Edition)