方法 1:使用 lsb_release
命令(推荐)
lsb_release
是专为查询 Linux 标准库(LSB)信息设计的工具,输出简洁规范:
lsb_release -a
输出示例:
Distributor ID: Ubuntu
Description: Ubuntu 22.04.3 LTS
Release: 22.04
Codename: jammy
- 关键字段:
Distributor ID
:发行版名称(如 Ubuntu、Debian)。Release
:系统版本号(如 22.04)。
- 若提示命令未找到,需先安装:
- Debian/Ubuntu:
sudo apt install lsb-release
- CentOS/RHEL:
sudo yum install redhat-lsb-core
- Debian/Ubuntu:
方法 2:检查 /etc/os-release
文件
所有现代 Linux 发行版均包含此文件,存储了标准的系统标识信息:
cat /etc/os-release
输出示例:
NAME="Ubuntu" VERSION="22.04.3 LTS (Jammy Jellyfish)" ID=ubuntu ID_LIKE=debian VERSION_ID="22.04" PRETTY_NAME="Ubuntu 22.04.3 LTS"
- 关键字段:
NAME
:发行版全称。VERSION_ID
:主版本号(如 22.04)。PRETTY_NAME
:可读性强的描述(含版本)。
方法 3:查看 /etc/issue
或 /etc/issue.net
这两个文件通常包含登录时的欢迎信息,直接显示发行版名称:
cat /etc/issue
输出示例:
Ubuntu 22.04.3 LTS \n \l
注意:部分系统可能需结合
/etc/issue.net
查看远程登录信息。
方法 4:使用 hostnamectl
命令(Systemd 系统专用)
适用于使用 Systemd 初始化工具的系统(如 Ubuntu 16.04+、CentOS 7+):
hostnamectl
输出示例:
Static hostname: ubuntu-server
Operating System: Ubuntu 22.04.3 LTS
Kernel: Linux 5.15.0-86-generic
Architecture: x86-64
- 关键字段:
Operating System
明确标注发行版及版本。
方法 5:检查发行版特定文件
某些发行版有专属标识文件,可通过 cat
直接读取:
| 发行版 | 文件路径 |
|————–|———————-|
| CentOS/RHEL | /etc/redhat-release
|
| Debian | /etc/debian_version
|
| Oracle Linux | /etc/oracle-release
|
示例(CentOS):
cat /etc/redhat-release
输出:
CentOS Linux release 7.9.2009 (Core)
总结与建议
- 首选命令:
- 通用性最强 →
lsb_release -a
或cat /etc/os-release
。 - Systemd 系统 →
hostnamectl
。
- 通用性最强 →
- 特殊情况处理:
- 无图形界面服务器:优先使用文件检查法(如
/etc/os-release
)。 - 极简环境(如 Docker 容器):确保已安装
lsb_release
或直接查看/etc/*-release
文件。
- 无图形界面服务器:优先使用文件检查法(如
- 验证权威性:
交叉验证 2 种以上方法(如同时运行lsb_release
和cat /etc/os-release
),避免因系统定制导致信息偏差。
引用说明:本文方法基于 Linux 基金会发布的 Filesystem Hierarchy Standard 和 systemd 官方文档,确保兼容主流发行版(Ubuntu, Debian, CentOS, RHEL, Fedora 等)。
原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/7260.html