努力
加油

如何在CentOS和Ubuntu系统中查看系统版本信息?

在 Linux 运维和开发中,确认系统版本是排查问题、安装软件或配置环境的第一步。虽然 CentOS 和 Ubuntu 都属于 Debian/RedHat 系的大类,但它们的包管理器和文件系统结构不同,查看方式也有细微差别。

以下是最常用、最可靠的方法,按推荐程度排序:

一、 CentOS 系列(包括 CentOS Stream, Rocky Linux, AlmaLinux)

CentOS 基于 RHEL(Red Hat Enterprise Linux),其核心标识文件通常位于 /etc/ 目录下。

1. 最推荐:cat /etc/os-release

这是目前最标准、兼容性最好的方法,适用于几乎所有现代 Linux 发行版(包括较新的 CentOS 7+ 和所有主流发行版)。

cat /etc/os-release

输出示例:

NAME="CentOS Linux"
VERSION="7 (Core)"
ID="centos"
ID_LIKE="rhel fedora"
VERSION_ID="7"
PRETTY_NAME="CentOS Linux 7 (Core)"
...

重点看 PRETTY_NAME 和 VERSION_ID。

2. 传统方法:cat /etc/redhat-release

如果系统是较老的 CentOS 6 或更早版本,或者你只想快速看一眼主版本号,这个命令最直接。

cat /etc/redhat-release

输出示例:

CentOS Linux release 7.9.2009 (Core)

3. 通用内核信息:uname -a

如果你需要知道的是内核版本而不是发行版版本(比如调试驱动问题时),用这个。

uname -r

注意:uname 显示的是内核版本(如 3.10.0-1160.el7.x86_64),不是操作系统版本(如 CentOS 7.9)。两者不要混淆。


二、 Ubuntu 系列(包括 Debian, Linux Mint 等)

Ubuntu 基于 Debian,其版本信息存储在 /etc/lsb-release 和 /etc/os-release 中。

1. 最推荐:cat /etc/os-release

同上,这是跨发行版的黄金标准。

cat /etc/os-release

输出示例:

NAME="Ubuntu"
VERSION="22.04.3 LTS (Jammy Jellyfish)"
ID=ubuntu
ID_LIKE=debian
PRETTY_NAME="Ubuntu 22.04.3 LTS"
...

2. Ubuntu 特有:lsb_release -a

这是 Debian/Ubuntu 系特有的命令,需要安装 lsb-release 包(默认已装)。它能提供更友好的格式化输出。

lsb_release -a

输出示例:

No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 22.04.3 LTS
Release:        22.04
Codename:       jammy

提示:Release 字段就是你要找的版本号(如 22.04),Codename 是代号(如 jammy),对某些依赖特定代号的软件很有用。

3. 快速查看:hostnamectl

如果你安装了 systemd(现代 Linux 都默认有),这个命令可以一次性看到主机名、操作系统和内核信息。

hostnamectl

输出示例:

   Static hostname: ubuntu-server
         Icon name: computer-vm
           Chassis: vm
        Machine ID: abc123def456
           Boot ID: xyz789
  Operating System: Ubuntu 22.04.3 LTS
            Kernel: Linux 5.15.0-91-generic
      Architecture: x86-64

三、 避坑指南 & 常见问题

  1. 为什么不用 cat /etc/issue?

    • 这个文件通常是登录前的欢迎信息,可能被自定义修改过,不一定反映真实系统版本。不推荐作为依据。
  2. CentOS 7 vs CentOS 8/Stream:

    • CentOS 7 仍使用 yum,而 CentOS 8 及以后(包括 Stream)转向 dnf。但查看版本的命令不变。
    • 如果你看到 VERSION_ID="8" 或 "9",说明是较新版本;如果是 7,则是经典版。
  3. 云服务器场景(阿里云/腾讯云/AWS):

    • 云厂商的镜像可能经过裁剪,某些工具(如 lsb_release)可能未预装。此时 cat /etc/os-release 是最稳妥的选择,因为它是 systemd 的一部分,几乎不会缺失。
  4. 如何判断是 32 位还是 64 位?

    • 使用 arch 或 uname -m:
      uname -m
      # 输出 x86_64 表示 64 位
      # 输出 i686/i386 表示 32 位

总结

系统类型 最推荐命令 备用命令 关键输出字段
CentOS/RHEL cat /etc/os-release cat /etc/redhat-release PRETTY_NAME, VERSION_ID
Ubuntu/Debian cat /etc/os-release lsb_release -a PRETTY_NAME, Release

一句话建议:不管什么系统,先试 cat /etc/os-release,99% 的情况都能搞定。