如何获取“上帝”的系统版本

如何获取“上帝”的系统版本

在对技术支持过程中,每个公司都难免会遇到这样一个困扰:我们的程序明明在内部环境中测试的好好的,但是到了客户手里总会出现各种问题。

从以往累计的经验来看,这类问题通常和客户的系统环境有关。所以,今天我们就来聊聊如何获取“上帝”(也就是我们尊贵的客户)的系统版本信息。

鉴于 Linux 的发行版本众多,我们只选取嵌入式领域比较常用的 Ubuntu 和 CentOS 举例,其他的版本差别不大,可以借鉴。

Ubuntu 系统

cat /proc/version

linux@ubuntu:~$ cat /proc/version
Linux version 5.4.0-147-generic (buildd@lcy02-amd64-043) (gcc version 7.5.0 (Ubuntu 7.5.0-3ubuntu1~18.04)) #164~18.04.1-Ubuntu SMP Tue Apr 4 00:20:20 UTC 2023

通过 /proc/version 文件,我们可以获取到 Linux 内核版本、gcc 版本和 Ubuntu 版本 3 项重要信息。

从命令的执行结果可以看出,我使用的是 Ubuntu 18.04 系统,Linux 内核版本为 5.4.0-147-generic,gcc 版本是 7.5.0。

uname -a

linux@ubuntu:~$ uname -a
Linux ubuntu 5.4.0-147-generic #164~18.04.1-Ubuntu SMP Tue Apr 4 00:20:20 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux

uname -a命令能获取 Linux 内核版本和 Ubuntu 版本 2 项信息。

lsb_release -a

linux@ubuntu:~$ lsb_release -a
No LSB modules are available.
Distributor ID:	Ubuntu
Description:	Ubuntu 18.04.6 LTS
Release:	18.04
Codename:	bionic

相对于前两种方式,lsb_release -a命令只能获取 Ubuntu 版本信息。

CentOS 系统

cat /etc/redhat-release

[linux@localhost ~]$ cat /etc/redhat-release
CentOS Linux release 7.5.1804 (Core)

cat /etc/redhat-release命令可以获取 CentOS 版本信息。

从执行结果可以看出,我使用的是 CentOS 7.5.1804 系统。

cat /etc/centos-release

[linux@localhost ~]$ cat /etc/centos-release
CentOS Linux release 7.5.1804 (Core)

cat /etc/centos-release命令和cat /etc/redhat-release的功能完全相同。

cat /proc/version

[linux@localhost ~]$ cat /proc/version
Linux version 3.10.0-862.el7.x86_64 (builder@kbuilder.dev.centos.org) (gcc version 4.8.5 20150623 (Red Hat 4.8.5-28) (GCC) ) #1 SMP Fri Apr 20 16:44:24 UTC 2018

cat /proc/version命令与在 Ubuntu 系统下的表现有些差别,虽然它同样能显示出 Linux 内核版本和 gcc 版本,但是系统版本显示的是 Red Hat 4.8.5-28,而不是 CentOS 发行版本。当然,CentOS 系统就是用 RedHat 源码编译出来的,所以显示这样的结果好像也正常。

uname -a

[linux@localhost ~]$ uname -a
Linux localhost.localdomain 3.10.0-862.el7.x86_64 #1 SMP Fri Apr 20 16:44:24 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux

uname -a命令与 Ubuntu 系统下的表现也不一样。在 CentOS 系统,我们只能看出 Linux 内核版本是 3.10.0-862,看不出 CentOS 版本信息。

hostnamectl

[linux@localhost ~]$ hostnamectl
   Static hostname: localhost.localdomain
         Icon name: computer-vm
           Chassis: vm
        Machine ID: 4c50114e142442a9aa889058800c8f36
           Boot ID: f96742c953d84bffbd6a78c6fa858986
    Virtualization: vmware
  Operating System: CentOS Linux 7 (Core)
       CPE OS Name: cpe:/o:centos:centos:7
            Kernel: Linux 3.10.0-862.el7.x86_64
      Architecture: x86-64

hostnamectl命令列出的信息比较丰富,除了能看出当前使用的是 CentOS 7 和 Linux 内核 3.10.0-862.el7.x86_64,甚至还能看出当前系统运行的环境是 VMware 虚拟机。

lsb_release -a

[linux@localhost ~]$ lsb_release -a
LSB Version:	:core-4.1-amd64:core-4.1-noarch:cxx-4.1-amd64:cxx-4.1-noarch:desktop-4.1-amd64:desktop-4.1-noarch:languages-4.1-amd64:languages-4.1-noarch:printing-4.1-amd64:printing-4.1-noarch
Distributor ID:	CentOS
Description:	CentOS Linux release 7.5.1804 (Core)
Release:	7.5.1804
Codename:	Core

CentOS 系统默认是不包含lsb_release命令的,需要通过yum install -y redhat-lsb安装。其执行结果与 Ubuntu 系统基本相同,可以显示 CentOS 版本信息。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值