0nn0/terminal-mac-cheatsheet
0nn0/terminal-mac-cheatsheet has 7,429 GitHub stars and 1,945 forks. GitHot measured +7 in 7 days. Last checked 2026-11-09 15:58 UTC. Last push 2024-05-17.
List of my most used commands and shortcuts in the terminal for Mac
Measured star growth
- in 24h
- Update delayed
- in 7 days
- +7
- in 15 days
- Update delayed
- in 1 month
- Update delayed
Net star changes over overlapping periods, not daily totals. Missing measurements are left blank. Stars measure attention, not software quality.
README.md
OriginalTerminal Cheatsheet for Mac (Basics)
This cheatsheet is available in many languages. Since the translation rely on volunteers, the content between the available languages may vary. Choose one below:
- English Version
- Version en Español
- Version Française
- Wersja Polska
- Versão em Português
- Versioni Shqip
- Phiên bản Tiếng Việt
- Türkçe Versiyonu
- Русская Версия
- Українська Версія
- 한국어판
- 中文版
- 日本語
- 繁體中文版
- Bahasa Indonesia
- Deutsch
English Version
Letters are shown capitalized for readability only. Capslock should be off.
SHORTCUTS
| Key/Command | Description |
|---|---|
| Ctrl + A | Go to the beginning of the line you are currently typing on. This also works for most text input fields system wide. Netbeans being one exception |
| Ctrl + E | Go to the end of the line you are currently typing on. This also works for most text input fields system wide. Netbeans being one exception |
| Ctrl + L | Clears the Screen |
| 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 |
CORE COMMANDS
| Key/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 |
CHAINING COMMANDS
| Key/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 |
PIPING COMMANDS
| Key/Command | Description |
|---|---|
| [command-a] | [command-b] | Run command A and then pass the result to command B e.g ps auxwww | grep google |
COMMAND HISTORY
| Key/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 |
FILE MANAGEMENT
| Key/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 |
DIRECTORY MANAGEMENT
| Key/Command | Description |
|---|---|
| mkdir [dir] | Create new directory |
| mkdir -p [dir]/[dir] | Create nested directories |
| rmdir [dir] | Remove directory ( only operates on empty directories ) |
| rm -R [dir] | Remove directory and contents |
| less [file] | Output file content delivered in screensize chunks |
| [command] > [file] | Push output to file, keep in mind it will get overwritten |
| [command] >> [file] | Append output to existing file |
| [command] < [file] | Tell command to read content from a file |
SEARCH
| Key/Command | Description |
|---|---|
| find [dir] -name [search_pattern] | Search for files, e.g. find /Users -name "file.txt" |
| grep [search_pattern] [file] | Search for all lines that contain the pattern, e.g. grep "Tom" file.txt |
| grep -r [search_pattern] [dir] | Recursively search in all files in specified directory for all lines that contain the pattern |
| grep -v [search_pattern] [file] | Search for all lines that do NOT contain the pattern |
| grep -i [search_pattern] [file] | Search for all lines that contain the case-insensitive pattern |
| mdfind [search_pattern] | Spotlight search for files (names, content, other metadata), e.g. mdfind skateboard |
| mdfind -onlyin [dir] -name [pattern] | Spotlight search for files named like pattern in the given directory |
HELP
| Key/Command | Description |
|---|---|
| [command] -h | Offers help |
| [command] --help | Offers help |
| info [command] | Offers help |
| man [command] | Show the help manual for [command] |
| whatis [command] | Gives a one-line description of [command] |
| apropos [search-pattern] | Searches for command with keywords in description |
GIT
For Git related commmands you can check my git-basics-cheatsheet
Explore related projects
codecrafters-io/build-your-own-x
Master programming by recreating your favorite technologies from scratch.
561,655 starspublic-apis/public-apis
A collective list of free APIs
498,047 starsmorluto/rea
Reverse engineer anything with agents, from app behavior down to native binaries.
450,720 starsopenclaw/openclaw
The AI that really does things. Any OS. Any Platform. The lobster way. 🦞
394,314 stars