Como encontro o nome da minha distro via linha de comando?

3

Existe algum comando que produza o nome da sua distro assim: CentOS Ubuntu, etc?

Eu estou olhando para fazer um script que irá executar um lote diferente de comandos para cada distro e eu preciso saber como fazer isso com um comando.

    
por Erik Lind Gou-Said 19.04.2016 / 11:59

3 respostas

1

Aqui está um fragmento de script de shell que faz o trabalho:

# 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

Você pode querer uma ação padrão ( * ) mais útil na instrução case do que imprimir uma mensagem de erro e abortar.

    
por 19.04.2016 / 12:43
0

Tente o seguinte comando:

cat /etc/*-release

ou

lsb_release -a

Localizando apenas o nome e a versão da distribuição:

cat /etc/issue
    
por 19.04.2016 / 12:03
0

Você pode usar:

  • cat /etc/os-release ou lsb_release -a para o Debian
  • cat /etc/*-release ou lsb_release -a para o CentOS / Ubuntu.
por 19.04.2016 / 12:02