這裡介紹如何查詢 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 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