通过命令行如何判断阿里云服务器安装的是CentOS系统?

在阿里云服务器(或其他 Linux 系统)上,可以通过以下几种命令行方式判断是否安装的是 CentOS 系统:

1. 查看 /etc/os-release 文件(推荐,适用于 CentOS 7/8/RHEL 系列)

这是最通用且现代的方法,大多数 Linux 发行版都支持该标准。

cat /etc/os-release

CentOS 的典型输出特征:

  • NAME="CentOS Linux"(CentOS 7)或 NAME="CentOS Stream"(CentOS Stream)
  • ID="centos"ID="centos-stream"
  • PRETTY_NAME="CentOS Linux 7 (Core)"

注意:CentOS 8 已转为 CentOS Stream,若需传统稳定版可考虑 Rocky Linux 或 AlmaLinux。


2. 查看 /etc/centos-release 文件(仅适用于 CentOS 7 及更早版本)

如果系统较老(如 CentOS 6/7),该文件通常存在:

cat /etc/centos-release

典型输出示例:

CentOS Linux release 7.9.2009 (Core)

⚠️ 注意:CentOS 8 及以上版本移除了此文件,因此该方法不适用于 CentOS 8+。


3. 使用 lsb_release 命令(部分系统可能未安装)

lsb_release -a

若输出中包含 Distributor ID: CentOS,则说明是 CentOS 系统。
但需注意:某些精简版或容器环境可能未安装 lsb_release,此时会提示“command not found”。


4. 检查内核包管理器标识(辅助验证)

rpm -q centos-release

如果返回类似 centos-release-7-9.2009.el7.centos.x86_64,则确认是 CentOS 7;其他版本类似。


综合建议

  • 优先使用 cat /etc/os-release,因为它兼容性好、信息规范。
  • 若不确定,可组合多个命令交叉验证。
  • 在阿里云 ECS 实例上,这些命令均可直接通过 SSH 登录后执行。

示例完整判断脚本(安全简洁版):

if [ -f /etc/centos-release ]; then
    echo "检测到 CentOS 7 或更早版本"
    cat /etc/centos-release
elif grep -q "^ID=centos" /etc/os-release; then
    echo "检测到 CentOS 8+ 或 Stream"
    cat /etc/os-release | grep "^ID|^NAME|^PRETTY_NAME"
else
    echo "非 CentOS 系统"
fi