如何找出我正在运行的Linux版本?


Answers:


267

普遍使用以下方法检测内核uname

$ uname -or
2.6.18-128.el5 GNU/Linux

确实没有一种跨发行版的方法可以确定您使用的发行版和版本。已经尝试使这一点保持一致,但是不幸的是,最终它还是有所不同。LSB工具提供了此信息,但具有讽刺意味的是,并非默认情况下在所有位置都安装了LSB工具。在lsb-release安装了软件包的Ubuntu 9.04系统上的示例:

$ lsb_release -irc
Distributor ID: Ubuntu
Release:        9.04
Codename:       jaunty

否则,最接近的广泛使用的方法是检查文件。它们存在于大多数常见平台及其派生版本(即Red Hat和CentOS)上。/etc/something-release

这里有些例子。

Ubuntu有/etc/lsb-release

$ cat /etc/lsb-release
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=9.04
DISTRIB_CODENAME=jaunty
DISTRIB_DESCRIPTION="Ubuntu 9.04"

但是Debian有/etc/debian_version

$ cat /etc/debian_version
5.0.2

Fedora,Red Hat和CentOS具有:

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)

Gentoo:

$ cat /etc/gentoo-release
Gentoo Base System release 1.12.11.1

我目前没有SUSE系统,但我相信是/etc/SuSE-release

Slackware具有/etc/slackware-release和/或/etc/slackware-version

曼德里瓦有/etc/mandriva-release

对于大多数流行的发行版,

$ cat /etc/*{release,version}

将最常工作。精简而简陋的“服务器”安装可能没有安装发行版的“发行版”软件包。

此外,可以用于自动获取此信息的两个第三方程序是OhaiFacter

请注意,许多发行版都在/etc/issue或中包含此类信息/etc/motd,但是某些安全策略和最佳做法表明这些文件应包含访问通知标语。

相关: 如何找出节点上安装的软件包的版本?


3
大声笑在这里我想建议:寻找关于!
Ivo Flipse,2009年

2
Slackware具有/ etc / slackware-version
Ken Keenan

谢谢Ken,我也没有Slackware系统。
jtimberman,2009年

4
IOW:LS的/ etc / * {发布,版本}和检查什么回来...
自由报

1
大多数也有/ etc / issue
Drew Stephens

41

您也可以尝试:

$ cat /etc/issue

通常(尽管并非总是如此)会告诉您所使用的发行版。/etc/issue是用于登录屏幕的文件。


2
这是唯一在共享Media Temple服务器上为我服务的服务器。谢谢!!
TryTryAgain

2
哈,在RedHat上,这只是\S[newline]Kernel \r on an \m
鲁芬2015年

20

核心: uname -a


+1。对于类似MinGW的系统,需要使用“ -a”来获取版本信息,例如,“ MINGW32_NT-5.1 LAP065 1.0.17(0.48 / 3/2)2011-04-24 23:39 i686 Msys”。
彼得·莫滕森



12

cat /proc/version 在共享的VPS上找到我Red Hat。


6

核心: uname -r

发行版: lsb_release -a

这些将在大多数Linux系统上运行



1

也可以通过Python与platform模块一起使用来解决问题

使用platform()功能:

python -c 'import platform; print platform.platform()'
# Linux-4.9.0-8-amd64-x86_64-with-debian-9.6

上面的命令返回一个字符串,该字符串标识具有尽可能多的有用信息的基础平台。

或使用uname()功能:

python -c 'import platform; print platform.uname()'
# ('Linux', 'debian', '4.9.0-8-amd64', '#1 SMP Debian 4.9.130-2 (2018-10-27)', 'x86_64', '')

上述命令返回一个namedtuple()包含六个属性:systemnodereleaseversionmachine,和processor

或使用dist()功能:

python -c 'import platform; print platform.dist()'
# ('debian', '9.6', '')

最后一个命令试图确定Linux OS发行版名称的名称,但是从Python 3.5开始不推荐使用它将在Python 3.8中删除

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.