努力
加油

如何查看当前Ubuntu Server系统的版本信息?

在 Ubuntu Server 环境下,查看版本信息是运维日常中最基础的操作之一。根据你需要的详细程度和场景(是快速确认还是排查兼容性问题),有几种常用的方法,按推荐程度排序:

1. 最标准、最全面的方法:lsb_release

这是 Linux Standard Base 规范定义的命令,输出结果结构化且稳定,适合脚本调用或正式文档记录。

lsb_release -a

典型输出示例:

No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 22.04.3 LTS
Release:        22.04
Codename:       jammy
  • Description: 完整版本号(含小版本号和代号)。
  • Release: 主版本号(如 22.04)。
  • Codename: 开发代号(如 jammy),这在配置软件源或查找特定版本的教程时非常有用。

注意:如果提示 command not found,说明系统精简版未安装该工具,可以通过 sudo apt install lsb-release 安装。


2. 最通用、无需额外包的方法:读取 /etc/os-release

这是现代 Linux 发行版(包括 Ubuntu 16.04+)的标准文件,几乎所有基于 systemd 的发行版都遵循此格式。它不依赖任何特定命令,即使在一个极度精简的容器或救援环境中也能工作。

cat /etc/os-release

关键关注字段:

  • PRETTY_NAME: 人类可读的系统名称。
  • VERSION_ID: 精确的版本号字符串。
  • ID: 发行版标识符(ubuntu)。

快速提取版本号(一行命令):

grep VERSION_ID /etc/os-release | cut -d= -f2 | tr -d '"'

3. 快速确认内核与架构:uname

如果你不仅关心 Ubuntu 的版本,还关心当前运行的内核版本和系统架构(32位/64位/ARM等),用这个:

uname -a

输出示例:

Linux ubuntu-server 5.15.0-91-generic #101-Ubuntu SMP x86_64 GNU/Linux
  • x86_64 表示 64 位 Intel/AMD 架构。
  • aarch64 表示 ARM 64 位架构(常见于 AWS Graviton 或华为云鲲鹏实例)。
  • 5.15.0-91-generic 是当前运行的内核版本。

区分点:uname 显示的是内核版本,不是操作系统版本。两者可能不同步(例如内核升级了,但 OS 仍为 20.04)。


4. 其他辅助方法

hostnamectl

适用于安装了 systemd 的系统,输出更友好:

hostnamectl

输出会包含:

  • Operating System: Ubuntu 22.04.3 LTS
  • Kernel: Linux 5.15.0-91-generic
  • Architecture: x86-64

查看具体小版本更新历史(可选)

如果你需要知道当前系统打到了哪个安全补丁层级(Point Release),可以查看:

cat /etc/lsb-release

或者检查最近的安全更新:

apt list --upgradable 2>/dev/null | grep linux-image

✅ 最佳实践建议

场景 推荐命令
日常运维、写文档、脚本判断 lsb_release -a
最小化系统、容器环境、兼容性最强 cat /etc/os-release
需要同时看内核版本和硬件架构 uname -a
需要看主机名、OS、内核一体化信息 hostnamectl

特别提醒:
在生产环境中,尤其是涉及云原生部署时,务必通过 lsb_release 或 /etc/os-release 确认真实的OS 版本,而不是仅凭 uname 中的内核版本做决策。因为 Ubuntu 的内核可以通过 HWE (Hardware Enablement) 栈独立升级,导致内核版本远高于基础 OS 版本。