GNU/Linux 检测您正在使用哪种基于systemd的发行版
示例
此方法适用于Arch,CentOS,CoreOS,Debian,Fedora,Mageia,openSUSE,RedHatEnterpriseLinux,SUSELinuxEnterpriseServer,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的,而是将存在于所有基于systemd的发行版中。
在bashshell中,可以获取/etc/os-release文件,然后直接使用各种变量,如下所示:
$ ( source /etc/os-release && echo "$PRETTY_NAME" ) Fedora 24 (Workstation Edition)