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

Dar*_*zer 215 linux command-line version

有没有办法确定正在运行的 Linux 版本(我想是发行版和内核版本)(从命令行),适用于任何 Linux 系统吗?

jti*_*man 271

内核被普遍检测到uname

$ uname -or
2.6.18-128.el5 GNU/Linux
Run Code Online (Sandbox Code Playgroud)

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

$ lsb_release -irc
Distributor ID: Ubuntu
Release:        9.04
Codename:       jaunty
Run Code Online (Sandbox Code Playgroud)

否则,最接近的广泛使用的方法是检查文件。这些存在于大多数通用平台及其衍生产品(即 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"
Run Code Online (Sandbox Code Playgroud)

但是 Debian 有/etc/debian_version

$ cat /etc/debian_version
5.0.2
Run Code Online (Sandbox Code Playgroud)

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)
Run Code Online (Sandbox Code Playgroud)

Gentoo:

$ cat /etc/gentoo-release
Gentoo Base System release 1.12.11.1
Run Code Online (Sandbox Code Playgroud)

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

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

Mandriva 有/etc/mandriva-release

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

$ cat /etc/*{release,version}
Run Code Online (Sandbox Code Playgroud)

最常工作。精简和准系统“服务器”安装可能没有安装发行版的“发布”包。

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

请注意,许多发行版在/etc/issue或 中包含此类信息/etc/motd,但一些安全策略和最佳实践表明这些文件应包含访问通知横幅。

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

  • IOW: ls /etc/*{release,version} 并检查返回的任何内容... (4认同)
  • 大声笑,我想建议:寻找关于! (3认同)
  • Slackware 有 /etc/slackware-version (2认同)
  • 大多数也有 /etc/issue (2认同)

Pab*_*ruz 45

你也可以试试:

$ cat /etc/issue
Run Code Online (Sandbox Code Playgroud)

它通常(但并非总是如此)会告诉您正在使用什么发行版。/etc/issue是用于登录屏幕的文件。

  • 这是唯一一个在共享的 Media Temple 服务器上为我钉上它的。谢谢!! (2认同)
  • 哈,在 RedHat 上,这只是 `\S[newline]Kernel \r on an \m` (2认同)

ras*_*spi 20

核心: uname -a


swe*_*tfa 16

cat /etc/os-release
Run Code Online (Sandbox Code Playgroud)

至少对于 Ubuntu、Fedora 和 OpenSUSE。

至少在 10.9 (Mavericks) 之前不适用于 OS X。请改用sw_vers

OpenSUSE 有cat /etc/SuSE-release直到 13.1,但不赞成使用 os-release。

Redhat 6.1 有cat /etc/redhat-release


Ces*_*arB 14

lsb_release -a,当可用时,很有用。


ion*_*ono 12

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


小智 6

核心: uname -r

发行版: lsb_release -a

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


Ser*_*ndt 5

单线

lsb_release -a && uname -r
Run Code Online (Sandbox Code Playgroud)