Command | Description | Example |
---|---|---|
/ (Forward Slash) | Represents the root directory in the file system | / |
. (Single Period) | Refers to the current directory in which you're working | . |
.. (Double Period) | Refers to the parent directory (one level up from the current directory) | .. |
~ (Tilde) | Represents the home directory of the current user | ~ |
sudo [command] | Executes a command with elevated (super user) privileges | sudo rm -rf /path/to/folder |
nano [file] | Opens the Nano text editor to create or edit a file directly in the terminal | nano myfile.txt |
open [file] | Opens a specified file with the default application associated with its type | open myfile.txt |
Command | Description | Example |
---|---|---|
cd | Navigate to the home directory | cd |
cd [folder] | Change to a specific directory (e.g., Documents, Downloads) | cd Documents |
cd ~ | Go to the home directory (shortcut for the user's home directory) | cd ~ |
cd / | Navigate to the root directory of the file system | cd / |
cd - | Go back to the previous directory you were last working in | cd - |
pwd | Print the current working directory | pwd |
cd.. | Move up one level to the parent directory | cd.. |
cd../.. | Move up two levels in the directory structure | cd../.. |
Command | Description | Example |
---|---|---|
ls | Lists all files and subdirectories in the current directory | ls |
ls -C | Displays the contents of the directory in a multi-column format | ls -C |
ls -a | Shows all entries in the directory, including hidden files (those starting with a period) | ls -a |
ls -1 | Lists files and directories, one entry per line | ls -1 |
ls -F | Adds special symbols: a / after directories, a * after executable files, and an @ after symlinks | ls -F |
ls -S | Sorts files and directories by size, with the largest listed first | ls -S |
ls -l | Lists files in long format, including file permissions, owner, group, size, and modification date | ls -l |
ls -l / | Displays a detailed list of files starting from the root directory, including symbolic links | ls -l / |
ls -lt | Lists files in long format, sorted by modification time (newest first) | ls -lt |
ls -lh | Displays file sizes in human-readable format (KB, MB, GB, etc.) along with other detailed information | ls -lh |
ls -lo | Lists files with detailed information, including file size, owner, and flags | ls -lo |
ls -la | Shows a detailed list of all files, including hidden files (those starting with a period) | ls -la |
Command | Description | Example |
---|---|---|
history n | Shows the last n commands you've typed, allowing you to quickly review previous commands | history 5 |
![value] | Executes the last command that starts with the given string or value | !ls |
!! | Runs the last command typed, saving you from having to retype it | !! |
Command | Description | Example |
---|---|---|
[command] -h | Displays basic help information about a command | ls -h |
[command] --help | Provides detailed help and options for a command | mkdir --help |
[command] help | Displays help for the specified command | cp help |
reset | Resets the Terminal display to its default state | reset |
man [command] | Shows the manual page for a given command, with details | man ls |
whatis [command] | Provides a brief, one-line description of a command | whatis ls |
Command | Description | Example |
---|---|---|
du | Displays the disk usage of each subdirectory and its contents | du |
du -sh [folder] | Shows a human-readable output of the total size of all files in a specified directory | du -sh /Documents |
du -s | Shows the total disk usage for the specified files or directories | du -s /Users/YourUsername |
du -sk* | sort -nr | Lists all files and folders with their sizes, including subfolders, sorted by size | du -sk* | sort -nr |
df -h | Displays the available free disk space on your system in a human-readable format | df -h |
df -H | Displays the free disk space in powers of 1,000 instead of 1,024 | df -H |
Command | Description | Example |
---|---|---|
mkdir <dir> | Creates a new directory with the specified name | mkdir Projects |
mkdir -p <dir>/<dir> | Creates nested directories in a single command | mkdir -p Work/2023/Reports |
mkdir <dir1> <dir2> <dir3> | Creates multiple directories at once | mkdir Folder1 Folder2 Folder3 |
mkdir "<dir>" | Creates a folder with spaces in its name | mkdir "My New Folder" |
rmdir <dir> | Deletes an empty directory | rmdir OldFolder |
rm -R <dir> | Removes a directory and all of its contents | rm -R ProjectFolder |
touch <file> | Creates a new, empty file without any extension | touch newfile.txt |
cp <file> <dir> | Copies a file to a specified directory | cp file.txt /Documents/ |
cp <file> <newfile> | Copies a file to the current directory and renames it | cp file.txt newfile.txt |
cp <file>~/<dir>/<newfile> | Copies a file to a specified folder and renames it during the process | cp report.txt ~/Documents/Reports/summary.txt |
cp -R <dir> <"new dir"> | Copies an entire directory, including its contents, to a new location | cp -R folder1 "New Folder" |
cp -i <file><dir> | Prompts you for confirmation before overwriting a file during copy | cp -i file1.txt /Backup/ |
cp <file1> <file2> <file3>/Users/<dir> | Copies multiple files into a directory | cp file1.txt file2.txt /Users/username/Documents/ |
ditto -V [folder path][new folder] | Copies the contents of one folder to another, with status updates | ditto -V /Folder1 /Folder2 |
rm <file> | Deletes a specified file permanently | rm unwantedfile.txt |
rm -i <file> | Deletes a file with a prompt for confirmation | rm -i oldfile.txt |
rm -f <file> | Forces the deletion of a file without any confirmation | rm -f tempfile.txt |
rm <file1> <file2> <file3> | Deletes multiple files at once without confirmation | rm file1.txt file2.txt file3.txt |
mv <file> <newfilename> | Moves or renames a file to a new location or name | mv oldfile.txt newfile.txt |
mv <file> <dir> | Moves a file to a different directory | mv file.txt /Documents/Backup/ |
mv -i <file> <dir> | Moves a file to a folder and asks for confirmation before overwriting | mv -i file1.txt /Documents/Backup/ |
mv *.png ~/<dir> | Moves all PNG files from the current directory to another directory | mv *.png ~/Pictures/ |
Command | Description | Example |
---|---|---|
ls -ld | Displays the default permissions for a directory, such as a home directory | ls -ld ~ |
ls -ld <dir> | Shows the read, write, and access permissions of a specific directory or folder | ls -ld /Documents/Work |
chmod 755 <file> | Modifies the permissions of a file, setting it to read, write, and execute for the owner, and read and execute for others | chmod 755 myscript.sh |
chmod -R 600 <dir> | Changes the permissions of a directory (and its contents) to read and write for the owner only, with no permissions for others | chmod -R 600 /Projects/ |
chown <user>:<group> <file> | Changes the ownership of a file or directory to a specified user and group. Add -R to apply this to all files within a folder | chown user:admin myfile.txt |
Command | Description | Example |
---|---|---|
find <dir> -name <"file"> | Search for all files named <file> within the specified directory <dir>. Use wildcards (*) to match partial filenames | find /Users/ -name "*.txt" |
find <dir> -size +<size> | Find files larger than a specified size in the given directory <dir> | find /Documents -size +10M |
find <dir> -size -<size> | Find files smaller than a specified size in the given directory <dir> | find /Downloads -size -5M |
grep "<text>" <file> | Search for and display all occurrences of <text> within a file <file>. Use -i to make the search case-insensitive | grep "error" logfile.txt |
grep -rl "<text>" <dir> | Recursively search for files within a directory <dir> that contain the specified <text> | grep -rl "TODO" /Projects/ |
Command | Description | Example |
---|---|---|
cat <file> | Displays the entire content of the specified file directly in the Terminal | cat myfile.txt |
less <file> | Displays the content of a file in a paginated view, allowing for easy scrolling | less myfile.txt |
head <file> | Displays the first 10 lines of a file | head myfile.txt |
<cmd> < file | Uses the content of a file as input for a command | sort < file.txt |
<cmd> >> <file> | Appends the output of a command to the specified file | echo "New text" >> myfile.txt |
<cmd> > <file> | Redirects the output of a command into the specified file, overwriting it | ls > directory_list.txt |
<cmd1> | <cmd2> | Sends the output of one command as input to another command (pipe) | ls -l | grep "Dec" |
Command | Description | Example |
---|---|---|
ping <host> | Sends a network request to the specified host to check connectivity and displays the response time | ping google.com |
whois <domain> | Retrieves and displays information about the registered domain, including ownership and registration details | whois example.com |
curl -O <url/to/file> | Downloads a file from the specified URL using HTTP, HTTPS, or FTP protocols | curl -O http://example.com/file.zip |
ssh <username>@<host> | Connects to a remote system securely via SSH (Secure Shell) using the provided username and host | ssh user@192.168.1.1 |
scp <file> <user>@<host>:/remote/path | Copies a local file to a remote host using SCP (Secure Copy Protocol) | scp file.txt user@192.168.1.1:/home/user/ |
arp -a | Displays a list of all devices currently on your local network, showing their IP and MAC addresses | arp -a |
ifconfig en0 | Displays the network configuration details, including the IP and MAC address of your device | ifconfig en0 |
traceroute [hostname] | Traces the route taken by data packets from your system to a destination address, showing each hop along the way | traceroute example.com |
Command | Description | Example |
---|---|---|
printenv | Lists the current environment variables and shows information about your shell | printenv |
$echo | Prints a message or value to the Terminal | $echo "Hello, World!" |
echo $PATH | Displays the directories listed in the PATH variable, which are used to locate executable files | echo $PATH |
echo $PATH > path.txt | Saves the current PATH variable content to a text file | echo $PATH > path.txt |
export PATH=$PATH:/new/path | Adds a new directory to the current PATH for the session, allowing you to run programs from there | export PATH=$PATH:/usr/local/bin |
Command | Description | Example |
---|---|---|
ps -ax | Displays a list of all currently running processes, including those from other users and background tasks | ps -ax |
ps -aux | Lists detailed information about running processes, including CPU usage, memory usage, PID, and the command being run | ps -aux |
top | Provides real-time information on running processes, displaying CPU and memory usage dynamically | top |
top -ocpu -s 5 | Displays processes sorted by CPU usage, updating every 5 seconds | top -ocpu -s 5 |
top -o rsize | Sorts the top command output by memory usage (resident memory size) | top -o rsize |
kill PID | Terminates the process identified by its process ID (PID), which can be found in ps or top output | kill 12345 |
Command | Description | Example |
---|---|---|
brew doctor | Check your Homebrew installation for potential issues | brew doctor |
brew help | Display a list of useful Homebrew formula and cask commands | brew help |
brew list --formula | List only the installed formulae (packages) | brew list --formula |
brew list --cask | List only the installed casks (GUI applications) | brew list --cask |
brew outdated --formula | List only outdated formulas (packages) | brew outdated --formula |
brew outdated --cask | List only outdated casks (GUI applications) | brew outdated --cask |
brew pin [installed_formula] | Pin a formula or cask to prevent it from being upgraded automatically | brew pin python |
brew unpin [installed_formula] | Unpin a formula or cask to allow it to be upgraded again | brew unpin python |
brew cleanup | Clean up stale lock files, outdated versions, and unnecessary files | brew cleanup |
Shortcut | Description |
---|---|
Ctrl + A | Go to the beginning of the line you are currently typing on |
Ctrl + E | Go to the end of the line you are currently typing on |
Ctrl + L / Cmd + K | Clears the Screen |
Ctrl + U | Cut everything backwards to beginning of line |
Ctrl + K | Cut everything forward to end of line |
Ctrl + W | Cut one word backwards using white space as delimiter |
Ctrl + Y | Paste whatever was cut by the last cut command |
Ctrl + H | Same as backspace |
Ctrl + C | Kill whatever you are running. Also clears everything on current line |
Ctrl + D | Exit the current shell when no process is running, or send EOF to a the running process |
Ctrl + Z | Puts whatever you are running into a suspended background process. fg restores it |
Ctrl + _ | Undo the last command. (Underscore. So it's actually Ctrl + Shift + minus) |
Ctrl + T | Swap the last two characters before the cursor |
Ctrl + F | Move cursor one character forward |
Ctrl + B | Move cursor one character backward |
Option + → | Move cursor one word forward |
Option + ← | Move cursor one word backward |
Esc + T | Swap the last two words before the cursor |
Esc + Backspace | Cut one word backwards using none alphabetic characters as delimiters |
Tab | Auto-complete files and folder names |
Cmd + F | Find instances of specific text in the Terminal |
Cmd + A | Select everything in the Terminal |
Cmd + P | Print Terminal inputs and outputs |
Option + Shift + Cmd + C | Copy plain text |
Shift + Cmd + V | Paste the selection |
Cmd + N | Open a new Terminal window |
Cmd + T | Open a new Terminal tab |
Cmd + D | Split the Terminal window into two panes |
Cmd + W | Close a Terminal tab |
Option + Shift + Cmd + W | Close all Terminal tabs |
Command | Description |
---|---|
cd [folder] | Change directory e.g. cd Documents |
cd | Home directory |
cd ~ | Home directory |
cd / | Root of drive |
cd - | Previous directory |
ls | Short listing |
ls -l | Long listing |
ls -a | Listing incl. hidden files |
ls -lh | Long listing with Human readable file sizes |
ls -R | Entire content of folder recursively |
sudo [command] | Run command with the security privileges of the superuser (Super User DO) |
open [file] | Opens a file ( as if you double clicked it ) |
top | Displays active processes. Press q to quit |
nano [file] | Opens the file using the nano editor |
vim [file] | Opens the file using the vim editor |
clear | Clears the screen |
reset | Resets the terminal display |
Command | Description |
---|---|
[command-a]; [command-b] | Run command A and then B, regardless of success of A |
[command-a] && [command-b] | Run command B if A succeeded |
[command-a] || [command-b] | Run command B if A failed |
[command-a] & | Run command A in background |
Command | Description |
---|---|
[command-a] | [command-b] | Run command A and then pass the result to command B e.g ps auxwww | grep google |
Command | Description |
---|---|
history n | Shows the stuff typed – add a number to limit the last n items |
Ctrl + r | Interactively search through previously typed commands |
![value] | Execute the last command typed that starts with 'value' |
![value]:p | Print to the console the last command typed that starts with 'value' |
!! | Execute the last command typed |
!!:p | Print to the console the last command typed |
Command | Description |
---|---|
touch [file] | Create a new file |
pwd | Full path to working directory |
. | Current folder, e.g. ls . |
.. | Parent/enclosing directory, e.g. ls .. |
ls -l .. | Long listing of parent directory |
cd ../../ | Move 2 levels up |
cat | Concatenate to screen |
rm [file] | Remove a file, e.g. rm data.tmp |
rm -i [file] | Remove with confirmation |
rm -r [dir] | Remove a directory and contents |
rm -f [file] | Force removal without confirmation |
cp [file] [newfile] | Copy file to file |
cp [file] [dir] | Copy file to directory |
mv [file] [new filename] | Move/Rename, e.g. mv file1.ad /tmp |
pbcopy < [file] | Copies file contents to clipboard |
pbpaste | Paste clipboard contents |
pbpaste > [file] | Paste clipboard contents into file, pbpaste > paste-test.txt |