Our mega cheat sheet of Mac terminal commands provides a great reference for all the important commands you should know.

macOS is an intuitive operating system, so you don’t have to spend lot of time learning the basics; Knowing this, why should you learn and take advantage of the Unix command line available on your Mac? We have four good reasons:
  1. There are dozens of open source and freely available Unix-based apps. You don’t have to spend money on these.
  2. When you’re having difficulty searching for files in Spotlight, you can turn to Unix search tools. They’re way more powerful than Spotlight.
  3. You can manage files, folders, and file archives in an automated manner. Setting up a cron job will handle this automatically.
  4. It gives you more power and control over your system.

With so many Mac commands, it’s often difficult to remember and use them all. We’re here to help with a detailed cheat sheet of Mac Terminal commands you can use to unlock enhanced productivity on your system.

The Mac Terminal Commands Cheat Sheet

List Directory Contents
ls Display the name of files and subdirectories in the directory
ls -C Force multi-column output of the listing
ls -a List all entries including those with .(period) and ..(double period)
ls -1 Output the list of files in one entry per line format
ls -F Display a / (slash) immediately after each path that is a directory, * (asterisk) after executable programs or scripts, and @ after a symbolic link
ls -S Sort files or entries by size
ls -l List in a long format. Includes file mode, owner and group name, date and time file was modified, pathname, and more
ls -lt List the files sorted by time modified (most recent first)
ls -lh Long listing with human readable file sizes in KB, MB, or GB
ls -lo List the file names with size, owner, and flags
ls -la List detailed directory contents, including hidden files
File Size and Disk Space
du List usage for each subdirectory and its contents
du -sh [folder] Human readable output of all files in a directory
du -s Display an entry for each specified file
du -sk* | sort -nr List files and folders, totaling the size including the subfolders. Replace sk* with sm* to list directories in MB
df -h Calculate your system’s free disk space
df -H Calculate free disk space in powers of 1,000 (as opposed to 1,024)
File and Directory Management
mkdir Create new folder named
mkdir -p / Create nested folders
mkdir Create several folders at once
mkdir “ Create a folder with a space in the filename
rmdir Delete a folder (only works on empty folders)
rm -R Delete a folder and its contents
touch Create a new file without any extension
cp Copy a file to the folder
cp Copy a file to the current folder
cp ~// Copy a file to the folder and rename the copied file
cp -R <”new dir”> Copy a folder to a new folder with spaces in the filename
cp -i Prompts you before copying a file with a warning overwrite message
cp /Users/ Copy multiple files to a folder
rm Delete a file (This deletes the file permanently; use with caution.)
rm -i Delete a file only when you give confirmation
rm -f Force removal without confirmation
rm Delete multiple files without any confirmation
mv Move/rename
mv Move a file to the folder, possibly by overwriting an existing file
mv -i Optional -i flag to warn you before overwriting the file
mv *.png ~/ Move all PNG files from current folder to a different folder
Command History
Ctrl + R Search through previously used commands
history n Shows the previous commands you’ve typed. Add a number to limit to the last n items
![value] Execute the last command typed that starts with a value
!! Execute the last command typed
Permissions
ls -ld Display the default permission for a home directory
ls -ld/ Display the read, write, and access permission of a particular folder
chmod 755  Change the permission of a file to 755
chmod -R 600  Change the permission of a folder (and its contents) to 600
chown : Change the ownership of a file to user and group. Add -R to include folder contents
Processes
ps -ax Output currently running processes. Here, a shows processes from all users and x shows processes that are not connected with the Terminal
ps -aux Shows all the processes with %cpu, %mem, page in, PID, and command
top Display live information about currently running processes
top -ocpu -s 5 Display processes sorted by CPU usage, updating every 5 seconds
top -o rsize Sort top by memory usage
kill PID Quit process with ID . You’ll see PID as a column in the Activity Monitor
ps -ax | grep Find a process by name or PID
Network
ping Ping host and display status
whois Output whois info for a domain
curl -O <url/to/file> Download file via HTTP, HTTPS, or FTP
ssh @ Establish SSH connection to with user
scp @:/remote/path Copy to a remote
Homebrew
brew doctor Check brew for potential problems
brew install Install a formula
brew uninstall Uninstall a formula
brew list List all the installed formulas
brew search Display available formulas for brewing
brew upgrade Upgrade all outdated and unpinned brews
brew update Fetch latest version of homebrew and formula
brew cleanup Remove older version of installed formula
brew tap homebrew/cask Tap the cask repository from GitHub
brew cask list List all installed casks
brew cask install Install the given cask
brew cask uninstall Uninstall the given cask
Search
find -name <”file”> Find all files named inside . Use wildcards (*) to search for parts of filenames
grep “ Output all occurrences of inside (add -i for case insensitivity)
grep -rl “ Search for all files containing inside
Output
cat Output the content of
less Output the contents of using the less command that supports pagination and more
head Output the first 10 lines of
> > Appends the output of to
> Direct the output of into
| Direct the output of to
The end!