最可靠查发行版用cat /etc/os-release,查内核版本用uname -r;/etc/os-release字段标准、通用性强,uname -r输出精简精准,二者分别优于lsb_release -a和uname -a。
直接看结论:用
查发行版最可靠,
查内核版本最精准;别只依赖
或
,它们要么不通用,要么可能未安装或输出被篡改。
查发行版名称和版本号,优先用
这个文件是 LSB(Linux Standard Base)强制要求所有现代发行版(Ubuntu、CentOS、Debian、Fedora、AlmaLinux 等)都提供的标准路径,内容结构统一、字段明确。
输出完整键值对,重点看
和
脚本中快速提取:
仅 Red Hat 系家族有,
可能被管理员自定义,不可信
在 Ubuntu 默认可用,但 CentOS/RHEL 8+ 默认不装
,运行会报
查内核版本,
比
更干净
信息全但冗长,含主机名、架构、编译时间等无关字段;排查驱动兼容性或升级需求时,只需要纯版本字符串,
正好返回
这类格式。
是最常用、最轻量的内核版本获取方式
包含 GCC 版本和编译主机信息,适合审计或溯源,但对日常运维冗余
依赖 systemd,容器环境或最小化系统可能无此命令
查 CPU 架构和位数,别只信
返回
或
,但它只表示当前内核运行模式,不等于 CPU 原生能力。比如 64 位内核跑在支持 32/64 的 CPU 上,
仍显示
,但你无法反推是否真能运行 32 位程序。
Trae linux
Trae Linux 官方版本现已全面上线,开发者可直接访问 Trae 官网(trae.cn 国内版或 trae.ai 国际版)获取专属安装包。该版本完美适配主流 Linux 发行版,提供 .deb(适配 Ubuntu/Debian)、.rpm(适配 RHEL/Fedora)以及通用 .tar.gz 格式,并全面支持 x64 与 ARM64 架构。
下载
确认是否为 64 位系统,用
—— 返回
才代表用户空间是 64 位
看 CPU 原生能力:
,输出类似
在 CI/CD 脚本里常被误用作平台判断依据,容易在混合架构集群中出错
组合使用场景:写部署脚本前必须验证的两件事
自动化部署或 Ansible Playbook 启动前,建议固定检查这两项,避免因版本不匹配导致后续失败:
发行版是否符合预期:
内核是否 ≥ 某个最低要求:
(注意浮点比较需转义)
别用
提取版本 —— 字符串匹配不稳定,遇到
可能截断成
或
,造成误判
真正容易被忽略的是:/etc/os-release 的字段名大小写敏感,且不同发行版对
的填充策略不一致(如 AlmaLinux 填
,Rocky Linux 只填
),做跨发行版适配时得预留 fallback 逻辑。
cat /etc/os-releaseuname -rcat /etc/redhat-releaselsb_release -a/etc/os-releasecat /etc/os-releasePRETTY_NAMEVERSION_IDgrep PRETTY_NAME /etc/os-release | cut -d= -f2 | tr -d '"'/etc/redhat-release/etc/issuelsb_release -aredhat-lsb-corecommand not founduname -runame -auname -auname -r5.15.0-105-genericuname -rcat /proc/versionhostnamectl | grep kerneluname -muname -mx86_64aarch64uname -mx86_64getconf LONG_BIT64lscpu | grep "CPU op-mode"CPU op-mode(s): 32-bit, 64-bituname -mgrep -q "Ubuntu" /etc/os-release && grep -q "22.04" /etc/os-release[ "$(uname -r | cut -d'-' -f1 | sed 's/[^0-9.]//g')" \> "5.4.0" ]cat /proc/version | grep -o "5\.[0-9]\+" | head -15.10.0-14-amd645.105.10.0ID_LIKErhel fedorarhel