如何在不访问任何图形界面的情况下确定CentOS服务器的版本?我已经尝试了几个命令:

# cat /proc/version
Linux version 2.6.18-128.el5 (mockbuild@hs20-bc1-7.build.redhat.com)
(gcc version 4.1.2 20080704 (Red Hat 4.1.2-44)) …

# cat /etc/issue
Red Hat Enterprise Linux Server release 5.3 (Tikanga)


哪个是正确的:/proc/version的4.1.2-4或/etc/issue的5.3?

#1 楼

如您在/etc/issue中看到的那样,您正在使用CentOS 5.3。 (之所以说是Red Hat,是因为CentOS基于RH来源,并且某些软件会检查/etc/issue来识别使用中的发行版;因此,如果将其更改为CentOS,它们将失败。) 4.1.2-4中的q指用于构建内核的/proc/version C编译器的版本。

评论


我将添加,您可以使用uname -a检测到的是32位还是64位兼容文件。

– Fedir RYKHTIK
13年5月31日在9:46

在CentOS 7上,'cat / etc / issue'产生gobbledygook:\ S内核\ r在\ m上

–Urhixidur
2015年7月8日在16:09



正确答案应该是h3rrmiller提出的答案... cat / etc / * elease。 / etc / issue通常由组织的MOTD /免责声明代替

–batfastad
2015年10月7日,12:52

/ etc / issue文件显示它是RHEL,而不是CentOS。

–迈克尔·汉普顿
19年6月18日在20:03

糟糕的答案。我不知道为什么会接受

– swift2geek
20/08/25在18:19

#2 楼

在类似CentOS的情况下,实际版本通常放置在/etc/*elease中。

cat /etc/*elease


授予该文件通常可以保存整个OS的版本减去内核(因为您可以选择加载)。
此文件将具有与/ etc / issue相同的信息,但使用CentOS而不是RedHat

评论


cat / etc / * release也将起作用,并且您不会遗漏您正在寻找的内容;)因为elease并不总是容易猜到的。 *一次只能是一个或多个项目,一无所有。谢谢,我总是忘记获取发行版的方法。

– m3nda
15年5月22日在17:11

我将“ R”保留为关闭状态的原因是,在某些情况下,“发行”中的“ R”为大写。

– h3rrmiller
2015年6月1日19:08

只是说,在我的系统上执行ls / etc / * elease会得到/ etc / centos-release / etc / redhat-release / etc / system-release。因此,我从所有这些猜测中认为发行文件通常位于/ etc / *-release中-但可能会有大写字母。

–mwfearnley
15年8月7日在12:35

这是对的。我在许多站点发现/ etc / issue已被MOTD或安全性免责声明覆盖,可与sshd_config中的Banner选项一起使用

–batfastad
2015年10月6日14:20

cat / etc / * os-release应该为CentOS产生更多目标结果,并且仍然可以在Ubuntu和其他版本上使用。

– webaholik
19年4月15日在19:59



#3 楼

查找主要版本的CentOS(5或6等)的最可靠方法是:

# rpm -q --queryformat '%{VERSION}' centos-release
6


对于RHEL,请这样做:

# rpm -q --queryformat '%{RELEASE}' redhat-release-server | awk -F. '{print }'
7


唯一不使用lsb_release或其他工具查找版本的便携式方法是:

# grep -oE '[0-9]+\.[0-9]+' /etc/redhat-release
6.5


评论


可以简化为:cat / etc / redhat-release | grep -o'[0-9] \。[0-9]'

–戴夫·约翰森(Dave Johansen)
15年7月31日在23:22

+1 rpm -q centos-release是我尚未发现在较旧的CentOS5发行版上获得次要版本的唯一方法,其中/ etc / redhat-release仅包含主要版本。感谢您的提示。

–PolyTekPatrick
2015年11月19日下午6:54

要获得主要版本:cat / etc / redhat-release | grep -oP'(?<=)[0-9] +(?= \。)'

– Rockallite
17年2月8日在7:16

只是好奇:为什么用“猫文件| grep模式”而不是“ grep模式文件”?

–user2267
17年6月17日在15:36

是的,从外壳程序历史中挖掘出了这一点,并得以纠正。固定。

–lzap
17年7月3日在6:48



#4 楼

您可以通过调用以下命令来确定它:

hostnamectl


将返回以下内容:

Static hostname: mgbcctli01
     Icon name: computer-vm
       Chassis: vm
    Machine ID: de14d80a0900427894dbcf6137e058e7
       Boot ID: 6865f9839c064bc9be32281d0f262cc8
Virtualization: vmware
Operating System: CentOS Linux 7 (Core)
   CPE OS Name: cpe:/o:centos:centos:7
        Kernel: Linux 3.10.0-514.2.2.el7.x86_64
  Architecture: x86-64


您还可以使用rpm查找有关CentOS版本的详细信息: >

评论


hostnamectl仅返回主要发行版号

– fpmurphy
17年1月24日在11:48

没错,使用rpm,您可以获得详细的版本

–hd84335
17年1月24日在11:49

#5 楼

正确的方法是lsb_release -d

评论


在CentOS 7上:lsb_release:找不到命令。

–德雷克森
16年2月17日在0:42

百胜安装redhat-lsb-core ...

– Gena2x
16年2月17日在17:13

可以,但是我的意思是:我不确定必须安装新软件包来获取当前版本是否有价值。

–德雷克森
16-2-17在19:07

如果您希望某个命令能够在多个发行版中实现,那么仍然值得安装。

– Gena2x
16-2-18在9:49



#6 楼

获得CentOS或RHEL的MAJOR版本的最真实可靠(最简短)的方法是:

678(现在RHEL 8已退出)。

#7 楼

# echo "I am running: `cat /etc/redhat-release` (`arch`)"


输出以下内容:

I am running: CentOS release 6.7 (Final) (x86_64)


#8 楼

可以在文件/etc内的位置os-release中找到它。因此输入:

cat /etc/os-release


评论


是否将其反向移植到CentOS 5或6?如果没有,那么这对以后的工作非常有用。

–mattdm
17年8月17日在23:52

CentOS从CentOS 7开始使此功能可用-我还没有看到反向移植。

– webaholik
19年4月15日在19:54



#9 楼

运行rpm --eval '%{centos_ver}'以获取主要版本的centos。

#10 楼

这是我通过Google收集的一些命令,可能会帮助某人:

https://forum.directadmin.com/showthread.php?t=15878

cat /etc/*release*
cat /etc/centos-release


http://www.liquidweb.com/kb/how-to-check-your-centos-version/

cat /etc/redhat-release


https:// linuxconfig.org/how-to-check-centos-version

# the later two may need some package to install
rpm --query centos-release
hostnamectl
lsb_release -d


我也创建了一个要旨来进行记录。