在 Linux 系统之下若想要查询发行版名称与版本的资讯有许多种方法,而不同的 Linux 发行版适用的方式也不同,以下整理了一些常见的方法。

查询 Linux 发行版与版本

Linux 发行版(distribution)与版本就是指大家常听到的 Ubuntu 16.04、Fedora 24、CentOS 7 这些名字,而要查询 Linux 的发行版有以下几种方式。

查看 /etc/*-release

通常在 /etc 目录中会有一些档名为 *-release 的系统版本资讯档,通常从这些档案的内容就可以看出 Linux 的发行版名称与版本号码。首先可以使用 ls 列出所有的 /etc/*-release 档案:

1
2
3
4
5
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 发行版名称还是要看里面的内容才知道:

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

os-release 里面还有更详细的资讯:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
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 的状况:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
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 发行版预设都会安装这个指令,使用时要碰运气:

1
2
3
4
5
6
7
lsb_release -a

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

像在 Scientific Linux 中就没有这个指令可以用:

1
2
3
4
lsb_release -a


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

查询 Linux 核心版本

Linux 核心版本跟发行版的版本是不一样的东西,Linux 核心版本通常是比较进阶的系统开发者或管理者才会需要用到,它看起来会类似Linux 4.4.0-24-generic,以下是几种Linux 核心版本的查询方式。

使用 uname 指令查询

uname 是一个用来查询 Linux 系统核心资讯的指令:

1
2
3
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 的状况:

1
2
3
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 的核心版本资讯:

1
2
3
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 的状况:

1
2
3
cat /proc/version

Linux version 4.4.0-24-generic (buildd@lgw01-12) (gcc version 5.3.1 201