在通过 SSH 登录阿里云 ECS 实例后,判断操作系统是 CentOS 还是 Ubuntu,最直接且可靠的方法是通过查看系统版本信息。以下是几种常用且准确的命令:
1. 查看 /etc/os-release 文件(推荐)
这是最现代、最通用的方法,适用于大多数 Linux 发行版。
cat /etc/os-release
输出示例:
-
如果是 CentOS 7/8/Stream:
NAME="CentOS Linux" VERSION="7 (Core)" ID="centos" ... -
如果是 Ubuntu:
NAME="Ubuntu" VERSION="20.04.3 LTS (Focal Fossa)" ID=ubuntu ...
2. 查看 /etc/redhat-release 或 /etc/centos-release
这类文件仅存在于基于 Red Hat 的系统(如 CentOS、RHEL、Rocky Linux 等),Ubuntu 中通常不存在。
cat /etc/redhat-release
# 或
cat /etc/centos-release
- 如果输出类似
CentOS Linux release 7.9.2009 (Core),则是 CentOS。 - 如果命令返回“没有那个文件或目录”,则大概率不是 CentOS/RHEL 系,可能是 Ubuntu 或其他 Debian 系系统。
3. 使用 lsb_release 命令
需要安装 lsb-release 包(Ubuntu 默认已安装,CentOS 可能需要额外安装)。
lsb_release -a
-
Ubuntu 输出:
No LSB modules are available. Distributor ID: Ubuntu Description: Ubuntu 20.04.3 LTS Release: 20.04 Codename: focal -
CentOS 输出:
No LSB modules are available. Distributor ID: CentOS Description: CentOS Linux release 7.9.2009 (Core) Release: 7.9.2009 Codename: n/a
⚠️ 注意:如果
lsb_release命令未找到,请先运行sudo apt install lsb-release(Ubuntu)或sudo yum install redhat-lsb-core(CentOS)进行安装。
4. 查看内核版本与架构(辅助判断)
虽然不能直接区分具体发行版,但可以提供线索:
uname -r
uname -m
结合 hostnamectl 命令也可快速获取简要信息:
hostnamectl
输出中会明确显示 Operating System 字段。
✅ 总结建议
| 方法 | 适用场景 | 优点 |
|---|---|---|
cat /etc/os-release |
通用推荐 | 无需安装额外工具,信息完整 |
cat /etc/redhat-release |
快速判断是否为 RHEL/CentOS | 简单快捷,非 RHEL 系无此文件 |
lsb_release -a |
需要标准化输出时 | 格式统一,适合脚本解析 |
对于阿里云 ECS 用户,优先使用 cat /etc/os-release,因为它在所有主流 Linux 发行版中均存在且内容清晰明确。
云技术博客