当你刚接触一台新的Linux服务器,或者需要给部署的应用匹配正确的依赖库时,第一时间要搞清楚的往往就是——这台机器到底跑的是什么版本。系统版本号决定了你能用什么软件包、该选哪个内核模块,甚至会影响排错的方向。所以“linux查看当前版本”这件事,看着简单,但背后涉及好几个不同的层面。

查看发行版名称和版本号

最直接的方法是用lsb_release命令。这是Linux标准基础工具,大多数主流发行版都会预装。在终端输入lsb_release -a,你会看到类似这样的输出:

Distributor ID: Ubuntu
Description:    Ubuntu 22.04.3 LTS
Release:        22.04
Codename:       jammy

如何查看当前linux版本_linux查询当前版本_linux查看当前版本

如果没有这个命令,别急,检查/etc/os-release文件。用cat /etc/os-release或者head -n 10 /etc/os-release就能看到关键信息。比如CentOS系统里,这个文件会明确写出“CentOS Stream 9”或者“CentOS Linux 7.9.2009”。这个文件几乎每个现代Linux发行版都有,算是官方标准。

还有一个小技巧:查看/etc/centos-release/etc/debian_version这类发行版专属文件。比如Debian系统,cat /etc/debian_version会直接输出“11.6”这样的数字。而Fedora则会在/etc/fedora-release里标明具体版本。

查看内核版本

发行版版本和内核版本是两回事。同一个Ubuntu 22.04可能跑着5.15、5.19甚至6.2的内核,这取决于你什么时候打的更新。要查看当前运行的内核,用uname -r

$ uname -r
5.15.0-91-generic

如何查看当前linux版本_linux查看当前版本_linux查询当前版本

这个输出里,5.15是主版本号,0是大补丁号,91是安全更新和Bug修复的累积编号,“generic”表示这是通用内核。如果你想看更详细的信息,包括硬件架构、内核编译时间,可以加-a参数:

$ uname -a
Linux myserver 5.15.0-91-generic #101-Ubuntu SMP Tue Nov 14 13:30:08 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux

这里能看到内核编译的具体时间、CPU架构是x86_64、系统是GNU/Linux等等。这些信息在排查硬件兼容性问题时特别有用,比如你装了一个驱动模块,发现编译报错,很可能就是因为内核版本不匹配。

查看系统架构和位数

linux查询当前版本_linux查看当前版本_如何查看当前linux版本

很多时候,你以为你知道了“版本”,但其实你只知其一。比如下载软件包时,必须分清是x86_64还是aarch64,是32位还是64位。用uname -m就能看到:

$ uname -m
x86_64

如果是ARM架构的服务器,比如树莓派或者华为鲲鹏芯片,输出会是aarch64。而一些老旧的32位系统会显示i686i386。这个信息决定了你能不能直接跑二进制文件,或者要不要找对应的源码重新编译。

还有更简单的方法——用arch命令,它几乎等同于uname -m。在脚本里判断架构时,很多人习惯用arch,因为字符更少,移植性好。另外,getconf LONG_BIT会直接告诉你CPU工作在32位还是64位模式,输出只有“32”或“64”两个数字,一眼就能看清。

如何查看当前linux版本_linux查询当前版本_linux查看当前版本

查看系统启动时间和运行时长

版本信息里其实还藏着一项容易被忽视的指标——系统已经运行了多久。用uptime命令:

$ uptime
 10:15:32 up 187 days,  3:22,  2 users,  load average: 0.08, 0.03, 0.01

这里的“187 days”说明这台机器已经连续运行了半年多linux查看当前版本,没有重启过。如果你看到运行时间很短,比如只有几个小时,那可能说明最近因为内核更新、硬件更换或者故障导致过重启。结合uname -a里显示的内核编译时间,你甚至可以推断出上次重启是不是因为内核补丁。

还有/proc/uptime文件linux查看当前版本,第一列是系统运行的秒数,第二列是空闲时间的秒数。用cat /proc/uptime抓出来,再自己算天数,在脚本里做监控报警时非常方便。比如设置一个阈值,超过365天的机器自动触发提醒,提醒你去安排维护窗口。

linux查看当前版本_如何查看当前linux版本_linux查询当前版本

查看包管理器记录的版本历史

如果你想确认从安装到现在,系统做过哪些版本相关的变更,可以借助包管理器的日志。Debian/Ubuntu系统查看/var/log/dpkg.loglinux学习论坛,RHEL/CentOS系统查看/var/log/yum.log/var/log/dnf.log。用grep " install " /var/log/dpkg.log | tail -n 20可以列出最近安装的20个软件包,包括它们当时的版本号。

这个方法特别适合排查“之前还好好的,升级完就不行了”这种问题。比如你发现某个服务在2025年3月15日之后启动报错,去翻那几天的dpkg日志,看看是不是有内核头文件或者glibc被更新了。有时候版本冲突就藏在这些升级记录里,光看当前的uname输出是看不出来的。

这些命令组合起来linux系统命令,基本能覆盖所有需要确认“linux查看当前版本”的场景。无论是写自动化脚本、做系统兼容性检查,还是给客户出技术支持报告,都够用了。记得把最常用的几条记住,不用每次都去翻手册。

Tagged:
Author

这篇优质的内容由TA贡献而来

刘遄

《Linux就该这么学》书籍作者,RHCA认证架构师,教育学(计算机专业硕士)。

发表回复