确认服务器操作系统(OS)其实非常简单,不需要登录图形界面,通过命令行就能瞬间判断。无论是 CentOS 还是 Ubuntu,底层都是 Linux,但它们的发行版标识文件不同。
以下是几种最常用、最稳妥的确认方法,按推荐程度排序:
方法一:查看版本信息文件(最准确)
这是最标准、最不会出错的方法。Linux 系统通常在 /etc/ 目录下存放了详细的版本标识文件。
1. 尝试读取 os-release 文件(通用性最强)
现代大多数 Linux 发行版(包括 CentOS 7+、Ubuntu 16.04+)都遵循 Freedesktop.org 的标准,使用 /etc/os-release 文件。
cat /etc/os-release
输出示例解读:
- 如果是 CentOS,你会看到:
NAME="CentOS Linux" VERSION="7 (Core)" ID="centos" PRETTY_NAME="CentOS Linux 7 (Core)" - 如果是 Ubuntu,你会看到:
NAME="Ubuntu" VERSION="20.04.5 LTS (Focal Fossa)" ID=ubuntu PRETTY_NAME="Ubuntu 20.04.5 LTS"
2. 尝试读取 issue 文件(传统方法)
如果系统较老或配置特殊,可以查看 /etc/issue 或 /etc/issue.net。
cat /etc/issue
- CentOS 通常显示:
CentOS release 6.10 (Final)或类似字样。 - Ubuntu 通常显示:
Ubuntu 18.04.5 LTS n l。
方法二:使用 lsb_release 命令(简洁明了)
lsb_release 是一个专门用于显示 LSB(Linux Standard Base)信息的工具。注意:某些精简版的云服务器镜像可能默认未安装此命令,如果提示 command not found,请使用方法一。
lsb_release -a
输出示例:
- CentOS:
Distributor ID: CentOS Description: CentOS release 6.10 (Final) Release: 6.10 Codename: Final - Ubuntu:
No LSB modules are available. Distributor ID: Ubuntu Description: Ubuntu 20.04.5 LTS Release: 20.04 Codename: focal
技巧:如果你只关心名字,可以用
lsb_release -i;只关心版本号,用lsb_release -r。
方法三:通过包管理器推断(辅助判断)
不同发行版使用不同的软件包管理器,这也能间接反映系统类型。
-
CentOS/RHEL/Fedora 系列:主要使用
yum或dnf。yum --version # 或者 dnf --version如果能执行,大概率是 CentOS、RHEL 或 Fedora。
-
Ubuntu/Debian 系列:主要使用
apt或apt-get。apt --version # 或者 apt-get --version如果能执行,大概率是 Ubuntu 或 Debian。
注意:这只是辅助判断,因为有些用户可能在 CentOS 上安装了 apt,或在 Ubuntu 上编译安装了 yum,所以不如前两种方法可靠。
方法四:检查内核版本与架构(终极兜底)
如果上述文件都被删除或损坏(极端情况),可以看内核信息:
uname -a
虽然这个命令不直接告诉你“我是 CentOS”,但它会显示内核版本和主机名。结合你已知的服务器用途(比如是否预装了特定的云监控 Agent),有时能推测出来。但这种方法不够直观,仅作为最后手段。
常见误区提醒
- “Red Hat” vs “CentOS”:
CentOS 是 Red Hat Enterprise Linux (RHEL) 的免费社区复刻版。在/etc/os-release中,ID 字段会明确写centos而不是rhel。不要混淆。 - “Aliyun Linux” / “Anolis OS”:
国内很多云服务器(如阿里云 ECS)提供基于 CentOS 或 RHEL 优化的定制系统,例如 Alibaba Cloud Linux 或 Anolis OS。这些系统在/etc/os-release中的NAME字段会显示为Alibaba Cloud Linux或OpenAnolis,但它们的核心兼容性与 CentOS/RHEL 一致,包管理也是yum/dnf。 - 权限问题:
以上所有命令都需要 root 权限或普通用户权限即可执行(查看文件内容)。如果提示Permission denied,请用sudo cat /etc/os-release。
总结建议
首选命令:
cat /etc/os-release | grep PRETTY_NAME
这条命令几乎在所有现代 Linux 发行版上都能快速、清晰地返回系统名称和版本,是运维中最实用的“一键诊断”命令。
云技术博客