在 Linux 系统中,判断发行版属于 RedHat 系列(如 RHEL, CentOS, Fedora, AlmaLinux, Rocky Linux)还是 Ubuntu/Debian 系列(如 Ubuntu, Debian, Kali),最可靠的方法是查看系统标识文件。
以下是几种常用的检测方法:
1. 查看 /etc/os-release 文件(推荐)
这是现代 Linux 发行版通用的标准文件,包含了系统的名称、版本和 ID 信息。
执行命令:
cat /etc/os-release
如何判断:
- RedHat 系列:通常
ID字段为rhel,centos,fedora,almalinux,rocky等。- 例如:
ID="rhel"或ID="centos"
- 例如:
- Ubuntu/Debian 系列:通常
ID字段为ubuntu,debian,kali等。- 例如:
ID="ubuntu"或ID="debian"
- 例如:
快捷提取 ID 的方法:
grep "^ID=" /etc/os-release
2. 查看特定的发布文件
如果系统较老或为了快速确认,可以直接读取特定于发行版的文件。
情况 A:尝试读取 RedHat 系列文件
cat /etc/redhat-release
- 有输出:说明是 RedHat 系列(会显示类似
CentOS Linux release 7.9.2009 (Core))。 - 无输出/报错:说明不是 RedHat 系列(通常是 Ubuntu 或 Debian)。
情况 B:尝试读取 Ubuntu 系列文件
cat /etc/lsb-release
- 有输出:如果看到
DISTRIB_ID=Ubuntu,则是 Ubuntu 系列。 - 注意:Debian 系列有时没有这个文件,或者内容较少。
3. 使用 hostnamectl 命令
如果系统使用了 systemd(大多数现代发行版都有),可以使用此命令查看操作系统类型:
hostnamectl
在输出中查找 Operating System 一行:
- 包含 "Red Hat"、"CentOS"、"Fedora" -> RedHat 系列
- 包含 "Ubuntu"、"Debian GNU/Linux" -> Ubuntu 系列
总结对照表
| 检查方法 | RedHat 系列特征 | Ubuntu/Debian 系列特征 |
|---|---|---|
/etc/os-release |
ID=rhel, ID=centos, ID=fedora |
ID=ubuntu, ID=debian |
/etc/redhat-release |
存在且有内容 | 不存在 (通常报错) |
/etc/lsb-release |
通常为空或无 DISTRIB_ID | 有 DISTRIB_ID=Ubuntu |
hostnamectl |
OS: CentOS Linux / RHEL … | OS: Ubuntu / Debian GNU/Linux |
结论:最通用且准确的方式是运行 grep "^ID=" /etc/os-release。如果 ID 是 ubuntu 或 debian,则为 Ubuntu 系列;如果是 rhel、centos 等其他值,则为 RedHat 系列。
云服务器