¿Cómo puedo saber en qué versión de OS X estoy desde la línea de comandos?

68

Con frecuencia me encuentro con SSHing en varias máquinas con OS X, y sería útil si supiera en qué versión de OS XI estaba funcionando cuando estoy haciendo eso. uname -ano funciona del todo, ya que las versiones del núcleo de Darwin no siempre cambian con el resto del sistema.

Benjamin Pollack
fuente

Respuestas:

78

sw_vers

Mi sugerencia es usar sw_vers. Ejemplo de salida a partir de 10.6.4:

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

La respuesta que sugirió system_profiler | grep 'System Version'es lo que he tratado de usar en el pasado, pero tiene 2 problemas.

  1. Es lento ya que genera un volcado completo de system_profiler de la máquina, reuniendo toda la información de inventario de hardware y software.
  2. La salida de system_profiler ha cambiado con el tiempo. por ejemplo, la salida de grep'Número de serie' en 10.6.4 es "Número de serie (sistema): ZNNNNNZNZZZ", mientras que en 10.4.11 era "Número de serie: ZNNNNZNZZZZ" - la importancia es la capacidad de análisis de la salida y el complemento " (sistema) "la pieza puede ser problemática a menos que esté esperando el cambio.
Mike Gray
fuente
1
Daría la vuelta a esto. `` `Use sw_vers ... --------------------------- La respuesta que sugirió system_profiler...` ``
Tim Visher
@TimVisher De acuerdo. Acabo de editar su respuesta para ponerla en la parte superior.
Joshua Pinter
37

La forma más fácil es:

$ sw_vers -productVersion
10.6.4

De 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 cuando se restablece una contraseña en modo de usuario único, ya que el método varía según la versión de OS X que se esté ejecutando.

Benjamin Oakes
fuente
Gracias por el saludo Benjamin! He actualizado el post para incluir la comprobación de un OS X instalar sin conexión, así: grep -2 ProductVersion /System/Library/CoreServices/SystemVersion.plist. Aloha, Miles
Miles Wolbe
8

Prueba esto:

 system_profiler  | grep 'System Version'

La respuesta de Mike Gray es mejor que esto. Por favor mira eso

kbyrd
fuente
44
lo que dijo Mike Gray.
El modo de usuario único system_profiler SPSoftwareDataTypegana donde sw_verspierde.
devon
5

Aquí hay un artículo de blog con instrucciones Cómo obtener la versión de Mac OS X en un script de Shell

OS_VERSION=`/usr/bin/defaults read "$3/System/Library/CoreServices/SystemVersion" ProductVersion`
echo "$OS_VERSION"
Larry Smithmier
fuente
1
Esto es muy útil para encontrar la versión de un sistema operativo no activo, por ejemplo. un volumen que se está reparando o tal.
iluminar
3

El system_profilerse puede ejecutar como system_profiler SPSoftwareDataType. No hay necesidad de obtener grandes resultados.

usuario242114
fuente
Esto no proporciona una respuesta a la pregunta. Una vez que tenga suficiente reputación , podrá comentar cualquier publicación ; en su lugar, proporcione respuestas que no requieran una aclaración del autor de la pregunta . - De la opinión
Jeff Schaller
@JeffSchaller parece que la respuesta está bien. Responde a la pregunta.
αғsнιη
¿Determina la versión de OSX?
Jeff Schaller
¿Quizás esté destinado a ser un comentario de unix.stackexchange.com/a/584/117549 ?
Jeff Schaller
1
Sí, regresa en la parte "Versión del sistema", vea la versión de OS X desde la línea de comandos , es una respuesta para mí en lugar de un comentario IMO.
αғsнιη