Як я можу сказати, на якій версії OS X я перебуваю з командного рядка?


68

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

Відповіді:


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. Це повільно, оскільки він генерує повний дамп системи_профілер машини, збираючи всю інформацію про інвентар та програмне забезпечення.
  2. Вихід system_profiler з часом змінювався. наприклад, вихід grepдля "Серійного номера" на 10.6.4 - "Серійний номер (система): ZNNNNNZNZZZ", тоді як 10.4.11 - "Серійний номер: 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 працює.


Дякую за кричущий Бенджамін! Я оновив свій пост , щоб включити перевірку автономної OS X встановити наступним чином: grep -2 ProductVersion /System/Library/CoreServices/SystemVersion.plist. Aloha, Miles
Miles Wolbe

8

Спробуйте це:

 system_profiler  | grep 'System Version'

Відповідь Майка Грея краща за цю. Будь ласка, дивіться це


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. Немає необхідності проглядати величезний вихід.


Це не дає відповіді на запитання. Коли у вас буде достатня репутація, ви зможете коментувати будь-яку публікацію ; натомість надайте відповіді, які не потребують уточнення від запитувача . - З огляду
Джефф Шаллер

@JeffSchaller виглядає, що відповідь гаразд. Це дає відповідь на запитання.
αғsnιη

Це визначає версію OSX?
Jeff Schaller

Можливо, це означало б коментар unix.stackexchange.com/a/584/117549 ?
Джефф Шаллер

1
Так, вона повертається в частині "Версія системи", див. Версію OS X з командного рядка , це відповідь для мене замість коментаря IMO.
αғsnιη
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.