这是一个非常常见且重要的问题,要确定您服务器的Linux系统版本,有多种方法,具体取决于您使用的发行版(如Ubuntu, CentOS, Debian等)以及您当前的权限。

下面我将为您介绍最常用、最有效的方法,并按照不同场景进行分类。
第一步:先确定是哪个“大家族”
不同的Linux发行版有不同的检查版本的方法,首先需要判断您的系统属于哪个“大家族”,最简单的方法是查看/etc/issue或/etc/os-release文件。
方法1:查看 /etc/os-release 文件(推荐)
这是现代Linux系统中最标准、最可靠的方法,它会以可读的键值对形式显示发行版信息。
cat /etc/os-release
输出示例(以Ubuntu 22.04为例):

PRETTY_NAME="Ubuntu 22.04.3 LTS" NAME="Ubuntu" VERSION_ID="22.04" VERSION="22.04.3 LTS (Jammy Jellyfish)" VERSION_CODENAME=jammy ID=ubuntu ID_LIKE=debian HOME_URL="https://www.ubuntu.com/" SUPPORT_URL="https://help.ubuntu.com/" BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/" PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy" UBUNTU_CODENAME=jammy
输出示例(以CentOS 7为例):
NAME="CentOS Linux" VERSION="7 (Core)" ID="centos" ID_LIKE="rhel fedora" VERSION_ID="7" PRETTY_NAME="CentOS Linux 7 (Core)" ANSI_COLOR="0;31" CPE_NAME="cpe:/o:centos:centos:7" HOME_URL="https://www.centos.org/" BUG_REPORT_URL="https://bugs.centos.org/" CENTOS_MANTISBT_PROJECT="CentOS-7" CENTOS_MANTISBT_PROJECT_VERSION="7" REDHAT_SUPPORT_PRODUCT="centos" REDHAT_SUPPORT_PRODUCT_VERSION="7"
输出示例(以Debian 11为例):
PRETTY_NAME="Debian GNU/Linux 11 (bullseye)" NAME="Debian GNU/Linux" VERSION_ID="11" VERSION="11 (bullseye)" VERSION_CODENAME=bullseye ID=debian HOME_URL="https://www.debian.org/" SUPPORT_URL="https://www.debian.org/support" BUG_REPORT_URL="https://bugs.debian.org/"
第二步:根据“大家族”使用特定命令
在了解了发行版后,可以使用更具体的命令来获取更详细的版本信息。
A. 针对 Debian / Ubuntu / Mint 等基于 Debian 的系统
-
lsb_release命令(最常用)lsb_release命令旨在显示LSB(Linux Standard Base)信息,能清晰地展示发行版和版本号。
(图片来源网络,侵删)lsb_release -a
输出示例:
No LSB modules are available. Distributor ID: Ubuntu Description: Ubuntu 22.04.3 LTS Release: 22.04 Codename: jammy -
hostnamectl命令(现代系统,推荐) 这个命令用于查看和修改系统的主机名信息,但通常会包含操作系统详细信息。hostnamectl
输出示例:
Static hostname: server01 Icon name: computer-server Machine ID: ... Boot ID: ... Operating System: Ubuntu 22.04.3 LTS Kernel Version: 5.15.0-88-generic Architecture: x86-64 Hardware Vendor: ... Hardware Model: ...从
Operating System这一行就能直接看到版本。
B. 针对 Red Hat / CentOS / Fedora / AlmaLinux / Rocky Linux 等
-
cat /etc/redhat-release这是传统RHEL系系统中最经典的方法。cat /etc/redhat-release
输出示例(CentOS 7):
CentOS Linux release 7.9.2009 (Core)输出示例(AlmaLinux 9):
AlmaLinux release 9.2 (Arrowhead) -
rpm命令(适用于使用rpm包管理的系统) 可以查询centos-release或redhat-release包的详细信息。rpm -q centos-release # 或者对于 AlmaLinux/Rocky rpm -q almalinux-release rpm -q rocky-release
输出示例:
centos-release-7-9.2009.1.el7.centos.x86_64 -
hostnamectl命令(同样适用) 和Debian/Ubuntu一样,hostnamectl也适用于RHEL系系统。hostnamectl
你会在输出中看到类似
Operating System: CentOS Linux 7 (Core)的信息。
C. 针对 Arch Linux
Arch Linux的版本号就是内核的版本号,并且它的更新是持续性的,没有像Ubuntu那样的LTS版本概念。
-
cat /etc/os-release会显示Arch Linux,但没有版本号。 -
检查内核版本 内核版本就是系统当前的“版本”。
uname -r
输出示例:
1.12-arch1-1
D. 针对 SUSE Linux Enterprise Server (SLES)
-
cat /etc/os-release可以看到VERSION字段。 -
lsb_release -a同样适用。 -
cat /etc/SuSe-release(较老的SUSE版本) 这是一个遗留文件,老版本的SUSE系统会使用它。
总结与速查表
| 发行版家族 | 推荐命令 | 说明 |
|---|---|---|
| 通用/现代 | cat /etc/os-release |
首选,所有现代Linux都支持,信息最全。 |
| 通用/现代 | hostnamectl |
信息丰富,同时显示内核版本等,非常推荐。 |
| Debian/Ubuntu | lsb_release -a |
专门为LSB设计,信息清晰易读。 |
| RHEL/CentOS | cat /etc/redhat-release |
传统经典方法,一目了然。 |
| RHEL/CentOS | rpm -q centos-release |
通过查询包来获取,非常精确。 |
| Arch Linux | uname -r |
Arch是滚动更新,内核版本即系统版本。 |
| 所有系统 | uname -a |
显示所有可用的内核和系统信息,是万能命令。 |
如果您是普通用户(没有root或sudo权限)
即使您没有管理员权限,以上大部分命令(如 cat /etc/os-release, lsb_release, hostnamectl, uname)您仍然可以执行,因为读取这些系统信息文件通常不需要特殊权限。
- 打开您的SSH终端或服务器控制台。
- 输入
cat /etc/os-release并回车,这是最快、最可靠的第一步。 - 根据输出的结果,如果需要更详细的信息,再从上面的列表中选择对应的命令。
希望这个详细的指南能帮助您轻松确定服务器的Linux系统版本!
