如何在没有 arch 的情况下获取内核版本

Posted

技术标签:

【中文标题】如何在没有 arch 的情况下获取内核版本【英文标题】:How to get kernel version without arch 【发布时间】:2013-08-02 23:35:57 【问题描述】:

我正在寻找一个可以返回没有架构的内核构建的命令。

uname -r 返回:2.6.32-279.22.1.el6.x86_64 但我只需要 2.6.32-279.22.1.el6

我可以使用正则表达式来做到这一点,然后将最后一个点后面的所有内容都剔除

【问题讨论】:

您说“我可以使用正则表达式来做到这一点”。看来你已经解决了。那么问题是什么? 【参考方案1】:

你无法避免。在内核构建期间,在“本地版本 - 附加到内核版本”(http://lxr.linux.no/linux+*/init/Kconfig#L56)配置选项的帮助下,这些额外的“el6.x86_64”被设置,主要用于跟踪构建和发布版本.

因此,可能的解决方法如下:

           uname -a | awk 'print $3'

【讨论】:

【参考方案2】:

我不确定它的便携性,但您可以执行以下操作--

uname -r | sed s/\.`arch`//

示例 -

$ uname -r

2.6.32-358.6.2.el6.x86_64

$ unname -r | sed s/\.`arch`//

2.6.32-358.6.2.el6

【讨论】:

【参考方案3】:

鉴于可以使用正则表达式,您可以将字符串与^(.*)\.[^.]*$ 匹配并获取第一个捕获组。

(.*)\..* 通常也可以使用“贪婪”量词,但请参阅您的正则表达式引擎的参考。)

【讨论】:

以上是关于如何在没有 arch 的情况下获取内核版本的主要内容,如果未能解决你的问题,请参考以下文章

内核源码目录结构

内核版本不会在 uname -r (Arch Linux)中更新[关闭]

如何在linux内核以静态加载方式添加usb设备

当前linux所使用的内核在哪个文件夹,如何看当前使用的内核版本情况。

导入错误:没有名为 arch 的模块

如何获取嵌入式设备的内核版本信息