有時我需要訪問一些運行Linux的服務器(或者可能是另一個類似於Unix的服務器),但我不知道如何驗證服務器上正在使用哪個distribution(那裏是連服務器的「負責任」人都不知道的時代)。如何發現正在使用的Linux發行版
有沒有一種簡單可靠的方法來發現那種統一且一致的方法?
有時我需要訪問一些運行Linux的服務器(或者可能是另一個類似於Unix的服務器),但我不知道如何驗證服務器上正在使用哪個distribution(那裏是連服務器的「負責任」人都不知道的時代)。如何發現正在使用的Linux發行版
有沒有一種簡單可靠的方法來發現那種統一且一致的方法?
lsb_release -i
可能適合你。
更多詳細信息,請與lsb_release -a
一些討論在http://etbe.coker.com.au/2007/08/30/identifying-the-distribution-of-a-linux-system/
嘗試uname -a
你可以用 'UNAME':
[[email protected] ~]$ uname -a
Linux localhost 2.6.26-ARCH #1 SMP PREEMPT Tue Aug 26 21:15:43 UTC 2008 i686 AMD Athlon(tm) 64 Processor 3000+ AuthenticAMD GNU/Linux
uname顯示版本和體系結構,但不包括分發(Red Hat,SuSE,Ubuntu,...) – 2008-11-05 03:46:20
通常情況下,該分發版本會添加到版本中,例如Arch Linux中的發行版本。對於Arch而言,除/ etc/issue之外的所有其他提及的想法都不適用。那麼爲什麼downvote? – ypnos 2008-11-06 07:50:06
uname -r
應打印內核版本當前運行(至少,它爲Linux,不知道 如果它是* BSD或其他)相同)。這與發行版不一樣,但內核版本通常包含發行版名稱,如果它是自定義的,如「2.6.27-gentoo-r1」或其他。
初始化通常會在啓動時打印某些內容,但運行時並不好。
否則據我所知,沒有什麼是通用的。
cat /etc/*release
大部分發行放釋放文件/etc/
(如/etc/redhat-release
,/etc/gentoo-release
等)通常具有的版本號您分發。
在我.cshrc
我有
setenv DISTRO ` cat /proc/version | sed 's/.*(//' | sed 's/)).*//' `
export DISTRO=` cat /proc/version | sed 's/.*(//' | sed 's/)).*//' `
,當然這可能不是你最喜歡的發行工作的。 (我有問題與Oracle's Unbreakable Linux給予類似紅帽的東西,但它是對我來說已經足夠好。)
更新2016年8月我沒有使用過的Linux這樣的一段時間(2008年是很久以前的事)。看來這對我現在的系統不再有用了。
隱藏貓`貓x | sed y | sed z`當然更好寫成`sed -e y -e z x`。另請參見[無用的`cat`](http://www.iki.fi/era/unix/award.html) – tripleee 2016-07-28 06:36:42
這是令人討厭的,比它看起來更難的問題。
對於Linux系統,請使用lsb_release。
$ lsb_release --all
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 8.04.1
Release: 8.04
Codename: hardy
$ lsb_release -i
Distributor ID: Ubuntu
這具有lsb_release只適用於Linux發行版的限制。
對於所有的Unix系統,你也可以解析uname。
$ uname -a
Linux blue-laptop 2.6.24-21-generiC#1 SMP Tue Oct 21 23:43:45 UTC 2008 i686 GNU/Linux
您可以在uname Wikipedia page找到關於系統和分佈的一些信息。
更狹義地說,`lsb_release`只適用於試圖遵守[Linux Standard基地](https://en.wikipedia.org/wiki/Linux_Standard_Base)規範。 – tripleee 2016-07-28 06:39:21
我發現/ etc/issue通常有一些關於正在使用的分發的內容。
但我不知道它在所有發行版上的可用性。
不幸的是,很多發行版都有一個非常小的/ etc/issue,它裏面只有「This is \ n。\ O(\ s \ m \ r)\ t」,它沒有提供關於發行版的真實信息。 – 2008-11-05 05:15:56
您應該問自己,您是否真的需要知道哪些發行版正在使用(可能是因爲您想要爲此發行版構建特定的包)。在許多其他情況下,這是一個好得多的想法,只需測試並查看您需要的功能是否存在。這可能看起來像更多的工作,因爲您必須逐個測試每個功能,但這樣,您的軟件變得更加靈活。
您可以使用不同的命令來檢查正在使用的分配。這裏我只提到其中的5個。
lsb_relase -a
lsb_release
提供特定的分發信息。而-a
顯示有關分配的所有信息。您也可以使用僅顯示說明的-d
。
UNAME -a
uname
還提供系統信息。而-a
顯示所有信息。其他選項可以使用man uname
。
貓的/ etc/*釋放
還可以使用cat
命令從等夾打印出所有特定的發佈信息。該命令實際上從/etc文件夾讀取lsb-release和os-release文件。
貓的/ etc /問題
此命令讀取從的問題文件/ etc文件夾。
執行cat/proc /版本
此命令讀取從/PROC文件夾中的版本文件。 /proc文件夾包含有關係統進程的信息。
@Peter:是否真的需要將'distro'改爲'distribution'? – 2013-06-19 13:59:34