Mac Terminal Commands Cheat Sheet

Mac Terminal Commands Cheat Sheet
Mac Terminal Commands Cheat Sheet

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

Because macOS is a user-friendly operating system, you won’t have to spend much time learning the basics; given this, why should you learn and use the Unix command line on your Mac? There are four compelling reasons for this:

There are dozens of open source and free Unix-based programs available. There’s no need to spend money on these.

  1. When Spotlight isn’t finding what you’re looking for, you can use Unix search tools. They’re a lot stronger than Spotlight.
  2. You can automate the management of files, folders, and file archives. Setting up a cron job will take care of this for you.
  3. It provides you more control over your system and gives you more power.
  4. It’s difficult to remember and utilize all of the Mac commands because there are so many. We’re here to help with a comprehensive list of Mac Terminal commands that you may use to boost your system’s efficiency.

The Terminal app may be found in Applications > Utilities or by searching for it in Spotlight. Then use some of the powerful commands listed below to get started.

The Mac Terminal Commands Cheat Sheet

TabAuto-complete file and folder names
Ctrl + AGo to the beginning of the line you’re currently typing on
Ctrl + EGo to the end of the line you’re currently typing on
Ctrl + UClear the line before the cursor
Ctrl + KClear the line after the cursor
Ctrl + WDelete the word before the cursor
Ctrl + TSwap the last two characters before the cursor
Esc + TSwap the last two words before the cursor
Ctrl + LClear the screen
Ctrl + CKill whatever you’re running
Ctrl + DExit the current shell
Option + →Move cursor one word forward
Option + ←Move cursor one word backward
Ctrl + FMove cursor one character forward
Ctrl + BMove cursor one character backward
Ctrl + YPaste whatever was cut by the last command
Ctrl + ZPuts whatever you’re running into a suspended background process
Ctrl + _Undo the last command
Option + Shift + Cmd + CCopy plain text
Shift + Cmd + VPaste the selection
exitEnd a shell session
/ (Forward Slash)Top level directory
. (Single Period)Current directory
.. (Double Period)Parent directory
~ (Tilde)Home directory
sudo [command]Run command with the security privileges of the super user
nano [file]Opens the Terminal editor
open [file]Opens a file
[command] -hGet help about a command
man [command]Show the help manual of the command
Change Directory
cdHome directory
cd [folder]Change directory, e.g. cd Documents
cd ~Home directory
cd/Root of the drive
cd –Previous directory or folder you last browsed
pwdShow your working directory
cd..Move up to the parent directory
cd../..Move up two levels
List Directory Contents
lsDisplay the name of files and subdirectories in the directory
ls -CForce multi-column output of the listing
ls -aList all entries including those with .(period) and ..(double period)
ls -1Output the list of files in one entry per line format
ls -FDisplay a / (slash) immediately after each path that is a directory, * (asterisk) after executable programs or scripts, and @ after a symbolic link
ls -SSort files or entries by size
ls -lList in a long format. Includes file mode, owner and group name, date and time file was modified, pathname, and more
ls -l /List of the file system from root with symbolic links
ls -ltList the files sorted by time modified (most recent first)
ls -lhLong listing with human readable file sizes in KB, MB, or GB
ls -loList the file names with size, owner, and flags
ls -laList detailed directory contents, including hidden files
File Size and Disk Space
duList usage for each subdirectory and its contents
du -sh [folder]Human readable output of all files in a directory
du -sDisplay an entry for each specified file
du -sk* | sort -nrList files and folders, totaling the size including the subfolders. Replace sk* with sm* to list directories in MB
df -hCalculate your system’s free disk space
df -HCalculate free disk space in powers of 1,000 (as opposed to 1,024)
File and Directory Management
mkdir <dir>Create new folder named <dir>
mkdir -p <dir>/<dir>Create nested folders
mkdir <dir1> <dir2> <dir3>Create several folders at once
mkdir “<dir>”Create a folder with a space in the filename
rmdir <dir>Delete a folder (only works on empty folders)
rm -R <dir>Delete a folder and its contents
touch <file>Create a new file without any extension
cp <file> <dir>Copy a file to the folder
cp <file> <newfile>Copy a file to the current folder
cp <file>~/<dir>/<newfile>Copy a file to the folder and rename the copied file
cp -R <dir> <“new dir”>Copy a folder to a new folder with spaces in the filename
cp -i <file><dir>Prompts you before copying a file with a warning overwrite message
cp <file1> <file2> <file3>/Users/<dir>Copy multiple files to a folder
ditto -V [folder path][new folder]Copy the contents of a folder to new folder. In here “-V” print a line of status for every file copied
rm <file>Delete a file (This deletes the file permanently; use with caution.)
rm -i <file>Delete a file only when you give confirmation
rm -f <file>Force removal without confirmation
rm <file1> <file2> <file3>Delete multiple files without any confirmation
mv <file> <newfilename>Move/rename
mv <file> <dir>Move a file to the folder, possibly by overwriting an existing file
mv -i <file> <dir>Optional -i flag to warn you before overwriting the file
mv *.png ~/<dir>Move all PNG files from current folder to a different folder
Command History
Ctrl + RSearch through previously used commands
history nShows 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
ls -ldDisplay the default permission for a home directory
ls -ld/<dir>Display the read, write, and access permission of a particular folder
chmod 755 <file>Change the permission of a file to 755
chmod -R 600 <dir>Change the permission of a folder (and its contents) to 600
chown <user>:<group> <file>Change the ownership of a file to user and group. Add -R to include folder contents
ps -axOutput currently running processes. Here, a shows processes from all users and x shows processes that are not connected with the Terminal
ps -auxShows all the processes with %cpu, %mem, page in, PID, and command
topDisplay live information about currently running processes
top -ocpu -s 5Display processes sorted by CPU usage, updating every 5 seconds
top -o rsizeSort top by memory usage
kill PIDQuit process with ID <PID>. You’ll see PID as a column in the Activity Monitor
ps -ax | grep <appname>Find a process by name or PID
ping <host>Ping host and display status
whois <domain>Output whois info for a domain
curl -O <url/to/file>Download file via HTTP, HTTPS, or FTP
ssh <username>@<host>Establish SSH connection to <host> with user <username>
scp <file><user>@<host>:/remote/pathCopy <file> to a remote <host>
arp -aView a list of all devices on your local network. It will show you the IP and MAC address of all the devices
ifconfig en0View your device IP and MAC address
traceroute [hostname]Identify the path and the hops traversed by the packets from your device to the destination address
brew doctorCheck brew for potential problems
brew helpList of useful homebrew formula and cask commands
brew install <formula>|<cask>Install a formula or cask
brew uninstall <formula>|cask>Uninstall a formula or cask
brew list –formulaList only installed formulas
brew list –caskList only installed cask
brew deps <formula>|<cask>List all the dependencies of a formula or cask
brew search text|/regex/Search formula or cask through regex
brew upgrade <formula>|<cask>Upgrade the formula or cask
brew outdated <formula>|<cask>Search for outdated formula or cask
brew outdated –formulaSearch for outdated formula
brew outdated –caskSearch for outdated cask
brew pin [installed_formula]Pin a formula from getting upgraded
brew unpin [installed_formula]Unpin to upgrade a package
brew cleanupRemove stale lock files and outdated packages for all formula and casks.
Environment Variable or Path
printenvDisplay a list of currently set environment variables. Also tells you which shell you’re using
$echoTells the terminal to print something and show it to you
echo $PATHCheck the value of the PATH variable which storea a list of directories with executable files
echo $PATH >path.txtExport the path directory to a text file
export PATH=$PATH:absolute/path to/program/Execute a program via terminal only in your current session. If you use a program regularly, add the path to shell configuration file.
find <dir> -name <“file”>Find all files named <file> inside <dir>. Use wildcards (*) to search for parts of filenames
grep “<text>” <file>Output all occurrences of <text> inside <file> (add -i for case insensitivity)
grep -rl “<text>” <dir>Search for all files containing <text> inside <dir>
cat <file>Output the content of <file>
less <file>Output the contents of <file> using the less command that supports pagination and more
head <file>Output the first 10 lines of <file>
<cmd> > > <file>Appends the output of <cmd> to <file>
<cmd> > <file>Direct the output of <cmd> into <file>
<cmd1> | <cmd2>Direct the output of <cmd1> to <cmd2>

