#1 楼
可以使用uname
来普遍检测内核:已经尝试使这一点保持一致,但是不幸的是,最终它还是有所不同。 LSB工具提供了此信息,但具有讽刺意味的是,并非默认情况下在所有位置都安装了LSB工具。在安装了lsb-release
软件包的Ubuntu 9.04系统上的示例:$ uname -or
2.6.18-128.el5 GNU/Linux
否则,最广泛使用的方法是检查
/etc/something-release
文件。它们存在于大多数常见平台及其派生产品(例如Red Hat和CentOS)上。这里有一些示例。Ubuntu有
/etc/lsb-release
:$ lsb_release -irc
Distributor ID: Ubuntu
Release: 9.04
Codename: jaunty
但是Debian有
/etc/debian_version
:$ cat /etc/lsb-release
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=9.04
DISTRIB_CODENAME=jaunty
DISTRIB_DESCRIPTION="Ubuntu 9.04"
Fedora,Red Hat和CentOS具有: />
$ cat /etc/debian_version
5.0.2
Gentoo:
Fedora: $ cat /etc/fedora-release
Fedora release 10 (Cambridge)
Red Hat/older CentOS: $ cat /etc/redhat-release
CentOS release 5.3 (Final)
newer CentOS: $ cat /etc/centos-release
CentOS Linux release 7.1.1503 (Core)
目前我没有SUSE系统,但我相信它是
/etc/SuSE-release
。 Slackware具有
/etc/slackware-release
和/或/etc/slackware-version
。Mandriva具有
/etc/mandriva-release
。 /> $ cat /etc/gentoo-release
Gentoo Base System release 1.12.11.1
最常工作。精简而简陋的“服务器”安装可能未安装该发行版的“发行版”软件包。
另外,您可以用来自动获取此信息的两个第三方程序是Ohai和Facter。
请注意,许多发行版在
/etc/issue
或/etc/motd
中都有此类信息,但是一些安全策略和最佳实践表明这些文件应包含访问通知标语。相关: >如何找出安装在节点上的软件包的版本?,
p。
#2 楼
您也可以尝试:$ cat /etc/issue
通常(并非总是如此)会告诉您所使用的发行版。
/etc/issue
是用于登录屏幕的文件。评论
这是在共享Media Temple服务器上唯一为我确定的服务器。谢谢!!
– TryTryAgain
13年2月8日在18:03
哈,在RedHat上,这只是\ M上的\ S [newline]内核\ r
–松饼
2015年2月2日在20:21
以Linux Mint为例
–questionto42
20/12/11在23:02
#3 楼
内核:uname -a
评论
+1。对于类似MinGW的系统,要求使用“ -a”来获取版本信息,例如,“ MINGW32_NT-5.1 LAP065 1.0.17(0.48 / 3/2)2011-04-24 23:39 i686 Msys”。
– Peter Mortensen
2012年5月2日在8:39
#4 楼
cat /etc/os-release
对于Ubuntu,Fedora和OpenSUSE至少为。
至少在10.9(Mavericks)之前,它不适用于OSX。使用sw_vers代替。
OpenSUSE的cat / etc / SuSE-release直到13.1,但不推荐使用os-release。释放
评论
DOC:freedesktop.org/software/systemd/man/os-release.html
– Pevik
16年11月3日在8:55
#5 楼
lsb_release -a
(如果可用)很有用。#6 楼
cat /proc/version
在共享的VPS上找到我Red Hat。#7 楼
内核:uname -r
发行版:
lsb_release -a
这些将在大多数Linux系统上运行
#8 楼
单线lsb_release -a && uname -r
评论
作为对Albert Z答案的评论,这可能更合适。
–fixer1234
18年1月29日在21:52
强大的答案可以得出所有答案!我必须为此付出努力:)
–.B.Kocis
18-3-27在13:17
#9 楼
使用Python和platform
模块也可以解决此问题:使用
platform()
函数:python -c 'import platform; print platform.platform()'
# Linux-4.9.0-8-amd64-x86_64-with-debian-9.6
以上命令返回一个字符串,用于标识具有尽可能多的有用信息的基础平台。
或使用
uname()
函数: :namedtuple()
,system
,node
,release
,version
和machine
。或使用
processor
函数: Linux OS发行版名称的名称,但是自Python 3.5起不推荐使用,并将在Python 3.8中删除。
评论
大声笑在这里我想建议:寻找关于!
– Ivo Flipse
09年7月22日在19:40
Slackware具有/ etc / slackware-version
– Ken Keenan
09年7月22日在19:45
谢谢Ken,我也没有Slackware系统。
– jtimberman
09年7月22日在19:56
IOW:ls / etc / * {release,version}并检查返回的内容...
–freiheit
09年7月22日在20:11
大多数也有/ etc / issue
–德鲁·斯蒂芬斯(Drew Stephens)
09年7月23日在6:42