如何查找您正在运行的 Linux 版本

当您自己安装 Linux 发行版时,您知道它是哪个发行版和版本。

但是如果您使用 SSH 登录到企业或客户端提供的远程 Linux 服务器,您可能会想知道它是哪个 Linux 发行版和版本。

检查 Linux 版本最简单的方法是查看 /etc/os-release 文件的内容:

cat /etc/os-release

它将显示类似于此的输出:

NAME="Ubuntu"
VERSION="20.04.1 LTS (Focal Fossa)"
ID=ubuntu
ID_LIKE=debian
PRETTY_NAME="Ubuntu 20.04.1 LTS"
VERSION_ID="20.04"
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"
VERSION_CODENAME=focal
UBUNTU_CODENAME=focal

如您所见,Linux 名称为 Ubuntu,版本为 20.04.1。

但是,这并不是了解 Linux 发行版详细信息的唯一方法。 在这个初学者提示中,我将向您展示检查您正在运行的 Linux 的不同方法。

查找 Linux 发行版详细信息

方法一:使用 /etc/os-release 文件

如果您熟悉 Linux 目录结构,您可能已经知道 /etc 目录包含系统的核心配置文件。

os-release /etc 目录中的文件保存有关 Linux 发行版的信息。 它为您提供发行版名称、发行版、发行版名称或 ID。

在 Linux 终端可以使用 cat 命令查看文件内容:

cat /etc/os-release

这是它显示的内容 高山 Linux 在 Linode 基础设施上运行的服务器。

handbook:~# cat /etc/os-release 
NAME="Alpine Linux"
ID=alpine
VERSION_ID=3.12.0
PRETTY_NAME="Alpine Linux v3.12"
HOME_URL="https://alpinelinux.org/"
BUG_REPORT_URL="https://bugs.alpinelinux.org/"

如您所见,Linux 发行版的名称是 Alpine Linux,发行版是 3.12。

/etc/os-release 的内容对于不同的发行版通常是不同的。 发行版经常使用它来提供额外的信息,比如在哪里获得支持或提交错误等。

为了 example/etc/os-release 提供了更多的行 CentOS Linux.

NAME="CentOS Linux"
VERSION="8 (Core)"
ID="centos"
ID_LIKE="rhel fedora"
VERSION_ID="8"
PLATFORM_ID="platform:el8"
PRETTY_NAME="CentOS Linux 8 (Core)"
ANSI_COLOR="0;31"
CPE_NAME="cpe:/o:centos:centos:8"
HOME_URL="https://www.centos.org/"
BUG_REPORT_URL="https://bugs.centos.org/"

CENTOS_MANTISBT_PROJECT="CentOS-8"
CENTOS_MANTISBT_PROJECT_VERSION="8"
REDHAT_SUPPORT_PRODUCT="centos"
REDHAT_SUPPORT_PRODUCT_VERSION="8"

但是,它们都提供了 Linux 发行版名称和版本,因此这是了解您正在运行的 Linux 的一种非常可靠的方法。 事实上,这是最可靠的方法。

方法二:使用 hostnamectl 命令

如今,大多数 Linux 发行版都使用 systemd。 在这样的系统上,您可以使用 hostnamectl 命令获取 Linux 版本详细信息。

hostnamectl

对于您在上面看到的同一个 CentOS 系统,hostnamectl 提供了以下详细信息:

[[email protected] ~]# hostnamectl 
   Static hostname: localhost.localdomain
Transient hostname: li2498-99.members.linode.com
         Icon name: computer-vm
           Chassis: vm
        Machine ID: e3fe2be3e17be3e1763bf43e8337e68b
           Boot ID: 33d3052bbffd44b1869bbffd4b00d26c
    Virtualization: kvm
  Operating System: CentOS Linux 8 (Core)
       CPE OS Name: cpe:/o:centos:centos:8
            Kernel: Linux 4.18.0-147.8.1.el8_1.x86_64
      Architecture: x86-64

您可以在以“操作系统”开头的行中查看 Linux 版本详细信息。

hostnamectl 命令主要用于处理主机名,但如果它提供其他详细信息,为什么不使用它呢?

方法三:使用 lsb-release 命令

这不是您在所有 Linux 发行版中都能找到的命令。 我认为它主要由基于 Debian/Ubuntu 的发行版使用。

您可以使用 lsb_release 带选项的命令 -a 它将提供分发详细信息:

lsb_release -a

不要介意 No LSB modules are available 行。 这不是任何类型的错误。

[email protected]:~$ lsb_release -a
No LSB modules are available.
Distributor ID:	Ubuntu
Description:	Ubuntu 20.04.1 LTS
Release:	20.04
Codename:	focal

额外提示:查找 Linux 内核版本

既然您知道您正在运行哪个发行版,也许您还想了解系统上运行的 Linux 内核版本。

您可以在任何 Linux 发行版中使用 uname 命令获取内核详细信息。

uname -r

输出仅显示 Linux 内核版本:

handbook:~# uname -r
5.4.43-1-virt

猜测上述系统运行在 Linux 内核版本 5.4.43 上没有奖品。

我希望这个快速提示有助于您查找 Linux 版本的详细信息。 如果您有任何问题或建议,请在评论部分告诉我。