努力
加油

通过SSH登录后如何判断阿里云ECS是CentOS还是Ubuntu?

在通过 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 发行版中均存在且内容清晰明确。