如何找出我登录的Linux发行版


20

是否存在用于查找通过SSH登录的操作系统的分发的命令?uname可以用于打印大量信息,但显然不能用于发行版(例如RedHat,Ubuntu等)或该发行版的版本。

Answers:


16

恐怕没有标准化的方法可以检查它。每个发行版似乎都有其发布其版本的方式。您可以尝试:cat /etc/*release,它可能在某些系统上工作。另外,/etc/issue可能包含发行信息。


谢谢你们俩cat /etc/*release/etc/issue给我我需要的确切信息。
vahidg

在Debian(Lenny)的基本安装中,/ etc / * release不存在,但是/ etc / issue存在(并且具有正确的信息)。
戴维

这是一直为我工作的唯一解决方案之一。
Stefan Lasiewski'9

8

lsb_release -a 应该适用于大多数发行版。


在Debian(Lenny)的基本安装上似乎不起作用。
大卫

看起来lsb_release -i -s我需要获取供应商ID即可在大多数系统上运行。不幸的是,lsb_release不是我的小型/嵌入式系统上基本安装的一部分,因此必须首先进行测试。
卡勒布(Caleb)2010年

@Dave在lsb-release程序包中,的确不是默认值。不过,缺少它是Debian的有力指标。:-)
Daniel C. Sobral

都不在OpenSuse上。
ychaouche 2012年

lsb_release一些新的RHEL6衍生产品(例如Scientific Linux 6.1或Fedora Linux 16)上不存在
Stefan Lasiewski 2012年

3

lsb_release和更多的/ etc / redhat-release用于redhat和fedora,我对ubuntu和所有其他发行版一无所知


1
lsb_release -a也可以在Ubuntu上使用。


-2

ame -o

几乎在每个Linux系统上都可以找到uname二进制文件,并且-o标志可以最好地将操作系统还给您。lsb_release也可以工作,但并不普遍。


这在Ubuntu(lucid)上失败,但是ubuntu具有lsb_release,因此首先使用进行测试uname -o,然后如果只是GNU / Linux回来,运行lsb_release -i -s似乎可以在我的所有系统上运行。
卡勒布(Caleb)2010年

这使我在RedHat,Debian和Ubuntu上使用了“ GNU / Linux”。在什么地方起作用?
Daniel C. Sobral

GNU / Linux并不是很有帮助。大多数发行版是GNU / linux发行版。
ychaouche 2012年

@ychaouche:参见上面的评论。首先用uname测试,如果您得到的都是通用的,则测试lsb_release并使用它。
卡列布(Caleb)2012年

-3

如果在上使用该-a标志uname,则该标志在大多数情况下都可以工作。例如,在我当前的Ubuntu计算机上uname -a打印:

Linux clark-laptop 2.6.35-25-generic #43-Ubuntu SMP Thu Jan 6 22:25:21 UTC 2011 x86_64 GNU/Linux

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.