努力
加油

怎样确认服务器使用的是CentOS还是Ubuntu系统?

确认服务器操作系统(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),有时能推测出来。但这种方法不够直观,仅作为最后手段。


常见误区提醒

  1. “Red Hat” vs “CentOS”:
    CentOS 是 Red Hat Enterprise Linux (RHEL) 的免费社区复刻版。在 /etc/os-release 中,ID 字段会明确写 centos 而不是 rhel。不要混淆。
  2. “Aliyun Linux” / “Anolis OS”:
    国内很多云服务器(如阿里云 ECS)提供基于 CentOS 或 RHEL 优化的定制系统,例如 Alibaba Cloud Linux 或 Anolis OS。这些系统在 /etc/os-release 中的 NAME 字段会显示为 Alibaba Cloud Linux 或 OpenAnolis,但它们的核心兼容性与 CentOS/RHEL 一致,包管理也是 yum/dnf。
  3. 权限问题:
    以上所有命令都需要 root 权限或普通用户权限即可执行(查看文件内容)。如果提示 Permission denied,请用 sudo cat /etc/os-release。

总结建议

首选命令:

cat /etc/os-release | grep PRETTY_NAME

这条命令几乎在所有现代 Linux 发行版上都能快速、清晰地返回系统名称和版本,是运维中最实用的“一键诊断”命令。