在 Linux 系统中,判断发行版属于 RedHat 系列(如 RHEL, CentOS, Fedora)还是 Ubuntu/Debian 系列(如 Ubuntu, Debian),最通用且可靠的方法是查看系统版本标识文件。
以下是几种常用的判断方法:
方法一:查看 /etc/os-release(推荐)
这是现代 Linux 发行版通用的标准文件,包含了详细的操作系统信息。无论发行版新旧,通常都能找到。
执行命令:
cat /etc/os-release
如何判断:
- RedHat 系列:通常会看到
NAME="Red Hat Enterprise Linux"、ID="rhel"、ID="centos"或ID="fedora"。 - Ubuntu/Debian 系列:通常会看到
NAME="Ubuntu"、ID="ubuntu"、ID="debian"或PRETTY_NAME="Ubuntu ..."。
示例对比:
- RedHat/CentOS:
NAME="CentOS Linux" ID="centos" VERSION_ID="7" - Ubuntu:
NAME="Ubuntu" ID=ubuntu VERSION_ID="20.04"
方法二:使用 lsb_release 命令
如果系统安装了 lsb-release 包(Ubuntu 默认安装,部分 RedHat 需手动安装),可以使用此命令快速查看。
执行命令:
lsb_release -a
如何判断:
- 查看
Distributor ID字段:- 显示
Ubuntu、Debian、LinuxMint等属于 Debian 系。 - 显示
RedHatEnterpriseLinux、CentOS、Fedora等属于 RedHat 系。
- 显示
注意:如果是精简版的容器或最小化安装的 RHEL/CentOS,可能没有安装该工具。
方法三:检查特定的版本文件(传统方法)
不同系列的发行版有自己特有的版本文件,通过检测这些文件是否存在也可以快速区分。
1. 检查 RedHat 系列特有文件
cat /etc/redhat-release
# 或者
rpm -q redhat-release
- 如果能成功输出内容(如
CentOS Linux release 7.9.2009 (Core)),则是 RedHat 系列。 - 如果提示
No such file or directory,则大概率不是 RedHat 系列。
2. 检查 Ubuntu/Debian 特有文件
cat /etc/issue
- Ubuntu 的
/etc/issue通常包含 "Ubuntu" 字样。 - 或者尝试读取 Debian 系列特有的文件:
cat /etc/debian_version- 如果有内容,说明是基于 Debian 的系统(包括 Ubuntu)。
方法四:使用包管理器类型判断(辅助验证)
不同的系列使用不同的包管理器和扩展名:
-
RedHat 系列:
- 包格式:
.rpm - 命令:
yum,dnf,rpm - 测试:
which dnf或which yum
- 包格式:
-
Ubuntu/Debian 系列:
- 包格式:
.deb - 命令:
apt,apt-get,dpkg - 测试:
which apt或which dpkg
- 包格式:
总结结论
| 特征 | RedHat 系列 (RHEL, CentOS, Fedora) | Ubuntu/Debian 系列 (Ubuntu, Debian) |
|---|---|---|
| 核心文件 | /etc/redhat-release |
/etc/issue (含 Ubuntu) |
| os-release ID | rhel, centos, fedora |
ubuntu, debian |
| 包管理器 | dnf / yum (.rpm) |
apt / dpkg (.deb) |
| 典型输出 | CentOS Linux 7... |
Ubuntu 20.04 LTS |
最快的一行命令建议:
grep "^ID=" /etc/os-release
根据输出的 ID 值即可一目了然。
云知识CLOUD