System Information (formerly System Profiler) in OS X provides a detailed breakdown of the hardware and software configuration of a Mac, from Bluetooth information and attached USB devices to installed software and extensions.
While most of us have used System Information at one time or another, it’s an often overlooked and undervalued tool. To get the most out of it, we’ll exploring the app, and its lesser-known command-line options, in further detail.
Launching System Information
There are a number of ways you can access System Information as it has a number of shortcuts in different places, the most common way is from the About This Mac pane.
Click on More Info to reveal some additional information about the Mac and then click System Report…
You can bypass this process completely by holding down the Alt key when in the Apple menu. This will swap About This Mac to System Information… and allow you to launch it directly.
Finally, you can simply launch the app from where it resides: within /Applications/Utilities.
The System Information App
The System Information app is nothing more than a tweaked XML viewer. It doesn’t do anything itself, instead relying upon the system_profiler
command (which we’ll come to later) to generate hardware and software configuration reports.
The report that the command generates is then opened by System Information and formatted in a way that’s easy to view. System Information also views a report that has already been created, though it can be refreshed at any time by selecting File > Refresh Information.
Each section is broken down into its respective categories, such as Hardware, Network and Software, and their related reports are separated into subcategories.
Within the app’s menu are a few options that can alter the output of the report. If you’d prefer not to view a full report, you can select Show Less Information which will hide most Software reports. This can be toggled by selecting Show More Information to bring them back.
System Reports
A great benefit of System Information is that reports can be saved and opened on any Mac. You can save a report from one Mac and open it on another, useful when trying to troubleshoot an issue with a remote Mac.
To save a report, select File > Save. The report saved reflects the current view of System Information so if you’ve opted to display less information, a basic report is saved.
A full report can be several megabytes in size whereas a basic report can be only a few hundred kilobytes. Unless there’s a need to include all software information, it can be sometimes worth displaying less information before saving a report.
All system reports are saved with the .spx
file extension and opening any system reports will launch System Information automatically.
System Information Via the Command-Line
As we touched upon earlier, System Information is just a viewer for system reports, all of the work for creating them is done by the command system_profiler
.
Sometimes it may be necessary to bypass System Information when we’re wanting to view a report. For example, you may need a system report of a Mac that you only have remote access to via SSH so opening System Information wouldn’t be possible, but that doesn’t mean we can’t create a system report.
Generating Reports
To get started, open Terminal and enter the command system_profiler
. You’ll notice that (after a brief delay) a lot of system information is displayed within the Terminal window.
Running the command without any arguments just dumps the entire system report to the screen. If we wanted to find out what the Mac’s Model Identifier is, we could use:
system_profiler | grep "Model Identifier"
This isn’t very efficient as running system_profiler
generates a complete report each time, which can be time consuming if the Mac contains a lot of software or isn’t particularly speedy.
Instead, we can generate a report only on a particular part of the Mac, such as network or storage information, by specifying a Data Type. What data types are available depend on the Mac’s hardware capabilities and configuration.
To list all of the available types of data, use the listDataTypes
argument:
system_profiler -listDataTypes
You can request a system report on only a specific part of the hardware by invoking the system_profiler
command, along with the data type, like so:
system_profiler SPCameraDataType
The Mac’s Model Identifier is located within the SPHardwareDataType
data type. By generating a report just using that data type, the result to our grep search is substantially quicker:
system_profiler SPHardwareDataType | grep "Model Identifier"
Saving a System Report
To save a text-only version of a system report to your desktop, you can use the following command:
system_profiler > ~/Desktop/system_report.txt
As you’re redirecting the output to a text file rather than the terminal window, any reports you generate (including on specific data types) can be saved.
Full Report Detail Level
By default, system_profiler
generates a complete system report. Just like System Information, we can choose to generate a more basic one using the argument detailLevel
:
system_profiler -detailLevel [basic|mini|full] > ~/Desktop/system_report.txt
There are three different levels of detail that can be used:
- mini (report with no personal information, such as Serial Number of Hardware UUID)
- basic (basic hardware and network information)
- full (all available information)
So to generate a basic report, the command would be:
system_profiler -detailLevel basic > ~/Desktop/system_report_basic.txt
Opening Reports in System Information
So far, the reports generated have all been plaintext. To create System Information-compatible reports, an additional argument would be needed, xml
, and the file extension specified must be .spx
.
Combining all of this together, an example command would be:
system_profiler -detailLevel mini -xml > ~/Desktop/system_report_mini.spx
These reports can then be opened within System Information and more easily viewed.
Wrapping Up
The ability to generate system reports via the command-line using system_profiler
provides a level of flexibility that System Information cannot, such as generating or scheduling reports on remote Macs via SSH. This can be advantageous when trying to determine what software is installed on which Mac or if any users are running an outdated version of OS X.