Unix Like 作業系統的分支發行版眾多,如果是圖形介面可能還勉強可以猜出是什麼發行版,但是如果是在 CLI 底下就無法直接得知。這裡整理針對 Linux 與 BSD 兩大分支的五種查看發行版本與核心版本的指令。
uname -mrs (Linux / BSD)
uname 在 Linux 與 BSD 的發行版都可使用,在 BSD 系統底下可直接查看發行版本與核心版本,而在 Linux 系統底下僅能查看核心版本,發行版本需透過其它指令得知。
|  |  | 
cat /etc/os-release (Linux)
cat /etc/os-release 僅能在 Linux 發行版下使用,帶出的發行版資訊很完整,但不含核心版本資訊。
|  |  | 
hostnamectl (Linux)
hostnamectl 這個指令是用來修改主機名稱的,但不帶入任何參數時除了會列出主機名稱外,還會列出發行版本與核心版本資訊。這個指令一樣僅能在 Linux 發行版下使用。
|  |  | 
lsb_release -a (Debian / Ubuntu)
lsb_release 會列出發行版名稱、版本與代號,在 Debian 與 Ubuntu 系統下預設就有支援,而其它發行版如 CentOS 或 Fedora 等則要另外安裝 redhat-lsb-core 套件才可以使用。BSD 發行版則沒有支援。
|  |  | 
freebsd-version -ku (FreeBSD)
freebsd-version 是 FreeBSD 專用的核心版本查詢,特別的是 FreeBSD 下有區分核心版本 (Kernel Version) 與使用者層級版本 (Userland Version),分別對應到參數 -k 與參數 -u。
|  |  | 
下表整理各個指令對應的作業系統:
| 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: