方法一:查看 /etc/os-release 文件(最推荐,通用性最强)
这是由 systemd 规范定义的标准文件,几乎所有现代Linux发行版(包括Ubuntu 16.04+、CentOS 7+、Debian 8+、Fedora等)都支持。它采用键值对格式,信息结构化,既适合人工阅读,也适合脚本解析。操作方法:
打开终端(快捷键通常为
Ctrl+Alt+T),输入以下命令:
1cat /etc/os-release1NAME="Ubuntu"
2VERSION="22.04.3 LTS (Jammy Jellyfish)"
3ID=ubuntu
4ID_LIKE=debian
5PRETTY_NAME="Ubuntu 22.04.3 LTS"
6VERSION_ID="22.04"
7VERSION_CODENAME=jammy
8UBUNTU_CODENAME=jammy关键字段说明:
NAME:操作系统名称(如“Ubuntu”)。VERSION:完整版本描述,包含LTS标识和开发代号。VERSION_ID:纯数字版本号(如“22.04”),适合脚本解析。VERSION_CODENAME/UBUNTU_CODENAME:开发代号(如“jammy”),Ubuntu每个版本对应唯一代号。
1source /etc/os-release && echo "Version: $VERSION_ID"方法二:使用 lsb_release 命令(专为发行版信息设计)
lsb_release 是 Linux Standard Base (LSB) 规范提供的工具,专门用于显示发行版信息。在Ubuntu桌面版中通常默认安装,但在最小化服务器版中可能需要手动安装。操作方法:
1lsb_release -a1No LSB modules are available.
2Distributor ID: Ubuntu
3Description: Ubuntu 22.04.3 LTS
4Release: 22.04
5Codename: jammy常用参数:
-r:仅显示版本号(如22.04)。-c:仅显示开发代号(如jammy)。-d:仅显示描述信息。-s:启用简洁模式,便于脚本调用(如lsb_release -sr返回22.04)。
1# Debian/Ubuntu
2sudo apt install lsb-release
3
4# CentOS/RHEL
5sudo yum install redhat-lsb-core
方法三:使用 hostnamectl 命令(systemd 系统专属)
hostnamectl 是 systemd 工具套件的一部分,除了管理主机名外,还能显示操作系统、内核和架构等综合信息。操作方法:
1hostnamectl1 Static hostname: ubuntu-server
2 Icon name: computer-vm
3 Chassis: vm
4 Machine ID: a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6
5 Boot ID: f1e2d3c4b5a6f7e8d9c0b1a2f3e4d5c6
6 Operating System: Ubuntu 22.04.3 LTS
7 Kernel: Linux 5.15.0-78-generic
8 Architecture: x86-64方法四:使用 uname 命令(查看内核版本,注意与发行版版本的区别)
uname 命令用于显示系统内核信息,而非发行版版本。许多用户误用 uname -r 来获取系统版本,这是不准确的——内核版本与发行版版本是两个不同的概念。操作方法:
1uname -a1Linux ubuntu-server 5.15.0-78-generic #85-Ubuntu SMP Fri Jul 7 15:25:09 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux-r:仅显示内核版本(如5.15.0-78-generic)。-m:显示硬件架构(如x86_64、aarch64)。-a:显示所有信息。
uname 会导致版本误判,必须结合其他命令交叉验证。
方法五:查看发行版特定文件(适用于特定发行版)
不同发行版有自己专属的版本文件,适合快速确认。Ubuntu / Debian 系列:
1cat /etc/debian_version
2# 示例输出:10.7(Debian版本号)1cat /etc/centos-release
2# 示例输出:CentOS Linux release 7.9.2009 (Core)
3
4cat /etc/redhat-release
5# 示例输出:Red Hat Enterprise Linux Server release 8.5 (Ootpa)Fedora:
1cat /etc/fedora-release
2# 示例输出:Fedora release 38 (Thirty Eight)方法六:查看 /etc/issue 文件(辅助信息源)
/etc/issue 文件是登录前显示的系统提示信息,通常包含简短的版本标识。操作方法:
1cat /etc/issueUbuntu 22.04.3 LTS \n \l方法七:使用图形界面查看(适合桌面用户)
对于不习惯命令行的用户,可以通过图形界面查看系统版本。GNOME 桌面环境:
- 点击屏幕右上角的系统菜单。
- 选择“设置”或“系统设置”。
- 在设置窗口中,选择“关于”或“详情”选项。
- 在“关于”页面中,可以看到系统的名称、版本和其他信息。
- 点击左下角的KDE菜单。
- 选择“系统设置”。
- 找到“关于系统”选项,点击后即可查看版本信息。
方法八:使用 neofetch 或 screenfetch(可视化系统概览)
这些工具以美观的ASCII艺术形式展示系统信息,包括发行版、内核、桌面环境等,适合快速概览和分享。安装方法:
# Debian/Ubuntu
sudo apt install neofetch
# CentOS/RHEL
sudo yum install neofetch操作方法:
neofetch最佳实践与总结
- 优先推荐: 使用
cat /etc/os-release进行机器可读解析,这是最标准化、最可靠的方法。 - 人工确认: 辅以
lsb_release -a或hostnamectl进行人工确认。 - 内核状态: 配合
uname -r分析内核版本,判断是否需要HWE内核升级。 - 脚本自动化: 编写健壮的版本检测函数,按优先级尝试多种方式,确保在容器、最小化镜像或遗留系统中的兼容性。
1get_linux_version() {
2 if [ -f /etc/os-release ]; then
3 . /etc/os-release
4 echo "$VERSION_ID"
5 elif command -v lsb_release > /dev/null; then
6 lsb_release -r | awk '{print $2}'
7 elif [ -f /etc/lsb-release ]; then
8 . /etc/lsb-release
9 echo "$DISTRIB_RELEASE"
10 elif [ -f /etc/issue ]; then
11 grep -oE '[0-9]+\.[0-9]+' /etc/issue | head -1
12 else
13 echo "unknown"
14 fi
15}掌握以上方法,无论你面对的是Ubuntu、CentOS、Debian还是其他Linux发行版,都能快速、准确地获取系统版本信息,为系统管理、软件安装和故障排查提供坚实基础。