2009-07-22 19:20:02 +0000 2009-07-22 19:20:02 +0000
211
211

我怎样才能知道我运行的是什么版本的Linux?

有没有一种方法可以确定Linux正在运行的版本(我想是发行版和内核版本),可以在任何Linux系统上使用?

答案 (9)

269
269
269
2009-07-22 19:34:33 +0000

内核普遍检测到的是uname

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

的内核,真的没有一个跨发行版的方法来确定你所处的发行版和版本。曾经有人尝试过让这一点保持一致,但很遗憾的是,最终还是有差异。LSB工具提供了这些信息,但讽刺的是,并不是每个地方都会默认安装。在Ubuntu 9.04系统上安装了lsb-release包的例子:

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

否则,最接近的方法是检查/etc/something-release文件。这些文件存在于大多数常见的平台上,以及它们的衍生产品(如:。Red Hat和CentOS)。

以下是一些例子。

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

Gentoo有:

$ cat /etc/*{release,version}

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

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

Mandriva有/etc/mandriva-release

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

&001

最常见。

另外,你可以使用两个第三方程序来自动获取这些信息,它们是 Ohai Facter

注意,很多发行版在/etc/issue/etc/motd中都有这样的信息,但一些安全策略和最佳实践表明,这些文件应该包含访问通知横幅。

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

42
42
42
2009-07-22 19:58:38 +0000

你也可以试试:

$ cat /etc/issue

通常会告诉你(不一定)你使用的是什么发行版。

20
20
20
2009-07-22 19:21:27 +0000

核心: uname -a

16
16
16
2014-04-02 22:56:41 +0000

至少在Ubuntu、Fedora和OpenSUSE中是如此。使用 s/svers_*代替。

直到 13.1 之前,OpenSUSE 有 cat /etc/SuSE-release*,但现在已经被淘汰,改用 os-release。

14
14
14
2009-07-22 23:48:08 +0000

lsb_release -a,在有条件的情况下,是有用的。

12
12
12
2014-06-26 06:59:45 +0000

cat /proc/version在一个共享的VPS上找到我红帽。

6
6
6
2015-06-18 17:06:13 +0000

Kernel: uname -r

Distro: lsb_release -a

这些可以在大多数Linux系统上运行。

5
5
5
2018-01-29 14:51:31 +0000

单行本

lsb_release -a && uname -r
1
1
1
2019-01-08 07:25:25 +0000

这个问题也可以用*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()system, node, release, version, machine, processor, 和dist()。 _

或者使用&007函数:

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

最后一条命令试图确定Linux操作系统的发行版名称,但它是自Python 3.5以来的解密,并且_将在Python 3.8中被删除。