显示和解释有关Linux版本的信息比看起来要复杂一些。有许多方法可以识别Linux版本,而不是引用一个简单的版本号。即使只是快速查看uname命令的输出也可以告诉您一些事情。这些信息是什么,它告诉你什么?在本文中,我们将认真研究uname命令的输出以及其他一些命令和文件提供的版本说明。使用uname每当在Linux系统的终端窗口中执行命令uname-a,就会显示很多信息。那是因为小a告诉uname命令您想要查看该命令可以提供的所有输出。结果显示将告诉您有关系统的许多不同信息。事实上,显示的每条信息都会告诉您有关系统的不同信息。例如,uname-a输出如下所示:$uname-aLinuxdragonfly5.4.0-37-generic#41-UbuntuSMPWedJun318:57:02UTC2020x86_64x86_64x86_64GNU/Linux尽管这可能不太重要,但您可以使用包含所有uname选项的正确顺序显示相同的信息:$uname-snmrvpioLinuxdragonfly5.4.0-37-generic#41-UbuntuSMPWedJun318:57:02UTC2020x86_64x86_64x86_64为了将这个长长的信息列表分解成单独的块,GNU/Linux使用这样的for循环来遍历每个选项:$foroptioninsnmrvpio;做echo-n"$option:";uname-$选项;dones:Linuxn:dragonflym:x86_64r:5.4.0-37-genericv:#41-UbuntuSMPWedJun318:57:02UTC2020p:x86_64i:x86_64o:GNU/Linux此循环显示选项提供的信息。uname手册页提供了每个选项的描述。这是列表:Linux---内核名称(选项s)dragonfly---节点名称(选项n)x86_64---机器硬件名称(选项m)5.4.0-37-generic---内核发布版本(选项r)#41-UbuntuSMPWedJun318:57:02UTC2020--内核版本(选项v)x86_64---处理器(选项p)x86_64---硬件平台(选项i)GNU/Linux---操作系统(选项o)要深入研究显示的信息,请认真查看显示的内核版本数据。第四行的5.4.0-37不仅仅是一串任意数字。每个数字都很重要。5表示内核版本4表示主要版本0表示次要版本37表示最新补丁此外,上面循环输出的第5行(内核版本)中的#41表示此版本被编译了41次。如果您只想显示所有信息中的一项,则单个选项会很有用。例如命令uname-n只能告诉你系统名称,uname-r只能告诉你内核发布版本。这些和其他选项在包装服务器或构建脚本时可能很有用。在RedHat系统上,uname-a命令将提供相同类型的信息。这是一个示例:$uname-aLinuxfruitfly4.18.0-107.el8.x86_64#1SMPFriJun1413:46:34UTC2019x86_64x86_64x86_64GNU/Linux发行版信息如果您需要知道您正在运行的发行版isWhat,那么uname的输出对你帮助不大。毕竟,内核版本与发行版不同。对于此信息,您可以在Ubuntu和其他基于Debian的系统上使用lsb_release-r命令,并在RedHat上使用命令显示/etc/redhat-release文件的内容。对于Debian系统:$lsb_release-rRelease:20.04对于RedHat和相关系统:$cat/etc/redhat-releaseRedHatEnterpriseLinuxrelease8.1Beta(Ootpa)使用/proc/version/proc/version文件还提供有关的信息Linux版本信息。此文件中提供的信息与uname-a输出有很多共同点。以下是示例。在Ubuntu上:$cat/proc/versionLinuxversion5.4.0-37-generic(buildd@lcy01-amd64-001)(gccversion9.3.0(Ubuntu9.3.0-10ubuntu2))#41-UbuntuSMPWedJun318RedHat上的:57:02UTC2020:$cat/proc/versionLinux版本4.18.0-107.el8.x86_64(mockbuild@x86-vm-09.build.eng.bos.redhat.com)(gcc版本8.3.120190507(RedHat8.3.1-4)(GCC))#1SMPFriJun1413:46:34UTC2019总结Linux系统提供了大量关于内核和发行版安装的信息。您只需要知道在哪里或如何寻找它并理解它的含义。
