最可靠方法是查看/etc/os-release文件,它标准化输出发行版名称和版本号;其次可用lsb_release命令或按发行版类型读取特定文件如/etc/redhat-release、/etc/debian_version等。

要准确获取Linux系统的发行版名称和具体版本号,不能只看内核版本,因为Ubuntu 24.04、CentOS 7、AlmaLinux 9这些系统可能都运行着5.x甚至6.x内核,单靠uname -r会完全误导判断。必须区分“发行版版本”和“内核版本”这两个概念,否则后续安装软件、配置源、排查兼容性问题都会出错。
首选方法:查看 /etc/os-release 文件
这是最可靠、最标准化的方式,适用于所有现代Linux发行版(systemd 系统),输出格式统一且机器可解析。
在终端中执行:
cat /etc/os-release
你会看到类似这样的输出:
NAME="Ubuntu"
VERSION="24.04.1 LTS (Noble Numbat)"
ID=ubuntu
ID_LIKE=debian
PRETTY_NAME="Ubuntu 24.04.1 LTS"
VERSION_ID="24.04"
【VERSION_ID字段是脚本中最常用于条件判断的值,它不含空格和括号,格式最规范】
如果想快速只看发行版和版本描述,可用:
cat /etc/os-release | grep -E "^(NAME|VERSION|PRETTY_NAME)="
通用方法:使用 lsb_release 命令
该命令专为展示LSB(Linux Standard Base)兼容信息而设计,输出人性化,适合人工阅读。
方法一:显示全部信息
lsb_release -a
方法二:只显示一行描述(最简洁)
lsb_release -d
方法三:只显示版本号(不含文字)
lsb_release -r | cut -f2
注意:某些最小化安装或容器环境可能未预装lsb_release,执行时提示command not found就说明需要先安装——Ubuntu/Debian用sudo apt install lsb-release,RHEL/CentOS/AlmaLinux用sudo dnf install redhat-lsb-core或sudo yum install redhat-lsb-core。
按发行版类型查特定文件
不同家族的Linux有各自的传统标识文件,直接读取速度快,但不具备跨发行版通用性。
第一步:判断是否为 Red Hat 系家族(RHEL、CentOS、Fedora、Rocky、AlmaLinux)
cat /etc/redhat-release
第二步:判断是否为 Debian/Ubuntu 系
cat /etc/debian_version 或 cat /etc/os-release | grep -i ubuntu
第三步:通用 fallback 方案(几乎所有发行版都有)
cat /etc/issue
这个文件内容常含转义字符(如\n、\l),实际显示效果和登录前的欢迎横幅一致,但原始文本里会有乱码感,不适合脚本解析。
快速确认内核版本(仅作辅助参考)
这一步不能代替发行版版本查询,但能帮你交叉验证系统新旧程度或排查驱动兼容问题。
执行:
uname -r
输出示例:
6.8.0-45-generic
若需完整内核构建信息(含编译时间、GCC版本等),用:
cat /proc/version
【切勿用 uname -r 的结果当作系统版本号来配置软件源或提交故障报告】











