如何识别 Linux 系统的发行版系列
在 Linux 系统中,识别发行版系列(如 Debian/Ubuntu、RHEL/CentOS、Arch、SUSE 等)可通过以下命令快速完成,按优先级排序:
1. 通用方法(推荐)
/etc/os-release 文件(最标准)
cat /etc/os-release
输出关键字段:
-
ID:发行版基础名称(如ubuntu、centos、debian) -
ID_LIKE:派生关系(如 Ubuntu 会显示ID_LIKE=debian) -
PRETTY_NAME:完整发行版名称
示例判断:
grep -E "^ID=|^ID_LIKE=" /etc/os-release
# Ubuntu 输出:ID=ubuntu \n ID_LIKE=debian
# CentOS 输出:ID=centos \n ID_LIKE="rhel fedora"
2. 发行版专属文件
| 发行版系列 | 检测文件 | 命令示例 |
|---|---|---|
| Debian/Ubuntu | /etc/debian_version |
cat /etc/debian_version |
| RHEL/CentOS | /etc/redhat-release |
cat /etc/redhat-release |
| Fedora | /etc/fedora-release |
cat /etc/fedora-release |
| SUSE | /etc/SuSE-release |
cat /etc/SuSE-release |
| Arch Linux | /etc/arch-release |
test -f /etc/arch-release && echo "Arch" |
3. 包管理器检测
# 检查包管理工具
command -v apt >/dev/null && echo "Debian/Ubuntu"
command -v yum >/dev/null && echo "RHEL/CentOS 7"
command -v dnf >/dev/null && echo "RHEL/CentOS 8+/Fedora"
command -v pacman >/dev/null && echo "Arch Linux"
command -v zypper >/dev/null && echo "SUSE"
4. 综合命令(一键识别)
awk -F= '/^ID(_LIKE)?=/{gsub("\"","");print $2}' /etc/os-release | head -n1
输出结果:
-
debian→ Debian/Ubuntu 系 -
rhel→ RHEL/CentOS/Fedora 系 -
arch→ Arch Linux -
opensuse→ SUSE
5. 内核信息辅助判断
uname -a # 查看内核版本(辅助验证)
hostnamectl # Systemd 系统信息(显示 Operating System)
各发行版特征总结
| 发行版系列 | 关键标识文件 | 包管理工具 | 服务管理 |
|---|---|---|---|
| Debian/Ubuntu | /etc/debian_version |
apt |
systemctl |
| RHEL/CentOS | /etc/redhat-release |
yum/dnf |
systemctl |
| Fedora | /etc/fedora-release |
dnf |
systemctl |
| Arch Linux | /etc/arch-release |
pacman |
systemctl |
| SUSE | /etc/SuSE-release |
zypper |
systemctl |
使用场景建议
-
脚本中判断:优先用
/etc/os-release(最可靠) -
快速人工确认:检查专属文件(如
/etc/centos-release) -
最小化系统:结合包管理器和
uname综合判断
通过以上方法,可准确识别 99% 的 Linux 发行版系列。
郭慕荣博客园

浙公网安备 33010602011771号