已移至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 Aug 14 15:48:17 MDT 2009 i686 i686 i386 GNU / Linux 我怎么知道这是Ubuntu / Debian / Fedora或Redhat?
我使用/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
[~]$
答案 0 :(得分:36)
试试这个:
cat /etc/*-release
您也可以尝试使用/ etc / * - version
答案 1 :(得分:20)
如果您有lsb_release
命令,
lsb_release -a
会告诉你(或只是使用lsb_release -i
)。
lsb_release
位于Linux Standard Base Core Specification。
编辑:看起来你在Red Hat系统上。在uname
输出suggests so上进行Google搜索。当然,这不是程序化的!
答案 2 :(得分:11)
/ etc / issue或/etc/issue.net给出了一个很好的线索。较新的发行版提供/ etc / lsb-release,这使得更容易确定确切的字符串,即发行名称/主要&次要发布/网站等
在没有/ etc / lsb-release的情况下,它更加困难,因此创建了lsb-release。
正如阿洛克所说,看起来你是在一个相当古老(或极其稀疏)的系统。我不认为这是一个你可以(可靠地)用几行代码确定的情况。
如果所有其他方法都失败了,请检查正在使用的包管理器类型(apt / rpm / others),检查/etc/init.d是否是符号链接(rpm / RH发行版)或目录(基于debian的发行版)..你有一个非常好的线索,关于你可以期望在根文件系统中出现的结构。
你不能取悦所有人:)
答案 3 :(得分:7)
似乎这里有一些信息:
> 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
答案 4 :(得分:2)
列出最常见发行版的发布文件名: Release files
一个可以帮助你的功能: Shell script
答案 5 :(得分:1)
cat /etc/redhat_release
cat /etc/debian_version
是一个好的开始。 (注意Ubuntu在从Debian中提取更改时不会修改/etc/debian_version
,所以我的Ubuntu Karmic系统在debian_version中有挤压/ sid。)
编辑:忘了lsb。好的电话,Tim Post和Alok。 LSB的全部意义在于提供独立于发行的方式来做事。