Как я могу узнать, какая версия OS X у меня из командной строки?

68

Я часто нахожусь в SSHing на различных машинах OS X, и было бы полезно, если бы я мог сказать, какая версия OS XI была, когда я делаю это. uname -aне совсем работает, так как версии ядра Дарвина не всегда меняются вместе с остальной системой.

Бенджамин Поллак
источник

Ответы:

78

sw_vers

Мое предложение заключается в использовании sw_vers. Пример вывода по состоянию на 10.6.4:

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

Предложенный ответ system_profiler | grep 'System Version'- это то, что я пытался использовать в прошлом, но у него есть 2 проблемы.

  1. Он медленный, поскольку генерирует полный дамп system_profiler компьютера, собирая всю информацию об аппаратном и программном обеспечении.
  2. Вывод system_profiler изменился со временем. Например, grepдля «Serial Number» на 10.6.4 выводится «Serial Number (system): ZNNNNNZNZZZ», в то время как для 10.4.11 это было «Serial Number: ZNNNNZNZZZZ» - важность - это возможность анализа выходных данных и сложения » (система) "кусок может быть проблематичным, если вы не ожидаете изменения.
Майк Грей
источник
1
Я бы перевернул это. `` `Используйте sw_vers… --------------------------- Ответ, который предложил system_profiler…` ``
Тим Вишер
@TimVisher Согласен. Я просто отредактировал его ответ, чтобы поставить его наверху.
Джошуа Пинтер
37

Самый простой способ это:

$ sw_vers -productVersion
10.6.4

С 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

Особенно удобно при сбросе пароля в однопользовательском режиме, поскольку метод зависит от того, какая версия OS X работает.

Benjamin Oakes
источник
Спасибо за крик Бенджамина! Я обновил свой пост , чтобы включить проверку автономной OS X установить следующим образом: grep -2 ProductVersion /System/Library/CoreServices/SystemVersion.plist. Алоха, Майлз
Майлз Вольб
8

Попробуй это:

 system_profiler  | grep 'System Version'

Ответ Майка Грея лучше, чем этот. Пожалуйста, посмотрите, что

kbyrd
источник
4
что сказал Майк Грей.
Однопользовательский режим system_profiler SPSoftwareDataTypeпобеждает там, где sw_versпроигрывает.
Девон
5

Вот статья в блоге с инструкциями Как получить версию Mac OS X в сценарии оболочки

OS_VERSION=`/usr/bin/defaults read "$3/System/Library/CoreServices/SystemVersion" ProductVersion`
echo "$OS_VERSION"
Ларри Смитмиер
источник
1
Это очень полезно для поиска версии неактивной операционной системы, например. объем, который ремонтируется или тому подобное.
Иллюминат
3

system_profilerМожет работать как system_profiler SPSoftwareDataType. Нет необходимости просматривать огромный вывод.

user242114
источник
Это не дает ответа на вопрос. Как только у вас будет достаточно репутации, вы сможете комментировать любой пост ; вместо этого предоставьте ответы, которые не требуют разъяснений от автора . - Из обзора
Джефф Шаллер
@JeffSchaller выглядит ответ в порядке. Это делает ответ на вопрос.
α18sнιη
Это определяет версию OSX?
Джефф Шаллер
Возможно, это должен быть комментарий unix.stackexchange.com/a/584/117549 ?
Джефф Шаллер
1
Да, он возвращается в части «Версия системы», см. Версию OS X из командной строки , это ответ мне вместо комментария IMO.
августа