背景故事
想查看 MacBook Pro 的 CPU 型号,但是点开关于本机并无法获取具体的 CPU 型号。于是查找了在 MacOS 下获取本机详细配置的一些办法。
sw_vers
获取 MacOS 的版本号和编译版本号。
ProductName: Mac OS X
ProductVersion: 10.14.6
BuildVersion: 18G95
uname
uname
命令的英文全称即Unix name
。
用于显示系统相关信息,比如主机名、内核版本号、硬件架构等。
如果未指定任何选项,其效果相当于执行uname -s
命令,即显示系统内核的名字。
uname -a
Darwin linshantangdeMacBook-Pro.local 18.7.0 Darwin Kernel Version 18.7.0: Tue Aug 20 16:57:14 PDT 2019; root:xnu-4903.271.2~2/RELEASE_X86_64 x86_64
参数 | 描述 |
---|---|
-a | 显示系统所有相关信息 |
-m | 显示计算机硬件架构 |
-n | 显示主机名称 |
-r | 显示内核发行版本号 |
-s | 显示内核名称 |
-v | 显示内核版本 |
-p | 显示主机处理器类型 |
-o | 显示操作系统名称 |
-i | 显示硬件平台 |
system_profiler
system_profiler
命令是一个由 System Profiler 应用提供的命令行接口 (CLI) 。
执行与 System Profiler 应用程序程序相同的功能。当没有权限访问 GUI 时,可以通过它来读取系统信息。
此命令替换了在 MacOS 10.2(Jaguar)下位于 /usr/sbin 中的 AppleSystemProfiler 。
通过 man
命令查看system_profile
命令信息如下:
除非你确切知道你查找的内容,否则 system_profiler
输出的大量信息使用起来将非常不方便。
以下为为一些更好使用 system_profiler
的方法:
-
detailLevel
system_profiler
命令提供三种不同级别的报告:mini,basic 和 full 。
system_profiler -detailLevel mini
:生成来自 System Profiler 的信息文本报告,而不包含任何个人信息或识别信息。system_profiler -detailLevel basic
:仅使用基本的硬件和网络信息生成报告。system_profiler -detailLevel full
:使用 System Profiler 生成的所有可用信息生成报告。system_profiler -detailLevel - n
:指定 n 为以下数字以指定报告的详细程度。
参数 | 描述 |
---|---|
-2 | 仅简要概述数据 |
-1 | 简短数据报告 |
0 | 标准数据报告 |
1 | 扩展数据报告 |
-
dataType
虽然将system_profiler
与-detailLevel
标志一起使用会使它更有用,但是当将它与特定的数据类型一起使用时,该命令才能发挥的真正效果。
在查看可用数据类型的列表时,可以使用 -listDataTypes
命令。
system_profiler -listDataTypes
可用的数据类型为:
- SPParallelATADataType
- SPUniversalAccessDataType
- SPApplicationsDataType
- SPAudioDataType
- SPBluetoothDataType
- SPCameraDataType
- SPCardReaderDataType
- SPComponentDataType
- SPDeveloperToolsDataType
- SPDiagnosticsDataType
- SPDisabledSoftwareDataType
- SPDiscBurningDataType
- SPEthernetDataType
- SPExtensionsDataType
- SPFibreChannelDataType
- SPFireWireDataType
- SPFirewallDataType
- SPFontsDataType
- SPFrameworksDataType
- SPDisplaysDataType
- SPHardwareDataType
- SPHardwareRAIDDataType
- SPInstallHistoryDataType
- SPNetworkLocationDataType
- SPLogsDataType
- SPManagedClientDataType
- SPMemoryDataType
- SPNVMeDataType
- SPNetworkDataType
- SPPCIDataType
- SPParallelSCSIDataType
- SPPowerDataType
- SPPrefPaneDataType
- SPPrintersSoftwareDataType
- SPPrintersDataType
- SPConfigurationProfileDataType
- SPSASDataType
- SPSerialATADataType
- SPSPIDataType
- SPSoftwareDataType
- SPStartupItemDataType
- SPStorageDataType
- SPSyncServicesDataType
- SPThunderboltDataType
- SPUSBDataType
- SPNetworkVolumeDataType
- SPWWANDataType
- SPAirPortDataType
若要生成仅包含一种数据类型信息的文本报告,只需将数据类型添加到 system_profiler
命令末尾,如下示例:
也可以生成包含多种数据类型以准确生成要查看的报告:
-
输出到XML
可以使用-xml
命令将system_profiler
生成的报告输出为 XML 。该命令可以与前面的任何命令相结合使用,以调整报告准确包含所需的信息。
sysctl
sysctl
命令被用于在内核运行时动态地修改内核的运行参数,可用的内核参数在目录 /proc/sys
中。
它包含一些 TCP/IP 堆栈和虚拟内存系统的高级选项, 这可以让有经验的管理员提高引人注目的系统性能。用 sysctl
可以读取设置超过五百个系统变量。
sysctl
命令对内核参数的修改仅在当前生效,重启系统后参数丢失。如果希望参数永久生效可以修改配置文件 /etc/sysctl.conf
。
参数 | 描述 |
---|---|
-n | 打印值时不打印关键字 |
-e | 忽略未知关键字错误 |
-N | 仅打印名称 |
-w | 当改变sysctl设置时使用此项 |
-p | 从配置文件“/etc/sysctl.conf”加载内核参数设置 |
-a | 打印当前所有可用的内核参数变量和值 |
-A | 以表格方式打印当前所有可用的内核参数变量和值 |
文章开始说到的在 MacOS 中查询 CPU 的具体型号就可以使用sysctl -n machdep.cpu.brand_string
进行查看:
$ sysctl -n machdep.cpu.brand_string
Intel(R) Core(TM) i5-4278U CPU @ 2.60GHz