Como posso saber em que versão do OS X estou na linha de comando?

68

Frequentemente, me encontro SSHing em várias máquinas OS X, e seria útil se eu soubesse qual versão do OS XI estava quando eu fazia isso. uname -anão funciona muito bem, já que as versões do kernel do Darwin nem sempre mudam com o resto do sistema.

Benjamin Pollack
fonte

Respostas:

78

sw_vers

Minha sugestão é usar sw_vers. Exemplo de saída a partir de 10.6.4:

> sw_vers 
ProductName:    Mac OS X
ProductVersion: 10.6.4
BuildVersion:   10F569

A resposta sugerida system_profiler | grep 'System Version'é o que tentei usar no passado, mas há 2 problemas.

  1. É lento, pois gera um despejo completo de system_profiler da máquina, reunindo todas as informações de inventário de hardware e software.
  2. A saída do system_profiler mudou ao longo do tempo. por exemplo, a saída de greppara 'Número de Série' em 10.6.4 é "Número de Série (sistema): ZNNNNNZNZZZ", enquanto em 10.4.11 era "Número de Série: ZNNNNZNNZZZZ" - sendo a importância a capacidade de analisar a saída e adicionar " (sistema) "pode ​​ser problemático, a menos que você esteja esperando a alteração.
Mike Gray
fonte
11
Eu iria virar isso. `` Use sw_vers… --------------------------- A resposta que sugeriu system_profiler... `` `
Tim Visher
@TimVisher Concordou. Acabei de editar sua resposta para colocá-la no topo.
21417 Joshua Pinter
37

A maneira mais fácil é:

$ sw_vers -productVersion
10.6.4

Em http://tinyapps.org/blog/mac/201008140700_os_x_version_terminal.html :

$ sw_vers
ProductName:    Mac OS X
ProductVersion: 10.6.4
BuildVersion:  
10F569
$ sw_vers -productVersion
10.6.4

Especialmente útil ao redefinir uma senha no modo de usuário único, pois o método varia de acordo com a versão do OS X em execução.

Benjamin Oakes
fonte
Obrigado pela mensagem Benjamin! Eu atualizei o post para incluir a verificação de um offline OS X instalar assim: grep -2 ProductVersion /System/Library/CoreServices/SystemVersion.plist. Aloha, Miles
Miles Wolbe 13/09/16
8

Tente o seguinte:

 system_profiler  | grep 'System Version'

A resposta de Mike Gray é melhor que isso. Por favor, veja isso

kbyrd
fonte
4
o que Mike Gray disse.
O modo de usuário único system_profiler SPSoftwareDataTypevence onde sw_versperde.
Devon
5

Aqui está um artigo do blog com instruções Como obter a versão do Mac OS X em um script de shell

OS_VERSION=`/usr/bin/defaults read "$3/System/Library/CoreServices/SystemVersion" ProductVersion`
echo "$OS_VERSION"
Larry Smithmier
fonte
11
Isso é muito útil para encontrar a versão de um sistema operacional não ativo, por exemplo. um volume que está sendo reparado ou algo assim.
precisa
3

O system_profilerpode ser executado como system_profiler SPSoftwareDataType. Não há necessidade de grep através de uma enorme produção.

user242114
fonte
Isso não fornece uma resposta para a pergunta. Depois de ter reputação suficiente, você poderá comentar qualquer postagem ; em vez disso, forneça respostas que não exijam esclarecimentos do solicitante . - Da avaliação
Jeff Schaller
@JeffSchaller parece que a resposta é boa. Faz uma resposta para a pergunta.
precisa saber é
Determina a versão do OSX?
Jeff Schaller
Talvez seja para ser um comentário de unix.stackexchange.com/a/584/117549 ?
Jeff Schaller
11
Sim, ele retorna na parte "Versão do sistema". Consulte a versão do OS X na linha de comando . É uma resposta para mim, em vez de um comentário IMO.
αғsнιη