Làm cách nào tôi có thể biết phiên bản OS X nào tôi đang sử dụng từ dòng lệnh?


68

Tôi thường xuyên thấy mình SSH vào các máy OS X khác nhau và sẽ hữu ích nếu tôi có thể biết phiên bản OS XI nào đã được bật khi tôi làm điều đó. uname -akhông hoạt động tốt, vì các phiên bản kernel của Darwin không luôn thay đổi với phần còn lại của hệ thống.

Câu trả lời:


78

sw_vers

Đề nghị của tôi là sử dụng sw_vers. Ví dụ đầu ra vào ngày 10.6.4:

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

Câu trả lời được đề xuất system_profiler | grep 'System Version'là những gì tôi đã cố gắng sử dụng trong quá khứ, nhưng nó có 2 vấn đề.

  1. Nó chậm vì nó tạo ra một hệ thống đầy đủ system_profiler của máy, thu thập tất cả thông tin kiểm kê phần cứng và phần mềm.
  2. Đầu ra của system_profiler đã thay đổi theo thời gian. ví dụ như sản lượng grepcho 'Serial Number' trên 10.6.4 là "Serial Number (system): ZNNNNNZNZZZ", trong khi trên 10.4.11 nó là "Serial Number: ZNNNNZNZZZZ" - quan trọng là phân tích cú pháp-khả năng của sản lượng và tiện ích " (hệ thống) "mảnh có thể có vấn đề trừ khi bạn đang mong đợi sự thay đổi.

1
Tôi sẽ lật cái này `` `Sử dụng sw_vers, --------------------------- Câu trả lời gợi ý về` system_profiler``
Tim Visher

@TimVisher Đồng ý. Tôi chỉ chỉnh sửa câu trả lời của anh ấy để đặt nó lên hàng đầu.
Joshua Pinter

37

Cách dễ nhất là:

$ sw_vers -productVersion
10.6.4

Từ 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

Đặc biệt tiện dụng khi đặt lại mật khẩu trong chế độ người dùng, vì phương thức này thay đổi dựa trên phiên bản OS X nào đang chạy.


Cảm ơn vì đã hét lên! Tôi đã cập nhật bài đăng để bao gồm kiểm tra cài đặt OS X ngoại tuyến như vậy : grep -2 ProductVersion /System/Library/CoreServices/SystemVersion.plist. Aloha, Miles
Miles Wolbe

8

Thử đi:

 system_profiler  | grep 'System Version'

Câu trả lời của Mike Gray tốt hơn thế này. Xin vui lòng xem rằng


4
những gì Mike Gray nói.

Chế độ một người dùng system_profiler SPSoftwareDataTypesẽ thắng khi sw_versthua.
devon

5

Dưới đây là một bài viết trên Blog với hướng dẫn Cách tải phiên bản Mac OS X trong Shell Script

OS_VERSION=`/usr/bin/defaults read "$3/System/Library/CoreServices/SystemVersion" ProductVersion`
echo "$OS_VERSION"

1
Điều này rất hữu ích để tìm phiên bản của một hệ điều hành không hoạt động, ví dụ. một khối lượng đang được sửa chữa hoặc như vậy.
ylluminate

3

system_profilerthể được chạy như system_profiler SPSoftwareDataType. Không cần phải grep thông qua sản lượng lớn.


Điều này không cung cấp một câu trả lời cho câu hỏi. Một khi bạn có đủ danh tiếng, bạn sẽ có thể nhận xét về bất kỳ bài đăng nào ; thay vào đó, cung cấp câu trả lời không yêu cầu làm rõ từ người hỏi . - Từ đánh giá
Jeff Schaller

@JeffSchaller xem câu trả lời là ổn. Nó không trả lời cho câu hỏi.
αsнι

Nó quyết định phiên bản của OSX?
Jeff Schaller

Có lẽ đó là một nhận xét của unix.stackexchange.com/a/584/117549 ?
Jeff Schaller

1
Vâng, nó sẽ trở lại trong phần "Phiên bản hệ thống", xem Phiên bản OS X từ Dòng lệnh , đây là câu trả lời cho tôi thay vì bình luận IMO.
αғsнιη
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.