首页 > Sysadmin > 正文

Linux 检查发行版本:3 条命令看清新系统

huyuanwen 2026-11-02 Sysadmin

需确认当前是 Ubuntu、Debian 还是 CentOS,这些命令一次性给出答案。

/etc/os-release:跨发行版标准文件

/etc/os-release 是 systemd 引入的操作系统识别标准文件,格式为 KEY=VALUE,所有主流发行版都提供 [1]。

cat /etc/os-release

常用字段:

  • NAME — 发行版全名,如 Ubuntu
  • VERSION_ID — 版本号,如 24.04
  • VERSION_CODENAME — 代号,如 noble
  • ID_LIKE — 家族标识,如 debian

该文件优先于 /usr/lib/os-release 读取,且不应被管理员随意修改 [1]。

lsb_release:LSB 规范查询工具

lsb_release 是 LSB(Linux Standard Base)规范定义的发行版查询工具,输出更简洁 [2]。

lsb_release -a

常用选项:

  • -d — 只显示描述
  • -r — 只显示版本号
  • -i — 只显示发行商 ID
  • -s — 简洁输出(适合脚本)

注意:/etc/lsb-release 现在已 deprecated,信息以 /etc/os-release 为准 [2]。

hostnamectl:systemd 主机信息查询

hostnamectl 是 systemd 提供的系统信息查询命令,status 子命令会显示 “Operating System” 行 [3]。

hostnamectl | grep -E "Operating System|Kernel|Architecture"

适用于 systemd 系统(大多数现代发行版),输出包含内核版本和虚拟化类型,适合快速确认运行环境。

排错速查表

现象 原因 处理
lsb_release 提示 command not found 最小容器未安装 lsb-release 改用 cat /etc/os-release
/etc/os-release 显示 LSB 但版本不对 管理员手动修改了文件 检查发行版官方文档确认
hostnamectl 无 Operating System 行 系统未完全初始化 systemd 用前两条命令兜底

回滚与局限性

  • 不要直接修改 /etc/os-release,升级发行版时会被覆盖
  • 最小容器/initramfs 中可能没有 lsb_release,以 cat /etc/os-release 为准
  • WSL 环境中 hostnamectl 显示的是 WSL2 虚拟化层信息,不代表物理机

附录

  • 测试机:WSL2 Ubuntu 24.04.4 LTS
  • 内核:Linux 6.6.114.1-microsoft-standard-WSL2
  • 测试日期:2026-11-02
  • 观察结果:cat /etc/os-release 输出 PRETTY_NAME=”Ubuntu 24.04.4 LTS”,lsb_release -a 输出 Ubuntu 24.04.4 LTS (codename noble),hostnamectl 显示 Operating System: Ubuntu 24.04.4 LTS。

参考资料

文中主要命令已在 WSL Ubuntu(24.04)实测并核对其在 Debian 系与通用发行版的文档口径。