Jak mogę sprawdzić, z której wersji systemu OS X korzystam z wiersza polecenia?

68

Często spotykam się z SSHingiem na różnych maszynach z systemem OS X i przydałoby się, gdybym wiedział, która wersja systemu OS XI jest włączona. uname -anie całkiem działa, ponieważ wersje jądra Darwina nie zawsze zmieniają się wraz z resztą systemu.

Benjamin Pollack
źródło

Odpowiedzi:

78

sw_vers

Moja sugestia to użycie sw_vers. Przykładowe dane wyjściowe od 10.6.4:

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

Sugerowana odpowiedź to system_profiler | grep 'System Version'to, czego próbowałem użyć w przeszłości, ale występują 2 problemy.

  1. Jest powolny, ponieważ generuje pełny zrzut system_profiler maszyny, gromadząc wszystkie informacje o spisie sprzętu i oprogramowania.
  2. Dane wyjściowe system_profiler zmieniały się z czasem. np. wyjściem grepdla „Numeru seryjnego” na 10.6.4 jest „Numer seryjny (system): ZNNNNNZNZZZ”, podczas gdy na 10.4.11 był to „Numer seryjny: ZNNNNZNZZZZ” - znaczenie jest analizowalnością wyniku i dodaniem „ (system) ”może być problematyczny, chyba że oczekujesz zmiany.
Mike Gray
źródło
1
Odwróciłbym to. `` Użyj sw_vers… --------------------------- Odpowiedź, która sugerowała system_profiler… ''
Tim Visher
@TimVisher wyraził zgodę. Właśnie zredagowałem jego odpowiedź, aby umieścić ją na szczycie.
Joshua Pinter
37

Najprostszym sposobem jest:

$ sw_vers -productVersion
10.6.4

Od 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

Szczególnie przydatny podczas resetowania hasła w trybie pojedynczego użytkownika, ponieważ metoda różni się w zależności od wersji OS X.

Benjamin Oakes
źródło
Dzięki za wykrzykiwany Benjamin! Mam zaktualizowane stanowisko obejmuje sprawdzenie w trybie offline OS X zainstalować tak: grep -2 ProductVersion /System/Library/CoreServices/SystemVersion.plist. Aloha, Miles
Miles Wolbe,
8

Spróbuj tego:

 system_profiler  | grep 'System Version'

Odpowiedź Mike'a Graya jest lepsza. Proszę to zobaczyć

kbyrd
źródło
4
co powiedział Mike Gray.
Tryb jednego użytkownika system_profiler SPSoftwareDataTypewygrywa tam, gdzie sw_versprzegrywa.
devon,
5

Oto artykuł na blogu z instrukcjami Jak uzyskać wersję Mac OS X w skrypcie powłoki

OS_VERSION=`/usr/bin/defaults read "$3/System/Library/CoreServices/SystemVersion" ProductVersion`
echo "$OS_VERSION"
Larry Smithmier
źródło
1
Jest to bardzo przydatne do znalezienia wersji nieaktywnego systemu operacyjnego, np. wolumin, który jest naprawiany lub taki.
pokażemy
3

system_profilerMoże być uruchamiany jako system_profiler SPSoftwareDataType. Nie musisz grepować dzięki ogromnej wydajności.

użytkownik242114
źródło
To nie daje odpowiedzi na pytanie. Gdy zdobędziesz wystarczającą reputację , będziesz mógł komentować dowolny post ; zamiast tego podaj odpowiedzi, które nie wymagają wyjaśnienia od pytającego . - Z recenzji
Jeff Schaller
@JeffSchaller wygląda, że ​​odpowiedź jest w porządku. Odpowiada na pytanie.
αғsнιη
Określa wersję OSX?
Jeff Schaller
Być może ma to być komentarz unix.stackexchange.com/a/584/117549 ?
Jeff Schaller
1
Tak, powraca w części „Wersja systemu”, patrz Wersja OS X z wiersza poleceń , jest to odpowiedź dla mnie zamiast komentarza IMO.
αғsнιη