
Я часто подключаюсь по SSH к различным машинам с OS X, и было бы полезно знать, какая версия OS X установлена, когда я это делаю. uname -a
Это не совсем работает, поскольку версии ядра Darwin не всегда меняются вместе с остальной частью системы.
решение1
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 проблемы.
- Он работает медленно, поскольку генерирует полный дамп system_profiler машины, собирая всю информацию об инвентаризации оборудования и программного обеспечения.
- Вывод system_profiler со временем изменился. Например, вывод
grep
для «Серийного номера» в версии 10.6.4 — «Серийный номер (система): ZNNNNNNZNZZZ», тогда как в версии 10.4.11 это был «Серийный номер: ZNNNNZNZZZ» — важно, чтобы вывод можно было проанализировать, и добавление части «(система)» может вызвать проблемы, если вы не ожидаете изменений.
решение2
Самый простой способ:
$ 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.
решение3
Попробуй это:
system_profiler | grep 'System Version'
Ответ Майка Грея лучше, чем этот. Пожалуйста, посмотрите на это
решение4
Можно system_profiler
запустить как system_profiler SPSoftwareDataType
. Нет необходимости продираться через огромный вывод.