有没有办法确定正在运行的 Linux 版本(我想是发行版和内核版本)(从命令行),并且可以在任何 Linux 系统上运行?
答案1
内核普遍被检测为uname
:
$ uname -or
2.6.18-128.el5 GNU/Linux
实际上,没有一种跨发行版的方法来确定您使用的是哪个发行版和版本。曾经有人尝试过使其保持一致,但不幸的是,最终还是会有所不同。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
。
Mandriva 有/etc/mandriva-release
。
对于大多数流行的发行版来说,
$ cat /etc/*{release,version}
通常会起作用。精简版和基本版“服务器”安装可能没有安装发行版的“发布”包。
此外,您还可以使用两个第三方程序来自动获取此信息:奥海和因素。
/etc/issue
请注意,许多发行版在或中都有此类信息/etc/motd
,但有些安全策略和最佳实践表明这些文件应该包含访问通知横幅。
有关的: 如何找出节点上安装的软件包的版本?, 木偶。
答案2
您还可以尝试:
$ cat /etc/issue
它通常(但并非总是)会告诉您正在使用什么发行版。/etc/issue
是用于登录屏幕的文件。
答案3
核心:uname -a
答案4
lsb_release -a
,如果有的话,很有用。