如果你加入了一家新公司煌妈,要為開(kāi)發(fā)團(tuán)隊(duì)安裝所需的軟件并重啟服務(wù)分井,這個(gè)時(shí)候首先要弄清楚它們運(yùn)行在什么發(fā)行版以及哪個(gè)版本的系統(tǒng)上必峰,你才能正確完成后續(xù)的工作糖驴。作為系統(tǒng)管理員僚祷,充分了解系統(tǒng)信息是首要的任務(wù)佛致。
查看 Linux 發(fā)行版名稱和版本號(hào)有很多種方法贮缕。你可能會(huì)問(wèn),為什么要去了解這些基本信息呢俺榆?
因?yàn)閷?duì)于諸如 RHEL感昼、Debian、openSUSE罐脊、Arch Linux 這幾種主流發(fā)行版來(lái)說(shuō)定嗓,它們各自擁有不同的包管理器來(lái)管理系統(tǒng)上的軟件包,如果不知道所使用的是哪一個(gè)發(fā)行版的系統(tǒng)萍桌,在軟件包安裝的時(shí)候就會(huì)無(wú)從下手宵溅,而且由于大多數(shù)發(fā)行版都是用 systemd 命令而不是 SysVinit 腳本,在重啟服務(wù)的時(shí)候也難以執(zhí)行正確的命令上炎。
下面來(lái)看看可以使用那些基本命令來(lái)查看 Linux 發(fā)行版名稱和版本號(hào)恃逻。
方法總覽
-
lsb_release
命令 -
/etc/*-release
文件 -
uname
命令 -
/proc/version
文件 -
dmesg
命令 - YUM 或 DNF 命令
- RPM 命令
- APT-GET 命令
方法 1: lsb_release 命令
LSB(Linux 標(biāo)準(zhǔn)庫(kù)Linux Standard Base)能夠打印發(fā)行版的具體信息,包括發(fā)行版名稱、版本號(hào)寇损、代號(hào)等凸郑。
# lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 16.04.3 LTS
Release: 16.04
Codename: xenial
方法 2: /etc/*-release 文件
release 文件通常被視為操作系統(tǒng)的標(biāo)識(shí)。在 /etc
目錄下放置了很多記錄著發(fā)行版各種信息的文件矛市,每個(gè)發(fā)行版都各自有一套這樣記錄著相關(guān)信息的文件芙沥。下面是一組在 Ubuntu/Debian 系統(tǒng)上顯示出來(lái)的文件內(nèi)容。
# cat /etc/issue
Ubuntu 16.04.3 LTS \n \l
# cat /etc/issue.net
Ubuntu 16.04.3 LTS
# cat /etc/lsb-release
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=16.04
DISTRIB_CODENAME=xenial
DISTRIB_DESCRIPTION="Ubuntu 16.04.3 LTS"
# cat /etc/os-release
NAME="Ubuntu"
VERSION="16.04.3 LTS (Xenial Xerus)"
ID=ubuntu
ID_LIKE=debian
PRETTY_NAME="Ubuntu 16.04.3 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/"
VERSION_CODENAME=xenial
UBUNTU_CODENAME=xenial
# cat /etc/debian_version
9.3
下面這一組是在 RHEL/CentOS/Fedora 系統(tǒng)上顯示出來(lái)的文件內(nèi)容浊吏。其中 /etc/redhat-release
和 /etc/system-release
文件是指向 /etc/[發(fā)行版名稱]-release
文件的一個(gè)連接而昨。
# cat /etc/centos-release
CentOS release 6.9 (Final)
# cat /etc/fedora-release
Fedora release 27 (Twenty Seven)
# cat /etc/os-release
NAME=Fedora
VERSION="27 (Twenty Seven)"
ID=fedora
VERSION_ID=27
PRETTY_NAME="Fedora 27 (Twenty Seven)"
ANSI_COLOR="0;34"
CPE_NAME="cpe:/o:fedoraproject:fedora:27"
HOME_URL="https://fedoraproject.org/"
SUPPORT_URL="https://fedoraproject.org/wiki/Communicating_and_getting_help"
BUG_REPORT_URL="https://bugzilla.redhat.com/"
REDHAT_BUGZILLA_PRODUCT="Fedora"
REDHAT_BUGZILLA_PRODUCT_VERSION=27
REDHAT_SUPPORT_PRODUCT="Fedora"
REDHAT_SUPPORT_PRODUCT_VERSION=27
PRIVACY_POLICY_URL="https://fedoraproject.org/wiki/Legal:PrivacyPolicy"
# cat /etc/redhat-release
Fedora release 27 (Twenty Seven)
# cat /etc/system-release
Fedora release 27 (Twenty Seven)
方法 3: uname 命令
uname(unix name 的意思) 是一個(gè)打印系統(tǒng)信息的工具,包括內(nèi)核名稱卿捎、版本號(hào)配紫、系統(tǒng)詳細(xì)信息以及所運(yùn)行的操作系統(tǒng)等等。
# uname -a
Linux localhost.localdomain 4.12.14-300.fc26.x86_64 #1 SMP Wed Sep 20 16:28:07 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux
以上運(yùn)行結(jié)果說(shuō)明使用的操作系統(tǒng)版本是 Fedora 26午阵。
方法 4: /proc/version 文件
這個(gè)文件記錄了 Linux 內(nèi)核的版本躺孝、用于編譯內(nèi)核的 gcc 的版本、內(nèi)核編譯的時(shí)間底桂,以及內(nèi)核編譯者的用戶名植袍。
# cat /proc/version
Linux version 4.12.14-300.fc26.x86_64 ([email protected]) (gcc version 7.2.1 20170915 (Red Hat 7.2.1-2) (GCC) ) #1 SMP Wed Sep 20 16:28:07 UTC 2017
方法 5: dmesg 命令
dmesg(展示信息 驅(qū)動(dòng)程序信息)是大多數(shù)類 Unix 操作系統(tǒng)上的一個(gè)命令,用于打印內(nèi)核的消息緩沖區(qū)的信息籽懦。
# dmesg | grep "Linux"
[ 0.000000] Linux version 4.12.14-300.fc26.x86_64 ([email protected]) (gcc version 7.2.1 20170915 (Red Hat 7.2.1-2) (GCC) ) #1 SMP Wed Sep 20 16:28:07 UTC 2017
[ 0.001000] SELinux: Initializing.
[ 0.001000] SELinux: Starting in permissive mode
[ 0.470288] SELinux: Registering netfilter hooks
[ 0.616351] Linux agpgart interface v0.103
[ 0.630063] usb usb1: Manufacturer: Linux 4.12.14-300.fc26.x86_64 ehci_hcd
[ 0.688949] usb usb2: Manufacturer: Linux 4.12.14-300.fc26.x86_64 ohci_hcd
[ 2.564554] SELinux: Disabled at runtime.
[ 2.564584] SELinux: Unregistering netfilter hooks
方法 6: Yum/Dnf 命令
Yum是 Linux 操作系統(tǒng)上的一個(gè)包管理工具于个,而 yum
命令被用于一些基于 RedHat 的 Linux 發(fā)行版上安裝、更新暮顺、查找厅篓、刪除軟件包。
# yum info nano
Loaded plugins: fastestmirror, ovl
Loading mirror speeds from cached hostfile
* base: centos.zswap.net
* extras: mirror2.evolution-host.com
* updates: centos.zswap.net
Available Packages
Name : nano
Arch : x86_64
Version : 2.3.1
Release : 10.el7
Size : 440 k
Repo : base/7/x86_64
Summary : A small text editor
URL : http://www.nano-editor.org
License : GPLv3+
Description : GNU nano is a small and friendly text editor.
下面的 yum repolist
命令執(zhí)行后顯示了 yum 的基礎(chǔ)源倉(cāng)庫(kù)捶码、額外源倉(cāng)庫(kù)羽氮、更新源倉(cāng)庫(kù)都來(lái)自 CentOS 7 倉(cāng)庫(kù)。
# yum repolist
Loaded plugins: fastestmirror, ovl
Loading mirror speeds from cached hostfile
* base: centos.zswap.net
* extras: mirror2.evolution-host.com
* updates: centos.zswap.net
repo id repo name status
base/7/x86_64 CentOS-7 - Base 9591
extras/7/x86_64 CentOS-7 - Extras 388
updates/7/x86_64 CentOS-7 - Updates 1929
repolist: 11908
使用 dnf
命令也同樣可以查看發(fā)行版名稱和版本號(hào)惫恼。
# dnf info nano
Last metadata expiration check: 0:01:25 ago on Thu Feb 15 01:59:31 2018.
Installed Packages
Name : nano
Version : 2.8.7
Release : 1.fc27
Arch : x86_64
Size : 2.1 M
Source : nano-2.8.7-1.fc27.src.rpm
Repo : @System
From repo : fedora
Summary : A small text editor
URL : https://www.nano-editor.org
License : GPLv3+
Description : GNU nano is a small and friendly text editor.
方法 7: RPM 命令
RPM是在 CentOS档押、Oracle Linux、Fedora 這些基于 RedHat 的操作系統(tǒng)上的一個(gè)強(qiáng)大的命令行包管理工具祈纯,同樣也可以幫助我們查看系統(tǒng)的版本信息令宿。
# rpm -q nano
nano-2.8.7-1.fc27.x86_64
方法 8: APT-GET 命令
Apt-Get; font-family: monospace;">Advanced Packaging Tool</rt></ruby>)是一個(gè)強(qiáng)大的命令行工具,可以自動(dòng)下載安裝新軟件包腕窥、更新已有的軟件包粒没、更新軟件包列表索引,甚至更新整個(gè) Debian 系統(tǒng)簇爆。
# apt-cache policy nano
nano:
Installed: 2.5.3-2ubuntu2
Candidate: 2.5.3-2ubuntu2
Version table:
* 2.5.3-2ubuntu2 500
500 http://nova.clouds.archive.ubuntu.com/ubuntu xenial-updates/main amd64 Packages
100 /var/lib/dpkg/status
2.5.3-2 500
500 http://nova.clouds.archive.ubuntu.com/ubuntu xenial/main amd64 Packages