如何确定我正在运行哪个版本的 RedHat
Linux?
以下是我所阅读到的:
/etc/redhat-release
文件包含了版本信息,但任何人都可以篡改该文件。- 有人说使用
uname
命令,但在 Redhat 上你可以安装任何内核。
如果我正在运行 Redhat 5.1 并且有人将其升级到 5.2 或 5.x,那么什么决定了 RedHat 的版本?
即使是 lsb_release -a
命令也会读取 /etc/redhat-release 文件。
尝试执行此命令:
rpm -qa | grep release
(该内容可能是系统版本信息)redhat-release-workstation-6Workstation-6.4.0.4.el6.x86_64
release
RPM。 - Satish/etc/redhat-release
文件内容和 lsb_release
。如果你认为这些输出不可信,因为“任何人都可以篡改那个文件”,那么你的整个系统都是不可信的,因为编辑那个文件需要系统的 root 访问权限(如果有人更改了那个文件使它变得错误,谁又能说他们没有做其他坏事呢?)。要么你相信它是正确的,要么如果你不能信任那些拥有 root 访问权限的人,就需要重新考虑你的系统安全性。 - ajp15243lsb_release -i -r
或者
uname -r
将输出结果映射。2.6.9内核对应RHEL4,2.6.18内核对应RHEL5。如有必要,可以将完整版本号映射到Red Hat的特定更新版本(例如2.6.9-89是RHEL5 U4)。
/etc/os-release
应该成为查找任何操作系统版本的标准文件。
# cat /etc/os-release
NAME="Red Hat Enterprise Linux Server"
VERSION="7.0 (Maipo)"
ID="rhel"
ID_LIKE="fedora"
VERSION_ID="7.0"
PRETTY_NAME="Red Hat Enterprise Linux Server 7.0 (Maipo)"
一个适用于众多Linux发行版的技巧:
cat /etc/issue
Red Hat 6的示例::
$ cat /etc/issue
CentOS release 6.7 (Final)
Kernel \r on an \m
$
lsb_release -d
对于今天或未来阅读此文的人:
正在运行的内核版本是您的RedHat版本。可能已安装其他版本,但未运行。
因此,如果机器上安装了RedHat 5.1、5.2和5.x,则一次只能运行1个版本。这是在系统启动时引导的版本。要确定实际运行的版本,请使用uname
命令:
uname -r
这将返回内核发布号码。
对于RedHat 5,它将是2.6.18-[something]
RH 5.1是2.6.18-53
RH 5.2是2.6.18-92
要将内核发布号码转换为Redhat版本号,请参见此链接:
Red Hat Enterprise Linux Release Dates
uname -r
或者
cat /etc/issue
适用于最近的Linux机器
lsb_release -d
文件/etc/redhat-release
是获取供应商版本(包括5.X)的标准方式。我认为你不应该忽略这种方式。当然,你可以使用其他软件的各种技巧来显示操作系统的当前版本,但无论如何,它们中的许多都在解析/etc文件。如上所述,您可以使用rpm查询来获取版本。另一种获得此类信息的方式:rpm -q <vendor-name>-release
顺便说一下,我同意以上评论者的看法,如果任何人可以篡改标准的/etc/redhat-release文件或其他系统配置文件,那么你了解版本的方式就是你最不用担心的问题。
另外,自RHEL 7.X版本以来,您还可以尝试:hostnamectl | grep 'Operating System'
/etc/redhat-release
文件中。如果有人篡改该文件,那么你就是一个糟糕的系统管理员,因为实际上除了root以外,没有人应该能够更改该文件。 - Chris Eberle/etc/redhat-release
中的内容做出任何不当行为呢?如果你不能这样相信,那么你也不能确定运行ls
不会运行rm -rf ~/*
。 - ajp15243