如何通过命令行找到我的发行版名称?

如何通过命令行找到我的发行版名称?

是否有任何命令可以输出您的发行版名称,例如:CentOS Ubuntu 等?

我希望制作一个脚本,为每个发行版执行不同批次的命令,并且我需要知道如何使用命令执行此类操作。

答案1

下面是一个完成这项工作的 shell 脚本片段:

# try various methods, in order of preference, to detect distro
# store result in variable '$distro'
if type lsb_release >/dev/null 2>&1 ; then
   distro=$(lsb_release -i -s)
elif [ -e /etc/os-release ] ; then
   distro=$(awk -F= '$1 == "ID" {print $2}' /etc/os-release)
elif [ -e /etc/some-other-release-file ] ; then
   distro=$(ihavenfihowtohandleotherhypotheticalreleasefiles)
fi

# convert to lowercase
distro=$(printf '%s\n' "$distro" | LC_ALL=C tr '[:upper:]' '[:lower:]')

# now do different things depending on distro
case "$distro" in
   debian*)  commands-for-debian ;;
   centos*)  commands-for-centos ;;
   ubuntu*)  commands-for-ubuntu ;;
   mint*)    commands-for-mint ;;
   *)        echo "unknown distro: '$distro'" ; exit 1 ;;
esac

您可能希望在语句中使用比打印错误消息并中止更有用的默认 ( *) 操作。case

答案2

尝试以下命令:

cat /etc/*-release

或者

lsb_release -a

仅查找发行版名称和版本:

cat /etc/issue

答案3

您可以使用 :

  • cat /etc/os-release或者lsb_release -a对于 Debian
  • cat /etc/*-releaselsb_release -a适用于 CentOS/Ubuntu。

相关内容