Customize the Terminal after that

This cheat sheet contains a large number of commands. But you don’t have to study them all at once! Instead, choose a combination that works well with your process and saves you the most time. Once you’ve learned these commands, there’s still a lot more to learn about the Terminal to help you get the most out of it.


I hope you found this information helpful. Please fill out the form below if you have any queries or comments.

What are bash commands, and how do I use them?

Bash (also known as Bourne Again Shell) is an interpreter for shell commands. A shell interpreter receives plain text commands and attempts to execute them by calling OS services. The ls command, for example, displays a directory’s files and folders. Bash is a more advanced version of sh (Bourne Shell).

Is the Mac terminal identical to the Linux terminal?

As you may have gathered from my introduction essay, macOS is a type of UNIX that is similar to Linux. However, unlike Linux, macOS does not come with virtual terminals installed by default. Instead, you’ll utilize the Terminal program (/Applications/Utilities/Terminal) to get a BASH shell and an instruction terminal. The case of all instructions is important.

What is the purpose of Terminal on a Mac?

The Mac Terminal is a command system that can help you quickly grasp your operating system and make changes. It’s simple to get to the Terminal app on your Mac, either using the Finder or Spotlight.

Mark Funk
Mark Funk is an experienced information security specialist who works with enterprises to mature and improve their enterprise security programs. Previously, he worked as a security news reporter.