這裡介紹如何查詢 Linux 的發行版名稱與版本資訊。

在 Linux 系統之下若想要查詢發行版名稱與版本的資訊有許多種方法,而不同的 Linux 發行版適用的方式也不同,以下整理了一些常見的方法。

查詢 Linux 發行版與版本

Linux 發行版(distribution)與版本就是指大家常聽到的 Ubuntu 16.04、Fedora 24、CentOS 7 這些名字,而要查詢 Linux 的發行版有以下幾中方式。

查看 /etc/*-release

通常在 /etc 目錄中會有一些檔名為 *-release 的系統版本資訊檔,通常從這些檔案的內容就可以看出 Linux 的發行版名稱與版本號碼。首先可以使用 ls 列出所有的 /etc/*-release 檔案:

ls -l /etc/*-release
-rw-r--r-- 1 root root 467  4月 15  2015 /etc/os-release
-rw-r--r-- 1 root root  40  4月 15  2015 /etc/redhat-release
lrwxrwxrwx 1 root root  14 10月 20  2015 /etc/sl-release -> redhat-release
lrwxrwxrwx 1 root root  14 10月 20  2015 /etc/system-release -> redhat-release

雖然檔案名稱有 redhat 的字樣,但是實際的 Linux 發行版名稱還是要看裡面的內容才知道:

cat /etc/redhat-release
Scientific Linux release 7.1 (Nitrogen)

os-release 裡面還有更詳細的資訊:

cat /etc/os-release
NAME="Scientific Linux"
VERSION="7.1 (Nitrogen)"
ID="rhel"
ID_LIKE="fedora"
VERSION_ID="7.1"
PRETTY_NAME="Scientific Linux 7.1 (Nitrogen)"
ANSI_COLOR="0;31"
CPE_NAME="cpe:/o:redhat:enterprise_linux:7.1:GA"
HOME_URL="http://www.scientificlinux.org//"
BUG_REPORT_URL="scientific-linux-devel@listserv.fnal.gov"

REDHAT_BUGZILLA_PRODUCT="Scientific Linux 7"
REDHAT_BUGZILLA_PRODUCT_VERSION=7.1
REDHAT_SUPPORT_PRODUCT="Scientific Linux"
REDHAT_SUPPORT_PRODUCT_VERSION=7.1

從上面這些資料看起來這個 Linux 系統是 Scientific Linux release 7.1。以下則是 Ubuntu Linux 16.04 的狀況:

cat /etc/lsb-release
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=16.04
DISTRIB_CODENAME=xenial
DISTRIB_DESCRIPTION="Ubuntu 16.04 LTS"
cat /etc/os-release
NAME="Ubuntu"
VERSION="16.04 LTS (Xenial Xerus)"
ID=ubuntu
ID_LIKE=debian
PRETTY_NAME="Ubuntu 16.04 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/"

使用 lsb_release 指令查詢

lsb_release 是一個用來查詢 Linux 發行版資訊的指令,但是並不是每一種 Linux 發行版預設都會安裝這個指令,使用時要碰運氣:

lsb_release -a
No LSB modules are available.
Distributor ID:	Ubuntu
Description:	Ubuntu 16.04 LTS
Release:	16.04
Codename:	xenial

像在 Scientific Linux 中就沒有這個指令可以用:

lsb_release -a
bash: lsb_release: 找不到指令...

查詢 Linux 核心版本

Linux 核心版本跟發行版的版本是不一樣的東西,Linux 核心版本通常是比較進階的系統開發者或管理者才會需要用到,它看起來會類似 Linux 4.4.0-24-generic,以下是幾種 Linux 核心版本的查詢方式。

使用 uname 指令查詢

uname 是一個用來查詢 Linux 系統核心資訊的指令:

uname -a
Linux my-server 3.10.0-229.el7.x86_64 #1 SMP Mon Mar 9 16:14:50 CDT 2015 x86_64 x86_64 x86_64 GNU/Linux

這是 Ubuntu Linux 16.04 的狀況:

uname -a
Linux ubuntu-pc 4.4.0-24-generic #43-Ubuntu SMP Wed Jun 8 19:27:37 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux

查看 /proc/version

/proc/version 中也會紀錄一些 Linux 的核心版本資訊:

cat /proc/version
Linux version 3.10.0-229.el7.x86_64 (mockbuild@sl7-uefisign.fnal.gov) (gcc version 4.8.3 20140911 (Red Hat 4.8.3-9) (GCC) ) #1 SMP Mon Mar 9 16:14:50 CDT 2015

這是 Ubuntu Linux 16.04 的狀況:

cat /proc/version
Linux version 4.4.0-24-generic (buildd@lgw01-12) (gcc version 5.3.1 20160413 (Ubuntu 5.3.1-14ubuntu2.1) ) #43-Ubuntu SMP Wed Jun 8 19:27:37 UTC 2016

參考資料:nixCraftlinux.com