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