如何知道我正在使用哪个Linux发行版?


53

如何知道我正在使用哪个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家族

[itf][~]$ cat /etc/issue
cat: /etc/issue: No such file or directory
[itf][~]$ cat /etc/issue.net
cat: /etc/issue.net: No such file or directory
[itf][~]$ lsb_release -a
-sh: lsb_release: command not found
[itf][~]$ cat /etc/*-release
cat: /etc/*-release: No such file or directory
[itf][~]$ cat /etc/*-version
cat: /etc/*-version: No such file or directory
[itf][~]$ cat /etc/*release
cat: /etc/*release: No such file or directory
[itf][~]$ cat /etc/*_release
cat: /etc/*_release: No such file or directory
[itf][~]$ cat /etc/*version
cat: /etc/*version: No such file or directory
[itf][~]$

如果您希望删除某些个人/机密信息,我认为您可以举报您的问题以引起主持人注意。因为我们现在仍然可以阅读...
Tamara Wijsman 2012年

@Tom Wijsman只是不想在问题页面上显示该文本,我知道这将存在于历史中:-)
Mithun Sreedharan 2012年

Answers:


31
  • 在Debian中: /etc/debian_version

  • 在Ubuntu中: lsb_release -a or /etc/debian_version

  • 在Redhat中: cat /etc/redhat-release

  • 在Fedora中: cat /etc/fedora-release


2
他尝试了所有这些,请参见源代码。
guerda

2
+1,“ lsb_release -a”在Red Hat上为我工作。
亚伦2012年

3
lsb_release -a也曾在Debian(squeeze)工作。
acme 2013年

1
lsb_release -a也在Gentoo工作
Sergei 2014年

lsb_release -a在Ubuntu和Mint中也可以使用。
wranvaud,2016年


15

您可以尝试Novell的这篇文章

如果您是系统的所有者,那么您将知道已安装并正在运行哪个Linux。本文将帮助您了解如何确定安装了哪个Linux发行版。您可以将其合并到您的应用程序中以检测Linux发行版。


我已经尝试过$ cat / etc / * release cat:/ etc / * release:没有这样的文件或目录运行改进的脚本会给uniame -a命令Linux 2.6.9-42.0.3.EL.wh1smp(2.6一个结果) .9-42.0.3.EL.wh1smp i686)$ uname -a Linux qsquare.net 2.6.9-42.0.3.EL.wh1smp#1 SMP Fri Aug 14 15:48:17 MDT 2009 i686 i686 i386 GNU / Linux
Mithun Sreedharan

6
cat /etc/*release似乎适用于一些主流发行版。我使用Ubuntu,Mint,Red Hat和Gentoo进行了验证。
nobar 2012年

Debian无法识别
Milad Naseri 2012年

Novell解决方案终于可以在我的RedHat 5.3上使用了。我已经将其集成到我的免费shell库中:github.com/Offirmo/offirmo-shell-lib
Offirmo 2012年

@nobar:它也适用于SUSE发行版:/etc/SuSE-release pastebin.com/dL5gVLQe
bwDraco 2013年

3

尝试以下方法之一:

ls -ld /etc/\*release\*  /etc/\*version\*

gcc --version

1
我能问你为什么拒绝使用标记代码吗?请将代码缩进四个空格,以便于阅读和区分。谢谢。
slhck 2012年

3

所有与兼容的系统都将/etc/os-release提供与发行等相关的信息

NAME=Fedora
VERSION="17 (Beefy Miracle)"
ID=fedora
VERSION_ID=17
PRETTY_NAME="Fedora 17 (Beefy Miracle)"
ANSI_COLOR="0;34"
CPE_NAME="cpe:/o:fedoraproject:fedora:17"
HOME_URL="https://fedoraproject.org/"
BUG_REPORT_URL="https://bugzilla.redhat.com/"


1

嗯,也许是它的另一个发行版-.EL后缀似乎由centos使用,但这是redhat的替代词。我也想知道您的包裹管理系统是什么?这可能有助于检查您使用的存储库-因为这些存储库通常是供应商提供的,并且特定于发行版






0

这里是一个更新,现在可以使用lsb_release -ds,因此您可以像linuxDistro=$(lsb_release -ds)无需额外解析那样使用它。


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.