我正在运行什么版本的 Linux?
使用这些快速命令来了解您的系统正在运行的 Linux 内核版本和发行版。
“什么版本的 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
命令在大多数现代 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 年,编辑已更新了更多信息。