Comment savoir quelle version d'OS X je suis en ligne de commande?

68

Je me trouve souvent en SSH sur diverses machines OS X, et il serait utile de pouvoir indiquer la version d'OS XI utilisée lorsque je le fais. uname -ane fonctionne pas, car les versions du noyau Darwin ne changent pas toujours avec le reste du système.

Benjamin Pollack
la source

Réponses:

78

sw_vers

Ma suggestion est d'utiliser sw_vers. Exemple de sortie en 10.6.4:

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

La réponse suggérée system_profiler | grep 'System Version'est ce que j’ai essayé d’utiliser dans le passé, mais il ya deux problèmes.

  1. Il est lent, car il génère un vidage système complet de la machine, regroupant toutes les informations d'inventaire matériel et logiciel.
  2. La sortie de system_profiler a changé au fil du temps. Par exemple, la sortie de grep'Numéro de série' sous 10.6.4 est "Numéro de série (système): ZNNNNNZNZZZ" ", alors que sous 10.4.11, elle était" Numéro de série: ZNNNNZNZZZZ "- l’importance étant la capacité d'analyse syntaxique de la sortie et de l'ajout" (système) "pièce peut être problématique, sauf si vous attendez le changement.
Mike Gray
la source
1
Je retournerais ça autour. `` `Utilisez sw_vers… --------------------------- La réponse qui a suggéré system_profiler…` ``
Tim Visher
@ TimVisher D'accord. Je viens de modifier sa réponse pour la mettre en haut.
Joshua Pinter
37

Le moyen le plus simple est:

$ 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

Particulièrement utile lors de la réinitialisation d'un mot de passe en mode mono-utilisateur, car la méthode varie en fonction de la version de OS X en cours d'exécution.

Benjamin Oakes
la source
Merci pour le shout-out Benjamin! J'ai mis à jour le poste d'inclure la vérification d' un OS X en mode hors connexion installer comme ceci: grep -2 ProductVersion /System/Library/CoreServices/SystemVersion.plist. Aloha, Miles
Miles Wolbe
8

Essaye ça:

 system_profiler  | grep 'System Version'

La réponse de Mike Gray est meilleure que celle-là. S'il vous plaît voir que

kbyrd
la source
4
ce que Mike Gray a dit.
Le mode mono-utilisateur system_profiler SPSoftwareDataTypegagne là où sw_versperd.
devon
5

Voici un article de blog avec les instructions Comment obtenir la version Mac OS X dans un script shell

OS_VERSION=`/usr/bin/defaults read "$3/System/Library/CoreServices/SystemVersion" ProductVersion`
echo "$OS_VERSION"
Larry Smithmier
la source
1
Ceci est très utile pour trouver la version d’un système d’exploitation non actif, par exemple. un volume en cours de réparation ou tel.
ylluminate
3

Le system_profilerpeut être exécuté comme system_profiler SPSoftwareDataType. Pas besoin de grep grâce à une sortie énorme.

utilisateur242114
la source
Cela ne fournit pas de réponse à la question. Une fois que vous avez suffisamment de réputation, vous pourrez commenter n'importe quel message . au lieu de cela, fournissez des réponses qui ne nécessitent pas de clarification de la part du demandeur . - De l'avis
Jeff Schaller
@JeffSchaller semble que la réponse est bonne. Cela répond à la question.
α18sнιη
Il détermine la version d'OSX?
Jeff Schaller
C'est peut-être un commentaire de unix.stackexchange.com/a/584/117549 ?
Jeff Schaller
1
Oui, cela retourne dans la partie "Version système", voir OS X Version à partir de la ligne de commande , c’est une réponse pour moi au lieu d’un commentaire IMO.
αғsнιη