macOS Tricks#
Operator one-liners for macOS configuration, monitoring, and
quality-of-life. Generate passwords, query external IP, drive
Spotlight, monitor performance with powermetrics, and tune the
firewall, ARD, AirDrop, and TFTP daemon.
Misc#
# Generate secure password, copy to clipboard
$ LC_ALL=C tr -dc "[:alnum:]" < /dev/urandom | head -c 20 | pbcopy
# External IP
$ dig +short myip.opendns.com @resolver1.opendns.com
$ curl -s https://api.ipify.org && echo
# Eject all mountable volumes
$ osascript -e 'tell application "Finder" to eject (every disk whose ejectable is true)'
# Set login window text
$ sudo defaults write /Library/Preferences/com.apple.loginwindow LoginwindowText "Your text"
# Preview via QuickLook
$ qlmanage -p /path/to/file
# Spotlight search
$ mdfind -name 'searchterm'
# Show Spotlight indexed metadata
$ mdls /path/to/file
# Speak text with system voice
$ say 'All your base are belong to us!'
# Prevent sleep for 1 hour
$ caffeinate -u -t 3600
# UUID to clipboard
$ uuidgen | tr -d '\n' | tr '[:upper:]' '[:lower:]' | pbcopy
# Open URL in Chrome
$ open -a "Google Chrome" https://github.com
Performance monitoring#
powermetrics.
$ powermetrics -a 0 -i 15000 -s tasks --show-process-io --show-process-energy -u /tmp/powermetrics.log
# -a 0 no summary line
# -i 15000 collect every 15 seconds
# -s tasks per-process
# --show-process-io disk IO and pageins
# --show-process-energy energy impact scores
Splunk regex for parsing.
index="your_index_here" sourcetype=generic_single_line
| rex field="_raw" "(?P<process_name>^[\w \(\)]\-\.]+)(\b|\)\s{3,}(?P<pid>[\d]+)\s+
(?P<cpu_ms_s>[\d\.]+)\s+(?P<percent_cpu_user>[\d\.]+)\s+(?P<deadlines_lt_2ms>[\d\.]+)\s+
(?P<deadlines_2_to_5ms>[\d\.]+)\s+(?P<wakeups>[\d\.]+)\s+(?P<intr_pkg_idle>[\d\.]+)\s+
(?P<bytes_read>[\d\.]+)\s+(?P<bytes_written>[\d\.]+)\s+(?P<pageins>[\d\.]+)\s+
(?P<energy_impact>[\d\.]+)"
Configuration#
# Join a Wi-Fi network
$ networksetup -setairportnetwork en0 WIFI_SSID WIFI_PASSWORD
# Wi-Fi on
$ networksetup -setairportpower en0 on
# Firewall
$ sudo /usr/libexec/ApplicationFirewall/socketfilterfw --getglobalstate
$ sudo /usr/libexec/ApplicationFirewall/socketfilterfw --setglobalstate on
$ sudo /usr/libexec/ApplicationFirewall/socketfilterfw --setglobalstate off
# Remote Apple Events
$ sudo systemsetup -getremoteappleevents
$ sudo systemsetup -setremoteappleevents on
$ sudo systemsetup -setremoteappleevents off
# AirDrop
$ defaults write com.apple.NetworkBrowser BrowseAllInterfaces -bool true # over Ethernet, unsupported Macs
$ defaults remove com.apple.NetworkBrowser DisableAirDrop # enable (default)
$ defaults write com.apple.NetworkBrowser DisableAirDrop -bool YES # disable
# Force launch screen saver (up to Sierra)
$ open /System/Library/Frameworks/ScreenSaver.framework/Versions/A/Resources/ScreenSaverEngine.app
# High Sierra and later
$ /System/Library/CoreServices/ScreenSaverEngine.app/Contents/MacOS/ScreenSaverEngine
# Native TFTP daemon (files from /private/tftpboot)
$ sudo launchctl load -F /System/Library/LaunchDaemons/tftp.plist
$ sudo launchctl start com.apple.tftpd
Apple Remote Desktop#
# Activate the ARD Agent and Helper
$ sudo /System/Library/CoreServices/RemoteManagement/ARDAgent.app/Contents/Resources/kickstart \
-activate -agent -console
# Deactivate
$ sudo /System/Library/CoreServices/RemoteManagement/ARDAgent.app/Contents/Resources/kickstart \
-deactivate -stop
# Allow all users with full privileges
$ sudo /System/Library/CoreServices/RemoteManagement/ARDAgent.app/Contents/Resources/kickstart \
-configure -allowAccessFor -allUsers -privs -all
# Disable ARD Agent, remove access privileges
$ sudo /System/Library/CoreServices/RemoteManagement/ARDAgent.app/Contents/Resources/kickstart \
-deactivate -configure -access -off
Remove Apple Remote Desktop settings.
$ sudo rm -rf /var/db/RemoteManagement
$ sudo defaults delete /Library/Preferences/com.apple.RemoteDesktop.plist
$ defaults delete ~/Library/Preferences/com.apple.RemoteDesktop.plist
$ sudo rm -r /Library/Application\ Support/Apple\ Remote\ Desktop/
$ rm -r ~/Library/Application\ Support/Remote\ Desktop/
$ rm -r ~/Library/Containers/com.apple.RemoteDesktop