美文网首页
如何识别Linux的发行版本

如何识别Linux的发行版本

作者: 量U移动广告归因 | 来源:发表于2021-06-25 21:39 被阅读0次
    这个问题看起来好像很简单,其实深究起来还有点复杂

    网上有人说可以用 uname -a 进行查看,那我们来看看到底能不能使用这个作为判别依据

    //各大发行版的 uname -a 输出
    CentOS8.2
    Linux localhost.localdomain 4.18.0-193.el8.x86_64 #1 SMP Fri May 8 10:59:10 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux
    
    Fedora34
    Linux localhost-live 5.11.12-300.fc34.x86_64 #1 SMP Wed Apr 7 16:31:13 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux
    
    Debian9.6
    Linux 4.9.0-8-amd64 #1 SMP Debian 4.9.130-2 (2018-10-27) x86_64 GNU/Linux
    
    OpenSUSE15.3
    Linux localhost.localdomain 5.3.18-57-default #1 SMP Wed Apr 28 10:54:41 UTC 2021 (ba3c2e9) x86_64 x86_64 x86_64 GNU/Linux
    
    Ubuntu20.04
    Linux ubuntu 5.8.0-59-generic #66~20.04.1-Ubuntu SMP Thu Jun 17 11:14:10 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux
    

    除了 Debian 和 Ubuntu ,其他发行版并没有输出特别明显的标识。由此可见,uname -a 的输出并不足以用来标识各大发行版

    那么还有其他的方式来识别吗?有的,那就是 cat /proc/version ,我们来看看这个的输出

    CentOS8.2
    Linux version 4.18.0-193.el8.x86_64 (mockbuild@kbuilder.bsys.centos.org) (gcc version 8.3.1 20191121 (Red Hat 8.3.1-5) (GCC)) #1 SMP Fri May 8 10:59:10 UTC 2020
    
    Fedora34
    Linux version 5.11.12-300.fc34.x86_64 (mockbuild@bkernel01.iad2.fedoraproject.org) (gcc (GCC) 11.0.1 20210324 (Red Hat 11.0.1-0), GNU ld version 2.35.1-41.fc34) #1 SMP Wed Apr 7 16:31:13 UTC 2021
    
    Debian9.6
    Linux version 4.9.0-8-amd64 (debian-kernel@lists.debian.org) (gcc version 6.3.0 20170516 (Debian 6.3.0-18+deb9u1) ) #1 SMP Debian 4.9.130-2 (2018-10-27)
    
    Ubuntu20.04
    Linux version 5.8.0-59-generic (buildd@lcy01-amd64-022) (gcc (Ubuntu 9.3.0-17ubuntu1~20.04) 9.3.0, GNU ld (GNU Binutils for Ubuntu) 2.34) #66~20.04.1-Ubuntu SMP Thu Jun 17 11:14:10 UTC 2021
    
    OpenSUSE15.3
    Linux version 5.3.18-57-default (geeko@buildhost) (gcc version 7.5.0 (SUSE Linux)) #1 SMP Wed Apr 28 10:54:41 UTC 2021 (ba3c2e9)
    

    可以看到,Red Hat系的发行版都会有 Red Hat 的标识,而Debian系的都会有对应的发行版关键词,那么如果 Red Hat系该怎么区分发行版呢?答案就是 cat /etc/redhat-release ,所有Red Hat系的发行版都有这个文件,并且还可以显示版本号

    所以整体逻辑就是,先使用 cat /proc/version 查看是Red Hat系还是Debian系。如果是Red Hat系,再使用 cat /etc/redhat-release 查看具体的发行版和版本号
    下面是一个可以识别发行版的 shell 脚本

    pkg=""
    get_release_pkg(){
        if [[ $(cat /proc/version | grep -i "Red Hat") != "" ]]
        then
            pkg="yum"
        elif [[ $(cat /proc/version | grep -i "Ubuntu" ) != "" ]] ||  [[ $(cat /proc/version | grep -i "Debian" ) != "" ]]
        then
            pkg="apt"
        elif [[ $(cat /proc/version | grep -i "SUSE") != "" ]]
        then
            pkg="zypper"
        fi
    }
    get_release_pkg
    echo ${pkg}
    

    相关文章

      网友评论

          本文标题:如何识别Linux的发行版本

          本文链接:https://www.haomeiwen.com/subject/fyvnyltx.html