当你像调试驱动程序时,你可能想知道您的系统使用的是哪个Linux内核版本?以下是在Linux终端中检查内核版本的三种方法。

在本教程中,我们将说明如何在命令行中检查Linux内核版本的3种方法。满足你在调试驱动程序时候的需求。

我在写这篇文章时正在使用Ubuntu。但这些命令是通用的,可以在Fedora、Debian、CentOS、SUSE Linux或任何其他Linux发行版上使用。

使用uname命令查找Linux内核版本

uname是用于获取系统信息的Linux命令。您还可以使用它来确定您使用的是32位系统还是64位系统。

打开终端并输入以下命令:

uname -r
uname -r

输出将类似于以下内容:

4.4.0-97-generic

这意味着您正在运行Linux内核4.4.0-97,或者更笼统地说,您正在运行 Linux 内核版本 4.4。

但是这里的其他数字是什么意思?

  • 4 – 内核版本
  • 4 – 重大修订
  • 0 – 小修订
  • 97 – 错误修复
  • generic – 特定于发行版的字符串。对于Ubuntu,这意味着我使用的是桌面版本。对于Ubuntu服务器版本,它将是server。

您还可以使用带有选项-a的uname命令。如果您需要,这将提供更多系统信息。

uname -a

命令的输出应该是这样的:

Linux itsfoss 4.4.0-97-generic #120-Ubuntu SMP Tue Sep 19 17:28:18 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux

让我看一下输出及其含义:

  • Linux – 内核名称。如果在BSD或macOS上运行相同的命令,结果会有所不同。
  • myfreax – 主机名。
  • 4.4.0-97-generic – 内核版本(如我们上面所见)。
  • #120-Ubuntu SMP Tue Sep 19 17:28:18 UTC 2017 – 这意味着Ubuntu已经编译了4.4.0-97-generic 120次。上次编译的时间戳也在那里。
  • x86_64 – 机器架构。
  • x86_64 – 处理器架构。
  • x86_64 – 操作系统架构(您可以在64位处理器上运行32位操作系统)。
  • GNU/Linux – 操作系统。

让我们看看其他一些命令来查找您的 Linux 内核版本。

使用/proc/version文件查找Linux内核

在 Linux 中,您还可以在文件/proc/version中找到内核信息。我们可以使用cat命令看看这个文件的内容

cat /proc/version

您将看到类似于使用 uname 看到的输出。

Linux version 4.4.0-97-generic (buildd@lcy01-33) (gcc version 5.4.0 20160609 (Ubuntu 5.4.0-6ubuntu1~16.04.4) ) #120-Ubuntu SMP Tue Sep 19 17:28:18 UTC 2017

您可以在此处查看内核版本 4.4.0-97-generic。

使用dmesg命令查找Linux内核版本

dmesg是用于编写内核消息的强大命令。它对于获取系统信息也非常有用。

由于dmesg提供了大量信息,您通常应该使用诸如less之类的命令来阅读它。但由于我们在这里只是为了检查Linux内核版本,因此在“Linux”上使用grepping应该会提供所需的输出。

dmesg | grep Linux

输出将有几行,但您应该能够轻松识别Linux内核版本。

[ 0.000000] Linux version 4.4.0-97-generic (buildd@lcy01-33) (gcc version 5.4.0 20160609 (Ubuntu 5.4.0-6ubuntu1~16.04.4) ) #120-Ubuntu SMP Tue Sep 19 17:28:18 UTC 2017 (Ubuntu 4.4.0-97.120-generic 4.4.87)
[ 0.182880] [Firmware Bug]: ACPI: BIOS _OSI(Linux) query ignored
[ 1.003861] Linux agpgart interface v0.103
[ 1.007875] usb usb1: Manufacturer: Linux 4.4.0-97-generic xhci-hcd
[ 1.009983] usb usb2: Manufacturer: Linux 4.4.0-97-generic xhci-hcd
[ 5.371748] media: Linux media interface: v0.10
[ 5.399948] Linux video capture interface: v2.00
[ 5.651287] VBoxPciLinuxInit

结论

在这里讨论的三种方式,uname是最方便的。直接读取/proc/version适合在编写程序的时候使用。dmesg命令这个我们一般很少使用。如果您有任何疑问或反馈,请随时在下面评论。