Bagaimana saya tahu versi OS X yang saya gunakan dari baris perintah?

68

Saya sering menemukan diri saya SSHing ke berbagai mesin OS X, dan akan berguna jika saya bisa mengetahui versi OS XI apa yang sedang digunakan ketika saya melakukan itu. uname -atidak cukup berhasil, karena versi kernel Darwin tidak selalu berubah dengan sistem lainnya.

Benjamin Pollack
sumber

Jawaban:

78

sw_vers

Saran saya adalah menggunakan sw_vers. Contoh output pada 10.6.4:

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

Jawaban yang disarankan system_profiler | grep 'System Version'adalah apa yang saya coba gunakan di masa lalu, tetapi memiliki 2 masalah.

  1. Ini lambat karena menghasilkan pembuangan system_profiler penuh dari mesin, mengumpulkan semua informasi inventaris perangkat keras dan perangkat lunak.
  2. Output dari system_profiler telah berubah seiring waktu. misalnya keluaran grepuntuk 'Serial Number' pada 10.6.4 adalah "Serial Number (sistem): ZNNNNNNNNNZZZ", sedangkan pada 10.4.11 itu "Serial Number: ZNNNNZNZZZZ" - yang penting adalah kemampuan parse dari output dan add " (sistem) "bagian bisa bermasalah kecuali Anda mengharapkan perubahan.
Mike Gray
sumber
1
Saya akan membalik ini. `` `Gunakan sw_vers… --------------------------- Jawaban yang disarankan system_profiler...` ``
Tim Visher
@TimVisher Setuju. Saya baru saja mengedit jawabannya untuk meletakkannya di atas.
Joshua Pinter
37

Cara termudah adalah:

$ sw_vers -productVersion
10.6.4

Dari 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

Sangat berguna saat mengatur ulang kata sandi dalam mode pengguna tunggal, karena metode ini bervariasi berdasarkan pada versi OS X mana yang berjalan.

Benjamin Oakes
sumber
Terima kasih atas teriakan Benjamin! Saya telah memperbarui posting untuk menyertakan memeriksa OS secara offline X install seperti: grep -2 ProductVersion /System/Library/CoreServices/SystemVersion.plist. Aloha, Miles
Miles Wolbe
8

Coba ini:

 system_profiler  | grep 'System Version'

Jawaban Mike Gray lebih baik dari ini. Silakan lihat itu

kbyrd
sumber
4
apa yang dikatakan Mike Gray.
Mode single-user system_profiler SPSoftwareDataTypemenang jika sw_verskalah.
devon
5

Berikut ini adalah artikel Blog dengan instruksi Cara Mendapatkan Versi Mac OS X dalam Shell Script

OS_VERSION=`/usr/bin/defaults read "$3/System/Library/CoreServices/SystemVersion" ProductVersion`
echo "$OS_VERSION"
Larry Smithmier
sumber
1
Ini sangat berguna untuk menemukan versi sistem operasi yang tidak aktif, misalnya. volume yang sedang diperbaiki atau semacamnya.
ylluminate
3

The system_profilerdapat dijalankan sebagai system_profiler SPSoftwareDataType. Tidak perlu melalui output besar.

pengguna242114
sumber
Ini tidak memberikan jawaban untuk pertanyaan itu. Setelah memiliki reputasi yang cukup, Anda dapat mengomentari setiap pos ; alih-alih, berikan jawaban yang tidak memerlukan klarifikasi dari penanya . - Dari Ulasan
Jeff Schaller
@ Jeffealler terlihat jawabannya baik-baik saja. Itu menjawab pertanyaan.
αғsнιη
Itu menentukan versi OSX?
Jeff Schaller
Mungkin itu dimaksudkan untuk menjadi komentar unix.stackexchange.com/a/584/117549 ?
Jeff Schaller
1
Ya, itu kembali di bagian "Versi Sistem", lihat Versi OS X dari Baris Perintah , ini adalah jawaban bagi saya alih-alih komentar IMO.
αғsнιη