每天进步一点点:查看Linux系统版本信息

最近工作中需要使用到Linux系统的版本信息,于是好好学习了几个相关指令,在这里和大家分享一下。

image.png
(图源 :pixabay)

uname

以前我使用最多的就是uname -a指令了,但是就是拿来看看内核版本号,至于其它返回的一堆信息都是啥,我还真没太了解过。

为了彻底搞明白,我特意看了一下帮助:

Reveal spoiler

image.png

然后在我的几台机器上分别执行一下uname -a指令,返回分别如下:

Reveal spoiler

image.png
image.png
image.png

我才发现,Linux内核版本竟然分别是4、5、3。另外就是都显示成Linux,我分辨不出来发行版是啥。

cat /etc/issue

说到查看发行版,大概cat /etc/issue了,在上述机器上执行上述命令。

两台Ubantu机器返回相同的信息:

Ubuntu 18.04.5 LTS \n \l

香蕉派M3返回:

Raspbian GNU/Linux 8 \n \l

看来这条指令能区分出发行版啦。

cat /proc/version

这条指令可以查看内核版本、GCC版本等,在上述机器上分别执行这条指令:

开发机

Linux version 4.15.0-135-generic (buildd@lgw01-amd64-005) (gcc version 7.5.0 (Ubuntu 7.5.0-3ubuntu1~18.04)) #139-Ubuntu SMP Mon Jan 18 17:38:24 UTC 2021

VPS

Linux version 5.4.0-1037-aws (buildd@lgw01-amd64-051) (gcc version 7.5.0 (Ubuntu 7.5.0-3ubuntu1~18.04)) #39~18.04.1-Ubuntu SMP Fri Jan 15 02:48:42 UTC 2021

香蕉派M3

Linux version 3.4.39-BPI-M3-Kernel (root@8ac3451c5c3b) (gcc version 4.6.3 20120201 (prerelease) (crosstool-NG linaro-1.13.1-2012.02-20120222 - Linaro GCC 2012.02) ) #1 SMP PREEMPT Tue May 3 13:47:01 UTC 2016

lsb_release -a

lsb_release命令 用来显示LSB(Linux Standard Base)和特定版本的相关信息,我在三台机器上执行了一下lsb_release -a

开发机和VPS上显示如下信息:

Reveal spoiler

image.png

香蕉派M3上显示如下信息:

Reveal spoiler

image.png

这个结果貌似挺好,简洁明了。至于No LSB modules are available,不影响我们要的结果。

cat /etc/os-release

尽管上述命令都可以返回版本信息,但是我记得当年读EOS的编译脚本时,它判断系统版本时并没有使用上述命令,为此我特意翻了一下EOS的编译脚本代码,发现它读取的是/etc/os-release的信息。

那我们也来试一下,执行cat /etc/os-release试试。

开发机和VPS上显示如下信息:

Reveal spoiler

image.png

香蕉派M3上显示如下信息:

Reveal spoiler

image.png

这个显示的比较规矩(😀),难怪EOS的脚本里用这个。

总结

看来显示Linux系统版本/内核版本/发行版的工具还是挺多的,似乎以下指令都可以用:

  • uname -a
  • cat /etc/issue
  • cat /proc/version
  • lsb_release -a
  • cat /etc/os-release

至于我选择哪个呢?我现在有点犯晕,选择强迫症又犯了。为啥要整出这么多命令呢?真愁人,哎。