我经常发现自己通过 SSH 连接到各种 OS X 机器,如果我能知道在执行此操作时使用的是哪个版本的 OS XI,那就很有用了。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'
是我过去尝试使用的,但它有两个问题。
- 它很慢,因为它生成机器的完整 system_profiler 转储,收集所有硬件和软件库存信息。
- system_profiler 的输出随着时间的推移而变化。例如,10.6.4 上“序列号”的输出
grep
是“序列号(系统):ZNNNNNZNZZZ”,而在 10.4.11 上它是“序列号:ZNNNNNZNZZZZ” - 重要性在于输出的解析能力和添加“ (系统)”部分可能会出现问题,除非您期望进行更改。
答案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
.无需 grep 处理大量输出。