Keyboard shortcuts, system settings, and troubleshooting reference for everyday macOS use and support.
⌘
Command (Cmd)
⌥
Option (Alt)
⇧
Shift
⌃
Control (Ctrl)
⎋
Escape (Esc)
⌫ / ⌦
Delete / Fwd Delete
| Category | Scope / Context | Shortcut / Name | Key Combination / Syntax | Key Modifiers | Usage Example | Description & Notes |
|---|---|---|---|---|---|---|
| 1. System | Global | Spotlight Search | ⌘ + Space |
Command, Space | ⌘ + Space → "Terminal" |
Launches Spotlight for instant file search, calculations, conversions, and app launching. |
| 1. System | Global | App Switcher | ⌘ + Tab |
Command, Tab | Hold ⌘, tap Tab |
Switches between active applications. Press `Q` while switching to quit highlighted app. |
| 1. System | Global | Force Quit Apps | ⌥ + ⌘ + ⎋ |
Option, Command, Esc | ⌥ + ⌘ + ⎋ → Select Unresponsive App |
Opens the Force Quit Applications dialog window to terminate frozen software instantly. |
| 1. System | Global | Lock Screen | ⌃ + ⌘ + Q |
Control, Command, Q | ⌃ + ⌘ + Q |
Immediately locks your Mac display screen for security when stepping away. |
| 2. Screen Captures | Capture Utility | Screenshot Toolbar | ⇧ + ⌘ + 5 |
Shift, Command, 5 | ⇧ + ⌘ + 5 → Record Screen |
Opens interactive screen capture & video recording HUD with custom options and timers. |
| 2. Screen Captures | Screenshot | Selected Region Capture | ⇧ + ⌘ + 4 |
Shift, Command, 4 | ⇧ + ⌘ + 4 + Space (Window) |
Drag crosshairs to capture screen area. Press Spacebar to snap an individual window. |
| 3. Finder Operations | Finder | Quick Look Preview | Spacebar |
Spacebar | Select File → Spacebar |
Previews images, PDFs, videos, or documents instantly without opening the associated application. |
| 3. Finder Operations | Finder | Move File (Cut & Paste) | ⌥ + ⌘ + V |
Option, Command, V | ⌘ + C → Navigate → ⌥ + ⌘ + V |
Moves copied items from original location to target folder instead of duplicating them. |
| 3. Finder Operations | Finder | Toggle Hidden Files | ⇧ + ⌘ + . |
Shift, Command, Dot | ⇧ + ⌘ + . in Finder |
Shows or hides invisible files (dotfiles like `.zshrc` or hidden `.Trash` directory) in Finder. |
| 3. Finder Operations | Finder | Go to Folder Path | ⇧ + ⌘ + G |
Shift, Command, G | ⇧ + ⌘ + G → ~/Library/ |
Opens path navigation box to directly enter absolute file paths or system directories. |
| 4. Text Editing | Text Fields | Word-by-Word Jump | ⌥ + Left / Right |
Option, Arrow Keys | ⌥ + → or ⌥ + ← |
Moves text insertion cursor forward or backward one whole word at a time. |
| 4. Text Editing | Text Fields | Line Beginning / End | ⌘ + Left / Right |
Command, Arrow Keys | ⌘ + → (End of line) |
Jumps text cursor directly to the start or end of the current line. |
| 4. Text Editing | Text Fields | Emoji & Symbols Palette | ⌃ + ⌘ + Space |
Control, Command, Space | ⌃ + ⌘ + Space → 🚀 |
Opens native macOS Emoji and Character Viewer picker panel. |
| 5. Terminal CLI | zsh / bash | List Open Ports & Processes | lsof -i :<port> |
Terminal Command | lsof -i :3000 |
Identifies which application process PID is listening on a specific network port (e.g., local dev servers). |
| 5. Terminal CLI | zsh / bash | Flush macOS DNS Cache | sudo dscacheutil -flushcache... |
Sudo Command | sudo dscacheutil -flushcache; sudo killall -HUP mDNSResponder |
Resets system local DNS cache when website domain changes or network resolution fails. |
| 5. Terminal CLI | zsh / bash | Restart macOS Finder | killall Finder |
Terminal Command | killall Finder |
Restarts the macOS Finder application process without requiring a system reboot. |
| 5. Terminal CLI | zsh / bash | Prevent Sleep Mode | caffeinate -u -t <sec> |
Terminal Command | caffeinate -u -t 3600 |
Prevents display or CPU from going to sleep for a designated duration (e.g., long downloads/renders). |
macOS Pro Tips & Workflow Hacks
⌘ + Space and type arithmetic directly, or currency rates like $100 to EUR or unit conversions like 100 C to F.
⌥ + ⇧ while pressing volume or display brightness keys to adjust levels in fine-grained quarter-step increments instead of full block jumps.
⌥ + ⇧ + ⌘ + V to strip all formatting and paste plain text matching your destination file.
The acronyms, decoded
| Term | Also known as | What it actually is | Why it matters |
|---|---|---|---|
| ABM / ASM | Current | Apple Business Manager / Apple School Manager — the free web portal at business.apple.com that ties together device enrolment, app licensing, and Managed Apple IDs. |
The single prerequisite for zero-touch deployment. Set this up first; everything else depends on it. |
| ADE | was DEP | Automated Device Enrollment. Devices bought from Apple or an authorised reseller are tied to your organisation's Apple ID at the point of sale and auto-enrol into your MDM on first boot. | Zero-touch deployment. Ship a sealed Mac to a new hire; it configures itself on the setup screen. Enrolment can be made mandatory and non-removable. |
| VPP | now "Apps and Books" | Volume Purchase Program. Buy App Store app licences in bulk inside ABM and assign them to devices or users through your MDM. | Licences are reclaimable — when someone leaves, you revoke and reassign rather than re-purchasing. Device-based assignment needs no Apple ID on the Mac at all. |
| MDM | Protocol | Mobile Device Management — Apple's management protocol. Your MDM server (Jamf, Kandji, Mosyle, Intune, Addigy, SimpleMDM, Workspace ONE) sends commands and configuration profiles to enrolled devices. | The delivery mechanism for everything: settings, restrictions, apps, updates, and remote wipe. |
| Supervision | Automatic via ADE | An elevated management state. Macs enrolled via ADE are supervised automatically. | Unlocks restrictions unavailable to manually-enrolled devices, and is required for Activation Lock bypass. |
| Managed Apple ID | Org-owned | An Apple ID created and controlled by your organisation in ABM. Can be federated with Google Workspace or Microsoft Entra ID so users sign in with existing credentials. | You retain control. A personal Apple ID on a corporate Mac is a recurring source of Activation Lock and data-ownership problems. |
| UAMDM | User-Approved | User-Approved MDM — when a user manually enrols and approves it, granting a subset of management privileges. | The fallback for existing Macs not purchased through ADE. Fewer capabilities and the user can remove it. |
| DDM | Newest | Declarative Device Management — Apple's newer model where the device proactively enforces a declared desired state and reports status, rather than waiting to be polled. | Faster, more reliable, and where Apple is investing. Increasingly required for software-update enforcement. |
| APNs | Push | Apple Push Notification service — the transport your MDM uses to tell a device to check in. | Your MDM's APNs certificate expires annually. Let it lapse and every device silently stops responding. Diarise the renewal. |
| Activation Lock | Find My | Ties a device to an Apple ID so it can't be erased and reused by anyone else. Enabled by Find My. | The number-one cause of unusable returned hardware. See the section below. |
Activation Lock — check it before it's a problem
The GUI check — Option + Apple menu
Hold ⌥, click , choose System Information. Under Hardware → Hardware Overview, look for Activation Lock Status: Enabled / Disabled. Holding Option also changes several other menu items throughout macOS — it's a general "show me the advanced version" modifier worth knowing.
The Terminal check — scriptable across a fleet
The same value is available from the command line, which means you can collect it as an MDM extension attribute or inventory field across every Mac you manage.
Prevent it rather than fixing it
Deploy a configuration profile that disables Find My Mac on corporate devices, or restricts personal Apple ID sign-in entirely. A Mac that never gets Activation Locked never needs bypassing.
Bypass — only possible on supervised/ADE devices
If the Mac is in ABM and supervised, your MDM can issue an Activation Lock bypass code, or you can clear it from the device record in ABM. Retrieve the bypass code before wiping — erasing the device first can destroy your ability to clear the lock.
If it isn't in ABM, you're on Apple's mercy
An unsupervised, personally-Activation-Locked Mac requires the original Apple ID password, or a formal ownership-proof request to Apple with the original purchase invoice. There is no technical workaround — this is by design.
Management-state commands
| Check | Command | Notes |
|---|---|---|
| MDM enrolment status | profiles status -type enrollment | Reports whether the Mac is enrolled and whether enrolment is DEP/ADE-based. The first thing to run on any "is this managed?" question. |
| List installed profiles | sudo profiles show | Every configuration profile currently applied, with payload detail. |
| Renew MDM profile | sudo profiles renew -type enrollment | Re-triggers ADE enrolment on a device that should be managed but isn't. Frequently fixes a half-enrolled Mac. |
| macOS version | sw_vers | Product name, version, and build. Scriptable for compliance reporting. |
| Serial number | system_profiler SPHardwareDataType | awk '/Serial/{print $4}' | The key for matching a device to its ABM and MDM records. |
| SIP status | csrutil status | System Integrity Protection. Should be enabled on any managed Mac. Disabling requires Recovery mode. |
| FileVault status | fdesetup status | Disk encryption state. sudo fdesetup list shows enabled users. |
| Gatekeeper status | spctl --status | Whether unsigned apps are blocked. Leave enabled outside of testing. |
| Secure boot & hardware | system_profiler SPiBridgeDataType | Reports the secure-boot level on T2 and Apple silicon Macs. |
| Available updates | softwareupdate -l | sudo softwareupdate -ia --restart installs everything and reboots. On Apple silicon, installs require a volume owner's credentials. |
| Logged-in user (in a script) | stat -f%Su /dev/console | The reliable way to find the console user from a root-run script — whoami returns root and is a classic scripting bug. |
| Uptime & last boot | uptime · last reboot | Useful for update-compliance nagging — a 90-day uptime means patches aren't landing. |
| Stage | Command | Example | What it tells you |
|---|---|---|---|
| 1. Interface | networksetup -listallnetworkservices | networksetup -listallnetworkservices | Every configured network service in priority order. An asterisk marks a disabled one. Start here — the service name is the argument every other networksetup call needs. |
| 1. Interface | networksetup -getinfo | networksetup -getinfo "Wi-Fi" | IP, subnet mask, router, and MAC address for one service, in one readable block. |
| 1. Interface | ifconfig | ifconfig en0 | Raw interface detail. en0 is usually Wi-Fi on laptops, Ethernet on desktops — verify rather than assume. |
| 1. Interface | ipconfig getifaddr | ipconfig getifaddr en0 | Just the IPv4 address, nothing else. Ideal inside scripts. |
| 1. Interface | networksetup -setairportpower | networksetup -setairportpower en0 off | Toggles Wi-Fi radio power. Off then on is a scriptable "turn it off and on again" for a stuck adapter. |
| 2. Gateway | route -n get default | route -n get default | The default gateway currently in use. Confirms which interface traffic is actually leaving by when several are up. |
| 2. Gateway | ping | ping -c 5 192.168.1.1 | Ping the router first. -c 5 stops after five packets (macOS pings forever otherwise). Success here rules out the local network. |
| 2. Gateway | arp -a | arp -a | Local ARP table — every device the Mac has recently talked to on the LAN, with MAC addresses. Useful for spotting IP conflicts. |
| 3. DNS | networksetup -getdnsservers | networksetup -getdnsservers "Wi-Fi" | Configured DNS servers. "There aren't any DNS Servers set" means it's using DHCP-provided ones. |
| 3. DNS | networksetup -setdnsservers | sudo networksetup -setdnsservers "Wi-Fi" 1.1.1.1 8.8.8.8 | Overrides DNS. Use Empty as the argument to revert to DHCP. |
| 3. DNS | dig | dig example.com +short | Resolves a name. dig @1.1.1.1 example.com tests a specific resolver, isolating whether your DNS server is the problem. |
| 3. DNS | scutil --dns | scutil --dns | macOS's real resolver configuration, including per-domain resolvers pushed by a VPN. More authoritative than /etc/resolv.conf, which macOS largely ignores. |
| 3. DNS | Flush DNS cache | sudo dscacheutil -flushcache; sudo killall -HUP mDNSResponder | Both halves are required on modern macOS. The canonical fix after a DNS record change. |
| 4. Path | traceroute | traceroute -I example.com | Hop-by-hop path. -I uses ICMP, which often gets further than the default UDP probes. Asterisks mean a hop didn't reply — usually normal, not a fault. |
| 4. Path | nc (netcat) | nc -zv smtp.example.com 587 | Tests whether a specific TCP port is reachable. The definitive answer to "is the firewall blocking it?". |
| 4. Path | curl -I | curl -I https://example.com | Fetches HTTP headers only. Confirms TLS works and shows redirects and status codes. |
| 5. Local | lsof -i | sudo lsof -i -P | grep LISTEN | Every process listening on a port. The tool for "what's already using 8080?". |
| 5. Local | netstat -rn | netstat -rn | Full routing table. Reveals VPN routes and unexpected static entries. |
| 5. Local | nettop | nettop -m tcp | Live per-process network usage. Finds whatever is saturating the link. |
| 6. Quality | networkQuality | networkQuality -v | Apple's built-in speed test (macOS 12+). Reports up/down throughput and — more usefully — responsiveness under load, which exposes bufferbloat that a plain speed test hides. |
| 6. Quality | wdutil info | sudo wdutil info | Detailed Wi-Fi diagnostics: SSID, BSSID, channel, RSSI, noise, and transmit rate. Replaces the old airport binary, which Apple has deprecated. |
| 6. Quality | Wireless Diagnostics | ⌥ + click Wi-Fi menu → Open Wireless Diagnostics | The GUI counterpart. Its Window → Scan view shows every nearby network with channel and signal — the fastest way to spot channel congestion. |
- 1.
ipconfig getifaddr en0— is there an IP at all? A169.254.x.xaddress means DHCP failed. - 2.
ping -c 3 $(route -n get default | awk '/gateway/{print $2}')— can you reach the router? - 3.
ping -c 3 1.1.1.1— can you reach the internet by IP? Success here plus failure at step 4 means DNS. - 4.
dig example.com +short— does name resolution work? - 5.
curl -I https://example.com— does TLS and HTTP work end to end? - Each step isolates one layer. Stopping at the first failure tells you exactly which one to fix.
Get the hardware into Apple Business Manager
Buy through Apple or an authorised reseller with your ABM Customer Number attached, and devices appear in ABM automatically. Assign them to your MDM server in ABM → Devices. Existing Macs can be added via Apple Configurator, but that requires physically touching each one.
Build the enrolment experience
In your MDM, configure the ADE profile: which Setup Assistant panes to skip (Siri, Screen Time, Apple ID, Analytics), whether enrolment is mandatory and non-removable, and whether the first user is admin or standard. Standard is the correct default; grant admin deliberately.
Push the security baseline immediately
FileVault (with escrowed recovery key), firewall on, screen-lock timeout, Gatekeeper enforced, SIP left enabled. These go out as configuration profiles at enrolment so a Mac is never briefly non-compliant.
Install the app set automatically
App Store apps via VPP/Apps and Books (device-assigned, so no Apple ID needed). Everything else via Munki, Installomator, or your MDM's own packaging. See the tooling section below.
Customise the Dock with dockutil
A default Dock full of GarageBand and Podcasts signals an unmanaged machine. dockutil scripts it. Run it as the logged-in user, not root — the Dock is a per-user preference, and this is the single most common mistake in Dock scripts.
Give the user visible feedback
A Mac that sits apparently idle for twenty minutes while provisioning gets rebooted by an impatient user. swiftDialog (or your MDM's equivalent, such as Jamf's Setup Manager) shows a branded progress window listing each step as it completes.
Enforce updates from day one
Use Declarative Device Management update enforcement, or Nudge for a user-friendly escalating prompt. Deferred-forever updates are how fleets end up years behind.
The open-source Mac admin toolchain
| Tool | What it does | Key commands |
|---|---|---|
| dockutil | Scriptable Dock management — add, remove, move, and reorder Dock items without a GUI. The standard tool for setting a consistent Dock at enrolment. | dockutil --add /Applications/Safari.app --position 2dockutil --remove 'Podcasts' --no-restartdockutil --add ~/Downloads --view grid --display folder |
| Munki | Open-source managed software installation. A repo of packages plus per-machine manifests declares what each Mac should have; clients check in and converge. Includes Managed Software Center, a self-service app catalogue for users. | sudo managedsoftwareupdate --checkonlysudo managedsoftwareupdate --installonlymunkiimport /path/to/App.dmgmakecatalogs /path/to/repo |
| AutoPkg | Automates downloading, verifying, and packaging third-party software. Recipes describe how to fetch and package an app; running them keeps your repo current without manual downloads. | autopkg repo-add recipesautopkg run -v Firefox.munkiautopkg search googlechrome |
| AutoPkgr | A GUI wrapper around AutoPkg from The Linde Group. Handles scheduling, repo selection, notifications (email/Slack), and integration with Munki or Jamf — removes the need to hand-roll cron jobs. | Configured through its interface: pick recipes, set a schedule, point it at your Munki repo, and configure notifications. |
| Installomator | A single shell script that downloads and installs the current version of hundreds of common Mac apps by label. Ideal when you want app installs without running a whole Munki repo. | ./Installomator.sh googlechrome./Installomator.sh slack NOTIFY=success |
| Nudge | Escalating, user-friendly prompts to install macOS updates by a deadline. Far more effective than silent policies users never see. | Driven by a JSON/plist configuration deployed via MDM specifying target OS version and deadline. |
| swiftDialog | Native-looking dialogs and progress windows driven from a shell script. The standard way to give users visible feedback during provisioning. | dialog --title "Setting up your Mac" --progress 100 |
| Homebrew | Package manager for CLI tools and (via Cask) GUI apps. Excellent for developer machines; use with care for fleet-wide deployment since it's user-scoped and unversioned by default. | brew install --cask google-chromebrew bundle dump --file=~/Brewfile |
| mas-cli | Mac App Store from the command line. Useful for scripted installs of App Store apps on a machine already signed in. | mas list · mas install 497799835 |
A real Dock-configuration script
| Category | Tip | How | Why it's useful |
|---|---|---|---|
| Finder | Show the path bar | ⌥⌘P | Displays the full folder path at the bottom of every window. You can drag files onto any path component to move them there. |
| Finder | Copy a file's full path | Select → ⌥⌘C | Puts the POSIX path on the clipboard, ready to paste into Terminal or a script. |
| Finder | Go to a folder by typing | ⇧⌘G | Jump straight to /var/log or ~/Library. Tab completes as you type. |
| Finder | Reveal the hidden Library folder | Hold ⌥ while opening the Go menu | ~/Library is hidden by default and is where most app support files, preferences, and caches live. |
| Finder | Toggle hidden files | ⇧⌘. | Shows dotfiles instantly, no Terminal command or Finder restart needed. |
| Finder | Rename many files at once | Select multiple → right-click → Rename | Built-in batch rename with find-and-replace, add-text, and sequential numbering. No third-party app required. |
| Finder | Cut and paste files | ⌘C then ⌥⌘V | macOS has no ⌘X for files — Option on paste turns a copy into a move. |
| Finder | Merge folders instead of replacing | Hold ⌥ while dragging a folder onto one with the same name | Offers "Merge" rather than only "Replace" — prevents accidentally destroying a folder's contents. |
| Finder | Batch-create a folder from a selection | Select files → right-click → New Folder with Selection | Creates the folder and moves everything in, in one action. |
| Finder | Quick Look anything | Select → Space | Previews documents, images, video, and archives without opening an app. Press Space again to close. |
| Finder | Quick Look full screen | ⌥Space | Full-screen slideshow across every selected file. Excellent for triaging photos. |
| Finder | Edit inside Quick Look | Space → Markup icon | Crop, rotate, annotate, and sign PDFs without ever opening Preview. |
| Finder | Smart Folders | File → New Smart Folder | A saved search that stays current — e.g. every PDF modified this week, across the whole disk. |
| Finder | Add a folder to the sidebar | Drag it there, or ⌃⌘T | One-click access to project folders from every save and open dialog too. |
| Finder | Column view for deep trees | ⌘3 | The fastest way to navigate nested folders and see where you are. ⌘1/2/4 switch to icon, list, and gallery. |
| Screenshots | Capture a selected area | ⇧⌘4 | Drag to select. Press Space mid-drag to switch to window-capture mode. |
| Screenshots | Capture a window cleanly | ⇧⌘4 then Space | Captures just that window with a drop shadow. Hold ⌥ when clicking to omit the shadow. |
| Screenshots | Screenshot to clipboard | Add ⌃ — e.g. ⌃⇧⌘4 | Copies instead of writing a file to the Desktop. Paste straight into Slack or a document. |
| Screenshots | The screenshot toolbar | ⇧⌘5 | Screen recording, timed capture, and — importantly — the option to change where screenshots are saved. |
| Screenshots | Record part of the screen | ⇧⌘5 → Record Selected Portion | Built-in screen recording with optional microphone audio — no software needed for a quick demo. |
| Screenshots | Change the default save location | ⇧⌘5 → Options → Other Location | Stops the Desktop filling with screenshots. A dedicated ~/Screenshots folder is the usual fix. |
| Screenshots | Change the screenshot file format | defaults write com.apple.screencapture type jpg; killall SystemUIServer | PNG by default. JPG or HEIC produces far smaller files when you're capturing a lot. |
| Screenshots | Disable the screenshot thumbnail | ⇧⌘5 → Options → uncheck Show Floating Thumbnail | The thumbnail delays the file being written, which is irritating when scripting or capturing rapidly. |
| Text | Delete forward | fn + Delete | Mac keyboards have no dedicated forward-delete key on most laptops. |
| Text | Move by word / line | ⌥←→ · ⌘←→ | Option moves a word at a time; Command jumps to line start/end. Add Shift to select as you go. |
| Text | Paste and match style | ⌥⇧⌘V | Strips the source formatting. Works in almost every Mac app. |
| Text | Emoji and symbol picker | ⌃⌘Space | Searchable emoji, arrows, and technical symbols in any text field. |
| Text | Accented characters | Hold a letter key | Hold "e" for é è ê ë, then press the number shown or click. |
| Text | Text replacement shortcuts | System Settings → Keyboard → Text Replacements | Type @@ to expand your email address. Syncs across all your Apple devices via iCloud. |
| Text | Dictation anywhere | Press the mic key, or double-tap ⌃ | On-device dictation in any text field. Say "new line" and punctuation names to format as you speak. |
| Text | Look up a word instantly | Three-finger tap, or ⌃⌘D | Dictionary, thesaurus, and Wikipedia inline over any selected word. |
| Text | Speak selected text | System Settings → Accessibility → Spoken Content | Assign a key to have the Mac read a selection aloud — genuinely useful for proofreading. |
| Text | Live Text in images | Select text directly inside any photo | macOS OCRs images automatically. Copy a serial number straight out of a screenshot. |
| Windows | Tile windows side by side | Hover the green button, or drag to a screen edge | macOS Sequoia added proper drag-to-edge tiling; earlier versions use the green-button menu. |
| Windows | Hide everything else | ⌥⌘H | Hides all apps except the current one. The fastest possible focus reset. |
| Windows | Cycle windows within an app | ⌘` | ⌘Tab switches apps; backtick switches between windows of the same app. |
| Windows | Quit from the app switcher | ⌘Tab, then Q while holding ⌘ | Close several apps rapidly without switching to each. H hides instead. |
| Windows | Mission Control | ⌃↑ or three-finger swipe up | Every open window at once. Drag a window to the top strip to create a new Desktop space. |
| Windows | Switch between spaces | ⌃←→ | Assign an app to a specific space by right-clicking its Dock icon → Options → Assign To. |
| Windows | App Exposé | ⌃↓ | Shows every window of the current app only — much less overwhelming than full Mission Control. |
| Windows | Show the Desktop | fn + F11 or spread four fingers | Temporarily pushes every window aside. |
| Windows | Resize from the centre | Hold ⌥ while dragging a window edge | Expands both sides at once. Add ⇧ to preserve the aspect ratio. |
| Windows | Move a background window without focusing it | Hold ⌘ and drag it | Rearrange windows behind your current one without losing your place. |
| Spotlight | Calculate and convert | ⌘Space then type | Type 25 GBP in USD, 140 lbs in kg, or any arithmetic. Instant answer, no app. |
| Spotlight | Reveal in Finder from Spotlight | ⌘ + Enter on a result | Opens the enclosing folder instead of opening the file. |
| Spotlight | See a result's path | Hold ⌘ while a result is highlighted | Shows the full path at the bottom — handy when several files share a name. |
| Spotlight | Search by kind and date | kind:pdf date:today | Spotlight supports structured queries: kind:, date:, author:, name:. |
| Spotlight | Spotlight from the command line | mdfind -name "invoice" | Same index, scriptable. mdls file dumps all metadata for one file. |
| Spotlight | Rebuild the Spotlight index | sudo mdutil -E / | The fix when search stops finding obvious files. Reindexing takes a while. |
| Spotlight | Exclude a folder from indexing | System Settings → Spotlight → Search Privacy | Speeds up indexing and keeps sensitive or huge build folders out of results. |
| Terminal | Drag a file into Terminal | Drag from Finder onto the Terminal window | Inserts the correctly-escaped full path. Far safer than typing paths with spaces. |
| Terminal | Open the current folder in Terminal | Right-click folder → Services → New Terminal at Folder | Enable it in System Settings → Keyboard → Keyboard Shortcuts → Services if it isn't showing. |
| Terminal | Open a file with any app | open -a "Visual Studio Code" file.txt | open . opens the current directory in Finder — the reverse of the previous tip. |
| Terminal | Clipboard from the shell | cat file.txt | pbcopy | pbpaste goes the other way. Excellent for piping command output straight into a document. |
| Terminal | Keep the Mac awake | caffeinate -d -t 3600 | Prevents sleep for an hour. caffeinate -w <pid> keeps it awake until a specific process finishes. |
| Terminal | Say something | say "Build finished" | Append it to a long command to get an audible notification when it completes. |
| Terminal | Read and write any preference | defaults read com.apple.dock | Every macOS preference is a plist. defaults write changes settings that have no GUI toggle. |
| Terminal | Show the full file path in the Finder title | defaults write com.apple.finder _FXShowPosixPathInTitle -bool true; killall Finder | Turns every Finder window title into its full path. |
| Terminal | Speed up the Dock auto-hide | defaults write com.apple.dock autohide-time-modifier -float 0.15; killall Dock | Removes the animation delay. defaults delete the key to revert. |
| Terminal | Find what's using a port | sudo lsof -i :3000 | The answer to "address already in use". |
| Terminal | Watch a command repeatedly | while true; do clear; command; sleep 2; done | macOS has no watch by default — this is the built-in equivalent. |
| Terminal | Create a bootable installer | sudo /Applications/Install*.app/Contents/Resources/createinstallmedia --volume /Volumes/USB | The supported way to build macOS install media from a downloaded installer. |
| Terminal | Compress and expand archives | ditto -c -k --sequesterRsrc src dest.zip | ditto preserves macOS metadata and resource forks that plain zip discards. |
| Terminal | Check power and battery health | pmset -g batt · system_profiler SPPowerDataType | Cycle count and condition without opening System Information. |
| Terminal | See what's draining the battery | pmset -g assertions | Lists exactly which process is preventing sleep or display dimming. |
| System | Option-click menu bar icons | Hold ⌥ and click Wi-Fi, Bluetooth, Volume, or Battery | Reveals hidden detail: Wi-Fi shows channel, RSSI and transmit rate; Volume shows input/output device pickers. |
| System | Rearrange or remove menu bar icons | Hold ⌘ and drag | Drag an icon off the bar to remove it entirely. |
| System | Force quit quickly | ⌥⌘Esc | Or hold ⌥ and right-click the Dock icon → Force Quit. |
| System | Sleep the display immediately | ⌃⇧ Power (or ⌃⇧ Eject) | Locks the screen without putting the whole machine to sleep. ⌃⌘Q locks too. |
| System | Change any app's keyboard shortcut | System Settings → Keyboard → Keyboard Shortcuts → App Shortcuts | Type the menu item's exact name and assign a key. Works for any app's menu command. |
| System | Storage management | Apple menu → → System Settings → General → Storage | Shows what's consuming space by category, with tools to offload and find large files. |
| System | Hot corners | System Settings → Desktop & Dock → Hot Corners | Throw the pointer into a corner to lock the screen, show the desktop, or start the screensaver. |
| System | Stacks tidy the Desktop | Right-click the Desktop → Use Stacks | Groups Desktop clutter by kind or date automatically. |
| System | Sign a PDF with your real signature | Preview → Markup → Sign | Capture a signature with the trackpad or camera once; reuse it on any PDF thereafter. |
| System | Combine PDFs | Preview → show thumbnails → drag one PDF into another | Merge, reorder, and delete pages without any third-party PDF tool. |
| System | Reduce PDF file size | Preview → File → Export → Quartz Filter → Reduce File Size | Built-in compression for oversized PDFs. |
| System | Batch-convert images | Select in Finder → right-click → Quick Actions → Convert Image | Converts many images to JPEG/PNG/HEIF at a chosen size, with no app. |
| System | Automator and Shortcuts | Open Shortcuts.app | Build a Quick Action once and run it from the Finder right-click menu forever after. |
| Security | Check FileVault is actually on | fdesetup status | Disk encryption is the single most important protection for a laptop that might be lost. |
| Security | Verify SIP is enabled | csrutil status | System Integrity Protection. If a guide tells you to disable it, be very sure why. |
| Security | See which apps have which permissions | System Settings → Privacy & Security | Audit camera, microphone, screen recording, and Full Disk Access grants. Review this periodically. |
| Security | Check an app's signature | codesign -dv --verbose=4 /Applications/App.app | Confirms who actually signed a binary — useful when an app's provenance is uncertain. |
| Security | Verify notarization | spctl -a -vvv /Applications/App.app | Shows whether Gatekeeper accepts the app and why. |
| Security | Remove the quarantine flag | xattr -d com.apple.quarantine file | Clears the "downloaded from the internet" attribute. Only do this for software you genuinely trust. |
| Security | Lock a folder with an encrypted disk image | Disk Utility → File → New Image → Image from Folder → AES-256 | Creates a password-protected .dmg. Built-in encryption for a specific set of files. |
| Security | Securely erase free space | diskutil secureErase freespace 1 /Volumes/Drive | For spinning disks. Unnecessary and discouraged on SSDs, where TRIM and FileVault handle it. |
| Security | Find My and Activation Lock state | ⌥ + → System Information | The three-second check before accepting any second-hand or returned Mac. See the Mac Admin tab. |
| Security | Lockdown Mode | System Settings → Privacy & Security → Lockdown Mode | Extreme protection for people at risk of targeted attack. It deliberately breaks functionality — not a general recommendation. |
| Startup | Apple silicon Recovery | Hold the power button until "Loading startup options" | Completely different from Intel. One button, held — not ⌘R. |
| Startup | Intel Recovery | ⌘R at boot | ⌥⌘R gets the latest compatible macOS; ⇧⌥⌘R the originally-shipped version. |
| Startup | Safe Mode | Apple silicon: power button → volume-up. Intel: hold ⇧ | Loads a minimal system and clears certain caches. The first diagnostic step for boot problems. |
| Startup | Startup Manager (pick a boot disk) | Hold ⌥ at boot (Intel) | On Apple silicon the same choice appears within the power-button startup options screen. |
| Startup | Reset NVRAM | ⌥⌘PR at boot (Intel only) | Apple silicon resets it automatically as needed — the shortcut does nothing there. |
| Startup | Erase All Content and Settings | System Settings → General → Transfer or Reset | The correct modern way to wipe a Mac for redeployment. Much faster and safer than reinstalling from Recovery. |
| Startup | Boot verbosely to see what's happening | Hold ⌘V at boot | Shows kernel messages instead of the Apple logo — invaluable when a Mac hangs during startup. |
| Startup | Apple Diagnostics | Hold D at boot | Built-in hardware test that returns a reference code you can look up with Apple. |
| Startup | Manage login items | System Settings → General → Login Items | Also lists background agents installed by apps — a common cause of a slow-feeling Mac. |
| Startup | Target Disk / Share Disk mode | Apple silicon: Recovery → Utilities → Share Disk. Intel: hold T | Mounts one Mac's drive on another over Thunderbolt — the fastest way to rescue data from a Mac that won't boot. |
| Admin | See every process by CPU | top -o cpu | Or Activity Monitor. -o rsize sorts by memory instead. |
| Admin | List all users | dscl . list /Users | grep -v '^_' | Filters out the system accounts that clutter the raw list. |
| Admin | Check admin group membership | dscl . -read /Groups/admin GroupMembership | Confirms exactly who has administrator rights on the machine. |
| Admin | Read unified logs | log show --predicate 'eventMessage contains "error"' --last 1h | log stream follows live. This replaced the old console log files entirely. |
| Admin | Full hardware and software report | system_profiler -detailLevel mini > report.txt | A complete inventory snapshot to attach to a support ticket. |
| Admin | Install updates from the CLI | sudo softwareupdate -ia --restart | Scriptable patching. On Apple silicon, OS updates need a volume owner's credentials. |
| Admin | Verify and repair a disk | diskutil verifyVolume / | Repairing the boot volume must be done from Recovery, not while booted from it. |
| Admin | Manage launch agents and daemons | launchctl list | grep -v apple | Finds third-party background processes. They live in ~/Library/LaunchAgents and /Library/Launch*. |
| Admin | Check the Mac's model identifier | sysctl hw.model | Returns e.g. Mac14,9 — the identifier Apple's compatibility lists actually use. |
| Admin | Detect Apple silicon vs Intel in a script | [ "$(uname -m)" = "arm64" ] && echo "Apple silicon" | Essential branching in any deployment script, since paths and Rosetta requirements differ. |