如何从命令行知道我使用的OS X版本?


68

我经常发现自己正在通过SSH连接到各种OS X机器,如果我可以在执行此操作时告诉我什么版本的OS XI,这将非常有用。uname -a由于Darwin内核版本并不总是随系统的其余部分而变化,因此不能完全正常工作。

Answers:


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'是我过去尝试使用的答案,但是它有两个问题。

  1. 这很慢,因为它会生成计算机的完整system_profiler转储,并收集所有硬件和软件清单信息。
  2. system_profiler的输出随时间变化。例如,grep在10.6.4上“序列号”的输出为“序列号(系统):ZNNNNNZNZZZ”,而在10.4.11上为“序列号:ZNNNNZNZZZZ”-重要性为输出的可解析性,而加号为“ (系统)”部分可能会出现问题,除非您期望更改。

1
我会把它翻转过来。```使用sw_vers…---------------------------建议的答案system_profiler...```
Tim Visher 2015年

@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。阿罗哈(Miles)
迈尔斯·沃尔贝

8

尝试这个:

 system_profiler  | grep 'System Version'

迈克·格雷的答案比这更好。请看


4
迈克·格雷说的话。

单用户模式system_profiler SPSoftwareDataTypesw_vers失败中胜出。
德文郡(Devon)'18年


3

system_profiler可为运行system_profiler SPSoftwareDataType。无需通过大量输出进行grep。


这不能为问题提供答案。一旦您拥有足够的声誉,您就可以在任何帖子中发表评论;相反,请提供不需要问询者澄清的答案。- 评论
杰夫·谢勒

@JeffSchaller看起来答案很好。它回答了这个问题。
αғsнιη

它确定OSX的版本吗?
Jeff Schaller


1
是的,它确实在“系统版本”部分返回,请从命令行查看OS X版本,这是对我的答复,而不是IMO的注释。
αғsнιη
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.