已移至https://superuser.com/questions/80251/how-to-know-which-linux-distribution-im-using
如何知道我正在使用哪个Linux发行版?
uname -a给Linux xxxxxx.net 2.6.9-42.0.3.EL.wh1smp#1 SMP Fri 8月14日15:48:17 MDT 2009 i686 i686 i386 GNU/Linux我怎么知道这是Ubuntu/Debian/Fedora或者红帽?
我使用/etc/init.d/serviced restart重启服务器,似乎不是Redhat系列
更新:
[~]$ cat /etc/issue cat: /etc/issue: No such file or directory [~]$ cat /etc/issue.net cat: /etc/issue.net: No such file or directory [~]$ lsb_release -a -sh: lsb_release: command not found [~]$ cat /etc/*-release cat: /etc/*-release: No such file or directory [~]$ cat /etc/*-version cat: /etc/*-version: No such file or directory [~]$ cat /etc/*release cat: /etc/*release: No such file or directory [~]$ cat /etc/*_release cat: /etc/*_release: No such file or directory [~]$ cat /etc/*version cat: /etc/*version: No such file or directory [~]$
Dumb Guy.. 37
试试这个:
cat /etc/*-release
你也可以试试/ etc/* - 版本
试试这个:
cat /etc/*-release
你也可以试试/ etc/* - 版本
如果你有lsb_release
命令,
lsb_release -a
会告诉你(或只是使用lsb_release -i
).
lsb_release
在Linux标准基础核心规范中.
编辑:看起来你在Red Hat系统上.谷歌搜索你的uname
输出表明如此.当然,这不是程序化的!
/ etc/issue或/etc/issue.net给出了一个很好的线索.较新的发行版提供/ etc/lsb-release,这使得更容易确定确切的字符串,即发行名称/主要和次要版本/网站等.
在没有/ etc/lsb-release的情况下,它更加困难,因此创建了lsb-release.
正如阿洛克所说,看起来你是在一个相当古老(或非常稀疏)的系统.我不认为这是一个你可以(可靠地)用几行代码确定的情况.
如果所有其他方法都失败了,请检查正在使用的包管理器类型(apt/rpm/others),检查/etc/init.d是否是符号链接(rpm/RH发行版)或目录(基于debian的发行版) )..并且你有一个非常好的线索,关于你可以期望在根文件系统中出现的结构.
你不能取悦所有人:)
看起来像这里的一些信息:
> cat /etc/issue Welcome to SUSE LINUX Enterprise Server 9 (i586) - Kernel \r (\l). > uname -a Linux boxname 2.6.5-7.244-smp #1 SMP Mon Dec 12 18:32:25 UTC 2005 i686 athlon i386 GNU/Linux > cat /etc/*-release SUSE LINUX Enterprise Server 9 (i586) VERSION = 9 PATCHLEVEL = 3