04.29 查看 Linux 發行版名稱和版本號的 8 種方法

查看 Linux 發行版名稱和版本號的 8 種方法

編譯自: https://www.2daygeek.com/check-find-linux-distribution-name-and-version/

作者: Magesh Maruthamuthu

如果你加入了一家新公司,要為開發團隊安裝所需的軟件並重啟服務,這個時候首先要弄清楚它們運行在什麼發行版以及哪個版本的系統上,你才能正確完成後續的工作。作為系統管理員,充分了解系統信息是首要的任務。

查看 Linux 發行版名稱和版本號有很多種方法。你可能會問,為什麼要去了解這些基本信息呢?

因為對於諸如 RHEL、Debian、openSUSE、Arch Linux 這幾種主流發行版來說,它們各自擁有不同的包管理器來管理系統上的軟件包,如果不知道所使用的是哪一個發行版的系統,在軟件包安裝的時候就會無從下手,而且由於大多數發行版都是用 systemd 命令而不是 SysVinit 腳本,在重啟服務的時候也難以執行正確的命令。

下面來看看可以使用那些基本命令來查看 Linux 發行版名稱和版本號。

方法總覽

  • lsb_release 命令

  • /etc/*-release 文件

  • uname 命令

  • /proc/version 文件

  • dmesg 命令

  • YUM 或 DNF 命令

  • RPM 命令

  • APT-GET 命令

方法 1: lsb_release 命令

LSB( Linux 標準庫(Linux Standard Base))能夠打印發行版的具體信息,包括髮行版名稱、版本號、代號等。

# lsb_release -a

No LSB modules are available.

Distributor ID: Ubuntu

Description: Ubuntu 16.04.3 LTS

Release: 16.04

Codename: xenial

方法 2: /etc/*-release 文件

release 文件通常被視為操作系統的標識。在 /etc 目錄下放置了很多記錄著發行版各種信息的文件,每個發行版都各自有一套這樣記錄著相關信息的文件。下面是一組在 Ubuntu/Debian 系統上顯示出來的文件內容。

# cat /etc/issue

Ubuntu 16.04.3 LTS \\n \\l

# cat /etc/issue.net

Ubuntu 16.04.3 LTS

# cat /etc/lsb-release

DISTRIB_ID=Ubuntu

DISTRIB_RELEASE=16.04

DISTRIB_CODENAME=xenial

DISTRIB_DESCRIPTION="Ubuntu 16.04.3 LTS"

# cat /etc/os-release

NAME="Ubuntu"

VERSION="16.04.3 LTS (Xenial Xerus)"

ID=ubuntu

ID_LIKE=debian

PRETTY_NAME="Ubuntu 16.04.3 LTS"

VERSION_ID="16.04"

HOME_URL="http://www.ubuntu.com/"

SUPPORT_URL="http://help.ubuntu.com/"

BUG_REPORT_URL="http://bugs.launchpad.net/ubuntu/"

VERSION_CODENAME=xenial

UBUNTU_CODENAME=xenial

# cat /etc/debian_version

9.3

下面這一組是在 RHEL/CentOS/Fedora 系統上顯示出來的文件內容。其中 /etc/redhat-release 和 /etc/system-release 文件是指向 /etc/[發行版名稱]-release 文件的一個連接。

# cat /etc/centos-release

CentOS release 6.9 (Final)

# cat /etc/fedora-release

Fedora release 27 (Twenty Seven)

# cat /etc/os-release

NAME=Fedora

VERSION="27 (Twenty Seven)"

ID=fedora

VERSION_ID=27

PRETTY_NAME="Fedora 27 (Twenty Seven)"

ANSI_COLOR="0;34"

CPE_NAME="cpe:/o:fedoraproject:fedora:27"

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=27

REDHAT_SUPPORT_PRODUCT="Fedora"

REDHAT_SUPPORT_PRODUCT_VERSION=27

PRIVACY_POLICY_URL="https://fedoraproject.org/wiki/Legal:PrivacyPolicy"

# cat /etc/redhat-release

Fedora release 27 (Twenty Seven)

# cat /etc/system-release

Fedora release 27 (Twenty Seven)

方法 3: uname 命令

uname(unix name 的意思) 是一個打印系統信息的工具,包括內核名稱、版本號、系統詳細信息以及所運行的操作系統等等。

  • 建議閱讀: 6種查看系統 Linux 內核的方法[1]

# uname -a

Linux localhost.localdomain 4.12.14-300.fc26.x86_64 #1 SMP Wed Sep 20 16:28:07 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux

以上運行結果說明使用的操作系統版本是 Fedora 26。

方法 4: /proc/version 文件

這個文件記錄了 Linux 內核的版本、用於編譯內核的 gcc 的版本、內核編譯的時間,以及內核編譯者的用戶名。

# cat /proc/version

Linux version 4.12.14-300.fc26.x86_64 ([email protected]) (gcc version 7.2.1 20170915 (Red Hat 7.2.1-2) (GCC) ) #1 SMP Wed Sep 20 16:28:07 UTC 2017

方法 5: dmesg 命令

dmesg( 展示信息(display message) 或 驅動程序信息(driver message))是大多數類 Unix 操作系統上的一個命令,用於打印內核的消息緩衝區的信息。

# dmesg | grep "Linux"

[ 0.000000] Linux version 4.12.14-300.fc26.x86_64 ([email protected]) (gcc version 7.2.1 20170915 (Red Hat 7.2.1-2) (GCC) ) #1 SMP Wed Sep 20 16:28:07 UTC 2017

[ 0.001000] SELinux: Initializing.

[ 0.001000] SELinux: Starting in permissive mode

[ 0.470288] SELinux: Registering netfilter hooks

[ 0.616351] Linux agpgart interface v0.103

[ 0.630063] usb usb1: Manufacturer: Linux 4.12.14-300.fc26.x86_64 ehci_hcd

[ 0.688949] usb usb2: Manufacturer: Linux 4.12.14-300.fc26.x86_64 ohci_hcd

[ 2.564554] SELinux: Disabled at runtime.

[ 2.564584] SELinux: Unregistering netfilter hooks

方法 6: Yum/Dnf 命令

Yum( Yellowdog 更新器修改版(Yellowdog Updater Modified))是 Linux 操作系統上的一個包管理工具,而 yum 命令被用於一些基於 RedHat 的 Linux 發行版上安裝、更新、查找、刪除軟件包。

  • 建議閱讀: 在 RHEL/CentOS 系統上使用 yum 命令管理軟件包[2]

# yum info nano

Loaded plugins: fastestmirror, ovl

Loading mirror speeds from cached hostfile

* base: centos.zswap.net

* extras: mirror2.evolution-host.com

* updates: centos.zswap.net

Available Packages

Name : nano

Arch : x86_64

Version : 2.3.1

Release : 10.el7

Size : 440 k

Repo : base/7/x86_64

Summary : A small text editor

URL : http://www.nano-editor.org

License : GPLv3+

Description : GNU nano is a small and friendly text editor.

下面的 yum repolist 命令執行後顯示了 yum 的基礎源倉庫、額外源倉庫、更新源倉庫都來自 CentOS 7 倉庫。

# yum repolist

Loaded plugins: fastestmirror, ovl

Loading mirror speeds from cached hostfile

* base: centos.zswap.net

* extras: mirror2.evolution-host.com

* updates: centos.zswap.net

repo id repo name status

base/7/x86_64 CentOS-7 - Base 9591

extras/7/x86_64 CentOS-7 - Extras 388

updates/7/x86_64 CentOS-7 - Updates 1929

repolist: 11908

使用 dnf 命令也同樣可以查看發行版名稱和版本號。

  • 建議閱讀: 在 Fedora 系統上使用 DNF(YUM 的一個分支)命令管理軟件包[3]

# dnf info nano

Last metadata expiration check: 0:01:25 ago on Thu Feb 15 01:59:31 2018.

Installed Packages

Name : nano

Version : 2.8.7

Release : 1.fc27

Arch : x86_64

Size : 2.1 M

Source : nano-2.8.7-1.fc27.src.rpm

Repo : @System

From repo : fedora

Summary : A small text editor

URL : https://www.nano-editor.org

License : GPLv3+

Description : GNU nano is a small and friendly text editor.

方法 7: RPM 命令

RPM( 紅帽包管理器(RedHat Package Manager))是在 CentOS、Oracle Linux、Fedora 這些基於 RedHat 的操作系統上的一個強大的命令行包管理工具,同樣也可以幫助我們查看系統的版本信息。

  • 建議閱讀: 在基於 RHEL 的系統上使用 RPM 命令管理軟件包[4]

# rpm -q nano

nano-2.8.7-1.fc27.x86_64

方法 8: APT-GET 命令

Apt-Get( 高級打包工具(Advanced Packaging Tool))是一個強大的命令行工具,可以自動下載安裝新軟件包、更新已有的軟件包、更新軟件包列表索引,甚至更新整個 Debian 系統。

  • 建議閱讀: 在基於 Debian 的系統上使用 Apt-Get 和 Apt-Cache 命令管理軟件包[5]

# apt-cache policy nano

nano:

Installed: 2.5.3-2ubuntu2

Candidate: 2.5.3-2ubuntu2

Version table:

* 2.5.3-2ubuntu2 500

500 http://nova.clouds.archive.ubuntu.com/ubuntu xenial-updates/main amd64 Packages

100 /var/lib/dpkg/status

2.5.3-2 500

500 http://nova.clouds.archive.ubuntu.com/ubuntu xenial/main amd64 Packages


via: https://www.2daygeek.com/check-find-linux-distribution-name-and-version/

作者:Magesh Maruthamuthu[6] 譯者:HankChow 校對:wxy

本文由 LCTT 原創編譯,Linux中國 榮譽推出


分享到:


相關文章: