在Unix/Linux平台上找到os名称和版本的最佳方式
发布时间:2020-12-15 19:25:52 所属栏目:安全 来源:网络整理
导读:我需要在Unix / Linux平台上找到操作系统的名称和版本。为此我尝试以下: lsb_release实用程序 / etc / redhat-release或特定文件 但是,似乎不是最好的解决方案,因为LSB_RELEASE支持不再适用于RHEL 7。 有没有什么办法可以在任何Unix或Linux平台上工作?
|
我需要在Unix / Linux平台上找到操作系统的名称和版本。为此我尝试以下:
> lsb_release实用程序 但是,似乎不是最好的解决方案,因为LSB_RELEASE支持不再适用于RHEL 7。 有没有什么办法可以在任何Unix或Linux平台上工作? 任何帮助将不胜感激。
这适用于所有Linux环境。
#!/bin/sh cat /etc/*-release 在Ubuntu中: $ cat /etc/*-release DISTRIB_ID=Ubuntu DISTRIB_RELEASE=10.04 DISTRIB_CODENAME=lucid DISTRIB_DESCRIPTION="Ubuntu 10.04.4 LTS" 或12.04: $ cat /etc/*-release DISTRIB_ID=Ubuntu DISTRIB_RELEASE=12.04 DISTRIB_CODENAME=precise DISTRIB_DESCRIPTION="Ubuntu 12.04.4 LTS" NAME="Ubuntu" VERSION="12.04.4 LTS,Precise Pangolin" ID=ubuntu ID_LIKE=debian PRETTY_NAME="Ubuntu precise (12.04.4 LTS)" VERSION_ID="12.04" 在RHEL中: $ cat /etc/*-release Red Hat Enterprise Linux Server release 6.5 (Santiago) Red Hat Enterprise Linux Server release 6.5 (Santiago) 或使用此脚本: #!/bin/sh
# Detects which OS and if it is Linux then it will detect which Linux
# Distribution.
OS=`uname -s`
REV=`uname -r`
MACH=`uname -m`
GetVersionFromFile()
{
VERSION=`cat $1 | tr "n" ' ' | sed s/.*VERSION.*= // `
}
if [ "${OS}" = "SunOS" ] ; then
OS=Solaris
ARCH=`uname -p`
OSSTR="${OS} ${REV}(${ARCH} `uname -v`)"
elif [ "${OS}" = "AIX" ] ; then
OSSTR="${OS} `oslevel` (`oslevel -r`)"
elif [ "${OS}" = "Linux" ] ; then
KERNEL=`uname -r`
if [ -f /etc/redhat-release ] ; then
DIST='RedHat'
PSUEDONAME=`cat /etc/redhat-release | sed s/.*(// | sed s/)//`
REV=`cat /etc/redhat-release | sed s/.*release // | sed s/ .*//`
elif [ -f /etc/SuSE-release ] ; then
DIST=`cat /etc/SuSE-release | tr "n" ' '| sed s/VERSION.*//`
REV=`cat /etc/SuSE-release | tr "n" ' ' | sed s/.*= //`
elif [ -f /etc/mandrake-release ] ; then
DIST='Mandrake'
PSUEDONAME=`cat /etc/mandrake-release | sed s/.*(// | sed s/)//`
REV=`cat /etc/mandrake-release | sed s/.*release // | sed s/ .*//`
elif [ -f /etc/debian_version ] ; then
DIST="Debian `cat /etc/debian_version`"
REV=""
fi
if [ -f /etc/UnitedLinux-release ] ; then
DIST="${DIST}[`cat /etc/UnitedLinux-release | tr "n" ' ' | sed s/VERSION.*//`]"
fi
OSSTR="${OS} ${DIST} ${REV}(${PSUEDONAME} ${KERNEL} ${MACH})"
fi
echo ${OSSTR}
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
