Questão Como faço para descobrir qual versão do Linux estou executando?


Existe uma maneira de determinar qual versão (distribuição e versão do kernel, suponho) do Linux está sendo executada (a partir da linha de comando), que funciona em qualquer sistema Linux?


192


origem




Respostas:


O kernel é universalmente detectado com uname:

$ uname -or
2.6.18-128.el5 GNU/Linux

Não existe realmente uma forma de distribuição cruzada para determinar em qual distribuição e versão você está. Houve tentativas de tornar isso consistente, mas no final varia, infelizmente. As ferramentas LSB fornecem essas informações, mas ironicamente não são instaladas por padrão em todos os lugares. Exemplo em um sistema Ubuntu 9.04 com o lsb-release pacote instalado:

$ lsb_release -irc
Distributor ID: Ubuntu
Release:        9.04
Codename:       jaunty

Caso contrário, o método amplamente disponível mais próximo é a verificação /etc/alguma coisa-release arquivos. Eles existem na maioria das plataformas comuns e em seus derivados (ou seja, Red Hat e CentOS).

Aqui estão alguns exemplos.

O Ubuntu tem /etc/lsb-release:

$ cat /etc/lsb-release
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=9.04
DISTRIB_CODENAME=jaunty
DISTRIB_DESCRIPTION="Ubuntu 9.04"

Mas o Debian tem /etc/debian_version:

$ cat /etc/debian_version
5.0.2

Fedora, Red Hat e CentOS têm:

Fedora: $ cat /etc/fedora-release
Fedora release 10 (Cambridge)

Red Hat/older CentOS: $ cat /etc/redhat-release
CentOS release 5.3 (Final)

newer CentOS: $ cat /etc/centos-release
CentOS Linux release 7.1.1503 (Core)

Gentoo:

$ cat /etc/gentoo-release
Gentoo Base System release 1.12.11.1

Eu não tenho um sistema SUSE disponível no momento, mas acredito que seja /etc/SuSE-release.

O Slackware tem /etc/slackware-release e / ou /etc/slackware-version.

Mandriva tem /etc/mandriva-release.

Para a maioria das distribuições populares,

$ cat /etc/*{release,version}

Na maioria das vezes funciona. Desmontado e as instalações do "servidor" barebones podem não ter o pacote 'release' para a distribuição instalada.

Além disso, dois programas de terceiros que você pode usar para obter essas informações automaticamente são Ohai e Facter.

Note que muitas distribuições possuem esse tipo de informação /etc/issue ou /etc/motd, mas algumas políticas de segurança e melhores práticas indicam que esses arquivos devem conter banners de notificação de acesso.

Relacionado: Como descobrir a versão do pacote de software instalado no nó?, .


253



Lol aqui eu estava pensando em sugerir: procure por About! - Ivo Flipse♦
O Slackware possui o / etc / slackware-version - Ken Keenan
Obrigado Ken, eu também não tenho um sistema slackware. - jtimberman
IOW: ls / etc / * {release, version} e examina o que vier de volta ... - freiheit
A maioria também tem o / etc / issue - Drew Stephens


Você também pode tentar:

$ cat / etc / issue

Geralmente (embora nem sempre) lhe dirá qual distribuição você está usando. / etc / issue é o arquivo usado para a tela de login.


38



Este é o único que me ajudou em um servidor compartilhado do Media Temple. Obrigado!! - TryTryAgain
Ha, na RedHat, isso é apenas \S[newline]Kernel \r on an \m - ruffin


Núcleo: uname -a


19



+1. Para sistemas semelhantes, como MinGW, o "-a" é necessário para obter as informações da versão, por exemplo, "MINGW32_NT-5.1 LAP065 1.0.17 (0.48 / 3/2) 2011-04-24 23:39 i686 Msys". - Peter Mortensen


lsb_release -a, quando disponível, é útil.


13





cat /etc/os-release

no mínimo para o Ubuntu, Fedora e OpenSUSE.

Não funciona para o OS X pelo menos até 10.9 (Mavericks). Usar sw_vers em vez de.

O OpenSUSE tinha cat / etc / SuSE-release até 13.1, mas está obsoleto em favor do os-release.

Redhat 6.1 tem gato / etc / redhat-release


13



DOC: freedesktop.org/software/systemd/man/os-release.html - pevik


cat /proc/version me encontrou a Red Hat em um VPS compartilhado.


9





Núcleo: uname -r

Distro: lsb_release -a

Estes serão executados na maioria dos sistemas Linux


4





Um-liner

lsb_release -a && uname -r

3



Isso pode ser mais apropriado como um comentário sobre a resposta de Albert Z. - fixer1234
resposta poderosa para concluir todas as respostas! Eu devo fazer um esforço para o esforço :) - user_balaz