最推荐使用cat /etc/os-release命令,通过NAME和VERSION_ID字段准确识别发行版及版本号;其次可选lsb_release -a、/etc/redhat-release等文件,uname和/proc/version仅作辅助验证。

如果您需要确认当前运行的Linux系统具体属于哪个发行版及其版本号,例如区分CentOS、Ubuntu或其他发行版,并获取精确的版本标识,则需依据不同发行版提供的标准化文件或命令进行查询。以下是多种可靠且兼容性强的查询方法:
一、读取 /etc/os-release 文件
该文件是Linux标准基础(LSB)定义的通用发行版信息源,适用于几乎所有现代发行版(包括CentOS 7+、Ubuntu 16.04+、Debian 8+、Fedora、Oracle Linux等),内容结构化、字段明确,是最推荐的首选方式。
1、在终端中执行:cat /etc/os-release
2、查看输出中的 NAME 字段确认发行版名称,VERSION_ID 或 VERSION 字段获取主版本号,PRETTY_NAME 提供完整可读标识。
3、例如 CentOS 8 输出中将包含 NAME="CentOS Linux" 和 VERSION="8";Ubuntu 22.04 则显示 NAME="Ubuntu" 与 VERSION_ID="22.04"。
二、使用 lsb_release 命令
lsb_release 是 LSB(Linux Standard Base)规范提供的专用工具,能以统一格式输出发行版识别信息,但需确保对应软件包已安装,部分最小化安装系统默认未包含该命令。
1、检查是否可用:lsb_release --version
2、若提示未找到命令,在CentOS/RHEL系中运行:sudo yum install -y redhat-lsb-core
3、在Ubuntu/Debian系中运行:sudo apt update && sudo apt install -y lsb-release
4、执行完整信息查询:lsb_release -a
5、重点关注 Distributor ID(如 Ubuntu 或 CentOS)和 Description(如 Ubuntu 20.04.6 LTS 或 CentOS Linux release 7.9.2009)。
三、检查发行版专属释放文件
各主流发行版通常维护独立的版本标识文件,路径固定、内容简洁,适合脚本快速解析或在 lsb_release 不可用时作为后备方案。
1、对于 CentOS、RHEL、Oracle Linux 等 Red Hat 衍生版,执行:cat /etc/redhat-release
2、对于较老的 CentOS 或部分定制系统,尝试:cat /etc/centos-release
3、对于 Ubuntu,执行:cat /etc/os-release | grep -E "NAME|VERSION_ID" 或直接查看:cat /etc/issue
4、对于 Debian,执行:cat /etc/debian_version 或 cat /etc/os-release | grep PRETTY_NAME
四、通过 uname 获取内核版本(辅助判断)
uname 命令仅反映 Linux 内核版本及编译信息,不能直接标识发行版,但可辅助交叉验证系统架构与内核代际关系,尤其在无发行版元数据文件时提供基础线索。
1、执行:uname -r 查看内核发行编号(如 3.10.0-1160.el7.x86_64 表明可能为 CentOS 7)
2、执行:uname -m 确认系统架构(x86_64 表示 64 位,aarch64 表示 ARM64)
3、执行完整信息:uname -a 获取含主机名、内核时间戳、硬件平台的全量字符串
五、解析 /proc/version 文件
/proc/version 是内核导出的编译环境快照,包含 GCC 版本、编译主机及内核版本字符串,虽不直接标明发行版,但其中的构建标识常隐含发行版线索(如 el7、ubuntu 表示符)。
1、执行:cat /proc/version
2、查找关键词:el7、el8、ubuntu、debian、fc34 等缩写,可辅助推断发行版系列与大版本
3、注意:该文件内容依赖内核编译配置,非所有发行版均嵌入明确发行版标识,仅作辅助参考










