“Linux 的哪个版本”这个问题可能有两种不同的含义。严格来说,Linux 是内核,因此这个问题可以特指内核的版本号,或者“Linux”可以更口语化地指代整个发行版,例如 Fedora Linux 或 Ubuntu Linux。
两者都很重要,并且您可能需要知道其中一个或两个答案来解决系统问题。 例如,了解已安装的内核版本可能有助于诊断专有驱动程序的问题,并且确定正在运行的发行版将帮助您快速确定是否应该使用 apt
、dnf
、yum
或其他一些命令来安装软件包。
以下内容将帮助您找出 Linux 内核的版本和/或系统上正在运行的 Linux 发行版。
如何查找 Linux 内核版本
要找出正在运行的 Linux 内核版本,请运行以下命令
uname -srm
或者,可以通过使用各种标志的更长、更具描述性的版本来运行该命令
uname --kernel-name --kernel-release --machine
无论哪种方式,输出都应类似于以下内容
Linux 4.16.10-300.fc28.x86_64 x86_64
这为您提供(按顺序):内核名称、内核版本以及内核正在运行的硬件类型。 在本例中,内核是运行在 x86_64 系统上的 Linux 版本 4.16.10-300.fc28.x86_64。
有关 uname
命令的更多信息,可以通过运行 man uname
找到。
如何查找 Linux 发行版
有几种方法可以确定系统上运行的发行版,但最快的方法是检查 /etc/os-release
文件的内容。 此文件提供有关发行版的信息,包括但不限于发行版的名称及其版本号。 一些发行版中的 os-release 文件包含比其他发行版更多的细节,但是任何包含 os-release 文件的发行版都应提供发行版的名称和版本。
要查看 os-release 文件的内容,请运行以下命令
cat /etc/os-release
在 Fedora 28 上,输出如下所示
NAME=Fedora
VERSION="28 (Workstation Edition)"
ID=fedora
VERSION_ID=28
PLATFORM_ID="platform:f28"
PRETTY_NAME="Fedora 28 (Workstation Edition)"
ANSI_COLOR="0;34"
CPE_NAME="cpe:/o:fedoraproject:fedora:28"
HOME_URL="https://fedoraproject.org/"
SUPPORT_URL="https://fedoraproject.org/wiki/Communicating_and_getting_help"
BUG_REPORT_URL="https://bugzilla.redhat.com/"
REDHAT_BUGZILLA_PRODUCT="Fedora"
REDHAT_BUGZILLA_PRODUCT_VERSION=28
REDHAT_SUPPORT_PRODUCT="Fedora"
REDHAT_SUPPORT_PRODUCT_VERSION=28
PRIVACY_POLICY_URL="https://fedoraproject.org/wiki/Legal:PrivacyPolicy"
VARIANT="Workstation Edition"
VARIANT_ID=workstation
如上例所示,Fedora 的 os-release 文件提供了发行版的名称和版本,但也标识了已安装的变体(“工作站版”)。 如果我们在 Fedora 28 Server Edition 上运行相同的命令,os-release 文件的内容将在 VARIANT
和 VARIANT_ID
行上反映这一点。
有时,了解某个发行版是否与另一个发行版相似很有用,因此 os-release 文件可以包含一个 ID_LIKE
行,用于标识运行中的发行版基于或类似于的发行版。 例如,Red Hat Enterprise Linux 的 os-release 文件包含一个 ID_LIKE
行,声明 RHEL 类似于 Fedora,CentOS 的 os-release 文件声明 CentOS 类似于 RHEL 和 Fedora。 如果您正在处理基于另一个发行版的发行版,并且需要找到解决问题的说明,那么 ID_LIKE
行非常有用。
CentOS 的 os-release 文件清楚地表明它类似于 RHEL,因此有关 RHEL 的各种论坛中的文档以及问题和答案应该(在大多数情况下)适用于 CentOS。 CentOS 旨在成为 RHEL 的近乎克隆,因此它比在 ID_LIKE
字段中找到的某些条目更兼容其 LIKE
,但如果您无法找到正在运行的发行版的信息,检查关于“类似”发行版的答案始终是一个好主意。
有关 os-release 文件的更多信息,可以通过运行 man os-release
找到。
Screenfetch 和 neofetch
uname
和 /etc/os-release
命令是获取您正在运行的 Linux 版本的常用方法,并且默认情况下在您运行的任何 Linux 系统上都可用。 但是,还有其他工具可以为您提供有关系统的报告。
screenfetch 和 neofetch 命令提供了关于您的系统的详细概述,其中包含关于您的内核、架构、可用 RAM、CPU 速度和核心数、桌面版本等详细信息。
Hostnamectl
hostnamectl
命令在大多数现代 Linux 发行版上可用。 如果尚未安装,您可以从您的软件存储库安装它。 尽管它的名称不起眼,但它提供的远不止您的主机名;
$ hostnamectl
Static hostname: yorktown.local
Icon name: computer-laptop
Chassis: laptop
Machine ID: 442fd448a2764239b6c0b81fe9099582
Boot ID: a23e2566b1db42ffe57089c71007ef33
Operating System: CentOS Stream 8
CPE OS Name: cpe:/o:centos:centos:8
Kernel: Linux 4.18.0-301.1.el8.x86_64
Architecture: x86-64
桌面实用程序
某些桌面环境提供类似的系统报告工具。 例如,KDE Plasma 桌面提供了 KInfoCenter,它可以告诉您从内核和架构到可用的网络接口卡、IP 地址等等的所有内容。

了解您的操作系统
无论您决定将哪个工具作为默认工具,获得操作系统的版本和功能都是一项看似简单但重要的技能。 记住这些技巧,以便下次您需要查看正在运行的内容时,您将知道可以在哪些地方找到它。
本文最初于 2018 年发布,并已由编辑更新,添加了其他信息。
5 条评论