首页 > 时尚 > 正文

命令行查看系统版本和补丁号:Windows、macOS、Linux 实操指南

2026-10-25 03:53:07 · 七搭八搭网 · 时尚 · 阅读 756

做运维、命令写工单、行查报故障,看系最常被问到的统版一句话就是「你那台机器是什么系统、打到哪个补丁了」。本和补丁图形界面里翻设置能找到,实操但面对一台没有桌面环境的指南服务器、一台远程跳板机,命令或者需要把几十台机器的行查信息一次性收集起来时,命令行查看系统版本和补丁号才是看系效率最高的做法。本文按 Windows、统版macOS、本和补丁Linux 三类场景,实操把常用命令、指南输出怎么读、命令查不到时怎么办讲清楚,命令都以系统自带工具为主,不依赖额外安装。

需要先明确一点:系统版本和补丁号是两个维度的信息。版本号(如 Windows 11 24H2、Ubuntu 24.04、macOS 15)决定功能基线,补丁号(如 Windows 的 KB 编号、Linux 的软件包版本)决定安全修复程度。只报版本不报补丁,等于只说了一半。下面每个平台都会分别给出查版本和查补丁的命令。

Windows:用 systeminfo、wmic 与 PowerShell 查版本和 KB 补丁

最省事的入口是 winver:按 Win+R 输入 winver 回车,会弹出窗口显示系统版本和内部版本号(Build)。但它是图形弹窗,不方便脚本采集。命令行里更常用的是 systeminfo,在 CMD 或 PowerShell 中直接执行,输出中的「OS 名称」「OS 版本」「系统类型」就是基础版本信息。缺点是执行较慢,尤其在机械硬盘机器上可能要等十几秒。

想快速拿到一行版本号,可以用 wmic os get Caption,Version,BuildNumber /value。需要注意的是,wmic 在较新的 Windows 版本中已被标记为弃用,部分新系统上可能默认未安装,此时改用 PowerShell 的 Get-ComputerInfo 或 [System.Environment]::OSVersion 更稳妥。以实际系统界面和微软官方文档为准,不要死记某一条命令。

查补丁号是重点。PowerShell 里执行 Get-HotFix,会列出已安装的补丁列表,包含 HotFixID(即 KB 编号)、Description、InstalledOn 等字段。如果只想看最近装了几个,可以加排序:Get-HotFix | Sort-Object InstalledOn -Descending | Select-Object -First 10。CMD 环境下对应的是 wmic qfe list brief /format:table,输出同样是 KB 编号加安装日期。

一个常见坑:Get-HotFix 展示的是通过 Windows Update 安装的补丁,某些通过 MSI、独立安装包或第三方软件分发推下去的更新不一定出现在这个列表里。所以核对「是否打全补丁」时,更权威的做法是对照微软官方发布的月度安全更新说明,或者用系统内置的「Windows 更新历史记录」界面交叉确认。

macOS:sw_vers 查版本,补丁看构建号与更新历史

macOS 的命令行相对简洁。终端执行 sw_vers,会输出三行:ProductName(如 macOS)、ProductVersion(如 15.1)、BuildVersion(如 24B83)。ProductVersion 是面向用户的版本号,BuildVersion 是内部构建号,两者组合才能唯一确定一个系统快照。只想取版本号可以加参数:sw_vers -productVersion。

macOS 没有 Windows 那种 KB 编号体系,安全补丁通常随小版本更新一起发布,快速安全响应(RSR)则以补充更新的形式单独推送。因此查「补丁号」实际是看当前构建号和已安装的更新记录。命令行可以执行 softwareupdate --history 查看更新历史,列出更新名称、版本和安装时间。若输出为空或提示不支持,说明该系统版本未提供此子命令,此时以「系统设置 → 通用 → 软件更新」界面显示的历史记录为准。

还有一个实用命令是 system_profiler SPSoftwareDataType,它会给出更完整的软件概览,包括内核版本(Kernel Version)和启动模式。排查驱动或内核相关问题时,这个输出比 sw_vers 更有参考价值。

Linux:发行版各异,先认发行版再查包

Linux 上第一步不是查补丁,而是先确认发行版,因为不同发行版的包管理器和补丁命名完全不同。通用命令是 cat /etc/os-release,输出包含 NAME、VERSION、VERSION_ID、PRETTY_NAME 等字段,这是目前最规范的做法。老系统上可能只有 /etc/issue 或 lsb_release -a,后者需要安装 lsb-release 包,不一定存在。

内核版本用 uname -r 查看,完整信息用 uname -a。注意发行版版本和内核版本是两回事:同一个发行版可以运行多个内核版本,内核更新通常也属于安全补丁的一部分。查看已安装内核列表,Debian/Ubuntu 系可以看 dpkg --list | grep linux-image,RHEL/CentOS 系用 rpm -qa | grep kernel。

补丁号在 Linux 语境下基本等同于软件包版本。Debian/Ubuntu 系查看某个包:apt list --installed 或 dpkg -l,配合 grep 过滤。RHEL/CentOS/Rocky 系用 rpm -qa 列出全部包及版本。若系统启用了安全更新源,还可以查看更新日志,例如 Debian 系的 /var/log/apt/history.log、RHEL 系的 yum history 或 dnf history,能看到每次更新安装了哪些包、时间点是什么。

服务器场景下,很多人关心的是「有没有漏掉安全更新」。可以执行 apt list --upgradable(Debian/Ubuntu)或 dnf check-update(RHEL 系)看可升级列表,但要注意这会联网查询仓库,内网离线机器会失败或超时。此时退回到查看本地已安装版本,并与官方安全公告比对,是更可靠的方式。

失败分支与核对清单

命令报「不是内部或外部命令」,多半是路径没进环境变量或该工具在当前系统版本被移除,换用系统自带替代命令即可。输出乱码常见于 Windows CMD 的代码页问题,可先执行 chcp 65001 切到 UTF-8。Linux 上提示权限不足,检查是否需要用 sudo,但纯查询类命令一般不需要提权。

把信息交给他人前,建议按这份清单核对一遍:系统名称与版本号、内部构建号或内核版本、最近一次补丁安装时间、是否仍在官方支持周期内。最后一项常被忽略——版本再新,一旦厂商停止支持,就不再发布安全补丁,这本身就是风险信号,具体支持周期以各厂商官方公告为准。

总体做法是:Windows 用 Get-HotFix 配合 systeminfo,macOS 用 sw_vers 配合 softwareupdate --history,Linux 先用 cat /etc/os-release 定发行版再用对应包管理器查版本。把这些命令写成一个采集脚本,下次再被问到系统版本和补丁号,直接贴输出就行,比翻设置界面快得多。