在 Linux 系统中,判断发行版属于 RedHat 系列(如 RHEL, CentOS, Fedora)还是 Ubuntu/Debian 系列,最常用且可靠的方法是查看系统版本信息文件。
以下是几种常用的判断方法:
1. 查看 /etc/os-release 文件(推荐)
这是现代 Linux 发行版(2015 年以后发布)的标准做法,包含了标准化的版本信息。
cat /etc/os-release
如何判断:
- RedHat 系列:通常
ID字段为rhel,centos,fedora,almalinux,rocky等;或者PRETTY_NAME中包含 "Red Hat"、"CentOS"、"Fedora"。 - Ubuntu/Debian 系列:通常
ID字段为ubuntu或debian;PRETTY_NAME中包含 "Ubuntu" 或 "Debian GNU/Linux"。
示例输出对比:
RedHat 系列 (CentOS/RHEL):
NAME="Red Hat Enterprise Linux" ID="rhel" VERSION_ID="8.6"Ubuntu 系列:
NAME="Ubuntu" ID=ubuntu VERSION_ID="22.04"
2. 查看特定发行版标识文件
如果系统较老,或者想快速确认具体文件名,可以直接检查以下文件是否存在:
# 尝试读取这些文件的内容
ls -l /etc/redhat-release # RedHat 系列特有
ls -l /etc/issue # 通用,但内容不同
ls -l /etc/lsb-release # Debian/Ubuntu 特有
如何判断:
- 如果
/etc/redhat-release存在且有内容,则是 RedHat 系列。 - 如果
/etc/debian_version存在,或者是/etc/lsb-release包含DISTRIB_ID="Ubuntu",则是 Ubuntu/Debian 系列。
3. 使用包管理器命令
通过查询包管理器的类型也可以快速区分:
# 尝试运行 dpkg --version (Debian/Ubuntu)
dpkg --version
# 尝试运行 rpm -q (RedHat/CentOS/Fedora)
rpm -V kernel
如何判断:
- 如果
dpkg命令可用,通常是 Ubuntu/Debian。 - 如果
rpm命令可用(且没有提示 command not found),通常是 RedHat 系列。
(注:部分混合环境可能两者都有,需结合上述文件判断)
总结速查表
| 特征 | RedHat 系列 (RHEL, CentOS, Fedora) | Ubuntu/Debian 系列 |
|---|---|---|
核心 ID (/etc/os-release) |
rhel, centos, fedora |
ubuntu, debian |
| 特有文件 | /etc/redhat-release |
/etc/debian_version |
| 包管理器 | yum, dnf, rpm |
apt, dpkg |
| 软件仓库后缀 | .rpm |
.deb |
最简单的一行命令方案:
如果你只想看结果,可以运行:
grep "^ID=" /etc/os-release
根据输出的 ID= 后面的值即可直接定性。
CLOUD云计算