Unix Like 作業系統的分支發行版眾多,如果是圖形介面可能還勉強可以猜出是什麼發行版,但是如果是在 CLI 底下就無法直接得知。這裡整理針對 Linux 與 BSD 兩大分支的五種查看發行版本與核心版本的指令。

 

1. uname -mrs (Linux / BSD)

uname 在 Linux 與 BSD 的發行版都可使用,在 BSD 系統底下可直接查看發行版本與核心版本,而在 Linux 系統底下僅能查看核心版本,發行版本需透過其它指令得知。

Linux 4.15.0-23-generic x86_64
FreeBSD 11.1-RELEASE amd64

 

2. cat /etc/os-release (Linux)

cat /etc/os-release 僅能在 Linux 發行版下使用,帶出的發行版資訊很完整,但不含核心版本資訊。

NAME="Ubuntu"
VERSION="18.04 LTS (Bionic Beaver)"
ID=ubuntu
ID_LIKE=debian
PRETTY_NAME="Ubuntu 18.04 LTS"
VERSION_ID="18.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=bionic
UBUNTU_CODENAME=bionic

 

3. hostnamectl (Linux)

hostnamectl 這個指令是用來修改主機名稱的,但不帶入任何參數時除了會列出主機名稱外,還會列出發行版本與核心版本資訊。這個指令一樣僅能在 Linux 發行版下使用。

 Static hostname: ubuntu-bionic-x64
       Icon name: computer-vm
         Chassis: vm
      Machine ID: 4d6eaab693a3412bbdba34d61ffb349f
         Boot ID: 30b8c0a43b3d4e6490bfadf7c795d0ca
  Virtualization: kvm
Operating System: Ubuntu 18.04 LTS
          Kernel: Linux 4.15.0-23-generic
    Architecture: x86-64

 

4. lsb_release -a (Debian / Ubuntu)

lsb_release 會列出發行版名稱、版本與代號,在 Debian 與 Ubuntu 系統下預設就有支援,而其它發行版如 CentOS 或 Fedora 等則要另外安裝 redhat-lsb-core 套件才可以使用。BSD 發行版則沒有支援。

No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 18.04 LTS
Release: 18.04
Codename: bionic

 

5. freebsd-version -ku (FreeBSD)

freebsd-version 是 FreeBSD 專用的核心版本查詢,特別的是 FreeBSD 下有區分核心版本 (Kernel Version) 與使用者層級版本 (Userland Version),分別對應到參數 -k 與參數 -u

11.0-RELEASE
11.1-RELEASE

 

下表整理各個指令對應的作業系統:

OS / Command Debian Ubuntu Fedora CentOS FreeBSD
uname -mrs v v v v v
cat /os-release v v v v  
hostnamectl v v v v  
lsb_release -a v v      
freebsd-version -ku v       v

References

留言