Wie kann ich über die Befehlszeile feststellen, auf welcher Version von OS X ich mich befinde?

68

Ich stelle häufig fest, dass ich in verschiedene OS X-Computer SSH-fähig bin, und es wäre nützlich, wenn ich feststellen könnte, auf welcher OS XI-Version sich dies befand. uname -afunktioniert nicht ganz, da sich Darwin-Kernelversionen nicht immer mit dem Rest des Systems ändern.

Benjamin Pollack
quelle

Antworten:

78

sw_vers

Mein Vorschlag ist zu verwenden sw_vers. Beispielausgabe ab 10.6.4:

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

Die vorgeschlagene Antwort system_profiler | grep 'System Version'ist das, was ich in der Vergangenheit versucht habe, aber es gibt zwei Probleme.

  1. Es ist langsam, da es einen vollständigen system_profiler-Speicherauszug des Computers generiert, in dem alle Hardware- und Softwareinventurinformationen erfasst werden.
  2. Die Ausgabe von system_profiler hat sich im Laufe der Zeit geändert. Beispiel: Die Ausgabe von grepfür 'Seriennummer' in 10.6.4 ist "Seriennummer (System): ZNNNNNZNZZZ", während sie in 10.4.11 "Seriennummer: ZNNNNZNZZZ" lautete - wichtig ist die Analysefähigkeit der Ausgabe und der Addition. " (System) "kann problematisch sein, wenn Sie die Änderung nicht erwarten.
Mike Gray
quelle
1
Ich würde das umdrehen. `` `Verwenden Sie sw_vers… --------------------------- Die Antwort, die vorschlug system_profiler…` `
Tim Visher
@ TimVisher Einverstanden. Ich habe seine Antwort soeben bearbeitet, dass sie ganz oben steht.
Joshua Pinter
37

Der einfachste Weg ist:

$ sw_vers -productVersion
10.6.4

Von 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

Besonders praktisch beim Zurücksetzen eines Kennworts im Einzelbenutzermodus, da die Methode abhängig von der ausgeführten OS X-Version variiert.

Benjamin Oakes
quelle
Danke für den Schrei Benjamin! Ich habe den Beitrag aktualisiert eine Offline - OS X wie so installieren , um einschliessen: grep -2 ProductVersion /System/Library/CoreServices/SystemVersion.plist. Aloha, Miles
Miles Wolbe
8

Versuche dies:

 system_profiler  | grep 'System Version'

Die Antwort von Mike Gray ist besser als diese. Bitte sehen Sie das

kbyrd
quelle
4
was Mike Gray gesagt hat.
Einzelbenutzermodus system_profiler SPSoftwareDataTypegewinnt, wo sw_versverliert.
Devon
5

Hier ist ein Blog-Artikel mit Anweisungen zum Abrufen der Mac OS X-Version in einem Shell-Skript

OS_VERSION=`/usr/bin/defaults read "$3/System/Library/CoreServices/SystemVersion" ProductVersion`
echo "$OS_VERSION"
Larry Smithmier
quelle
1
Dies ist sehr nützlich, um die Version eines nicht aktiven Betriebssystems zu finden, z. ein Volume, das repariert wird oder so.
Ylluminate
3

Die system_profilerkönnen als ausgeführt werden system_profiler SPSoftwareDataType. Keine Notwendigkeit, durch große Ausgaben zu springen.

user242114
quelle
Dies ist keine Antwort auf die Frage. Sobald Sie über eine ausreichende Reputation verfügen, können Sie jeden Beitrag kommentieren . Geben Sie stattdessen Antworten an, die keine Klärung durch den Fragesteller erfordern . - Aus der Bewertung
Jeff Schaller
@ JeffSchaller sieht die Antwort ist in Ordnung. Es gibt eine Antwort auf die Frage.
αғsнιη
Es bestimmt die Version von OSX?
Jeff Schaller
Vielleicht soll es ein Kommentar von unix.stackexchange.com/a/584/117549 sein ?
Jeff Schaller
1
Ja, es wird im Teil "Systemversion" zurückgegeben, siehe OS X-Version von der Befehlszeile , es ist eine Antwort auf mich anstelle eines Kommentars IMO.
αғsнιη