Why a Cheat Sheet?

You've learned the basics of the Linux terminal. You know ls, cd, and mkdir. But when you're staring at a black screen trying to remember "what was the flag to check disk space again?" — that's when a cheat sheet saves you.

This isn't a list of 200 commands you'll never use. It's organized by what you're actually trying to do, with the commands that solve real problems. No fluff.

If you're brand new to the terminal, start with our Linux Terminal Basics guide first — it walks through the 10 essential commands every beginner needs.

File Navigation

These commands help you figure out where you are and what's around you.

Command What It Does Example
pwd Show current directory path pwd/home/you/projects
ls -la List files with details and hidden files ls -la
cd <dir> Move into a directory cd Documents/
cd .. Go up one level cd ..
cd ~ Jump to home directory cd ~
tree Show folder structure as a tree tree -L 2 (2 levels deep)
find . -name "*.txt" Find files by name find ~/ -name "backup.sh"
locate <name> Fast file search (uses index) locate nginx.conf
# Find all .log files bigger than 10MB
find /var/log -name "*.log" -size +10M

File Operations

Creating, copying, moving, and deleting — the daily operations.

Command What It Does Example
touch file.txt Create an empty file touch README.md
mkdir -p a/b/c Create nested folders in one shot mkdir -p project/src/lib
cp file copy Copy a file cp config.yml config.yml.bak
cp -r dir/ dest/ Copy entire directory cp -r blog/ backup/
mv old new Move or rename mv draft.md final.md
rm file Delete a file (no undo!) rm old-log.txt
rm -r dir/ Delete directory and contents rm -r temp-files/
cat file Print file contents to screen cat /etc/hostname
less file Scroll through a file (q to quit) less /var/log/syslog
head -n 20 file Show first 20 lines head -n 20 data.csv
tail -f file Follow a log file in real time tail -f /var/log/nginx/access.log
wc -l file Count lines in a file wc -l names.txt

Safety tip: There's no trash bin in the terminal. Double-check before rm, especially with -rf. Use rm -i for interactive confirmation.

File Permissions

Every file and folder in Linux has read (r), write (w), and execute (x) permissions for the owner, group, and others.

Command What It Does Example
chmod +x script.sh Make a script executable chmod +x deploy.sh
chmod 755 file rwx for owner, rx for others chmod 755 ~/public/
chmod 644 file rw for owner, r for others chmod 644 index.html
chown user:group file Change file owner chown www-data:www-data site/

For a deeper dive, read our step-by-step guide: Linux File Permissions Explained.

System Information

"What's going on with this machine?"

Command What It Does Example
df -h Disk space per partition (human-readable) df -h
du -sh dir/ Total size of a directory du -sh ~/Downloads/
free -h RAM usage free -h
top Real-time process monitor (q to quit) top
htop Prettier, interactive top htop
ps aux List all running processes ps aux | grep nginx
uname -a Kernel and system info uname -a
lsb_release -a Which Linux distro and version lsb_release -a
uptime How long the system has been running uptime
who Who's logged in who
# What's eating my disk space? Top 5 directories:
du -sh /* 2>/dev/null | sort -rh | head -5

Networking

Diagnose connectivity, download files, and connect to remote servers.

Command What It Does Example
ping -c 4 host Test connectivity (4 packets) ping -c 4 google.com
curl -O url Download a file curl -O https://example.com/file.zip
curl -I url Show HTTP headers only curl -I byteleveltech.com
wget url Download files (supports retry) wget https://example.com/file.tar.gz
ip addr Show network interfaces and IPs ip addr
ss -tlnp Show listening ports ss -tlnp
ssh user@host Connect to remote server ssh root@203.0.113.10
scp file user@host:/path Copy file to remote server scp app.py user@server:~

New to SSH? Read our beginner's guide: How to Use SSH to Connect to Remote Servers.

Text Processing

The terminal's superpower: slice, dice, and search text without opening an editor.

Command What It Does Example
grep "pattern" file Search for text in a file grep "error" app.log
grep -r "TODO" ./ Search recursively in all files grep -r "FIXME" src/
grep -v "debug" file Exclude lines matching pattern grep -v "DEBUG" app.log
sed 's/old/new/g' file Find and replace text sed 's/http/https/g' config.yml
awk '{print $1}' file Print first column of each line awk '{print $1, $3}' data.txt
sort file Sort lines alphabetically sort names.txt
sort -n file Sort numerically sort -n scores.txt
uniq Remove duplicate lines (needs sort first) sort file | uniq
sort file | uniq -c Count occurrences of each line sort log | uniq -c | sort -rn
# Find the 5 most frequent IPs in an nginx access log
awk '{print $1}' /var/log/nginx/access.log | sort | uniq -c | sort -rn | head -5

Process Management

Start, stop, and control running programs.

Command What It Does Example
ps aux List all processes ps aux
kill PID Stop a process by ID kill 1234
kill -9 PID Force-kill a stubborn process kill -9 1234
pkill name Kill by process name pkill firefox
bg Resume a stopped job in background bg
fg Bring background job to foreground fg
jobs List background jobs jobs
nohup cmd & Run command immune to hangup nohup python app.py &
ctrl+z Pause current foreground job Press Ctrl+Z
ctrl+c Stop current foreground job Press Ctrl+C

Package Management (Ubuntu/Debian)

Installing, updating, and removing software.

Command What It Does
sudo apt update Refresh package list
sudo apt upgrade Upgrade all installed packages
sudo apt install <pkg> Install a package
sudo apt remove <pkg> Remove a package (keeps configs)
sudo apt purge <pkg> Remove package and configs
apt search <keyword> Search for a package
apt list --installed Show installed packages
sudo snap install <pkg> Install via Snap (universal packages)
# One-liner to update everything
sudo apt update && sudo apt upgrade -y && sudo apt autoremove -y

Scheduling Tasks (Cron)

Automate repetitive tasks to run on a schedule.

# Edit your cron jobs
crontab -e

# Format: minute hour day month weekday command
# Run backup script every day at 2:00 AM
0 2 * * * /home/you/scripts/backup.sh

# List your cron jobs
crontab -l

Want to master task scheduling? Read our full tutorial: Linux Cron Jobs: A Beginner's Guide.

Shortcuts That Save Time

Shortcut What It Does
Tab Auto-complete command or path
Ctrl+R Search command history
Ctrl+A Jump to start of line
Ctrl+E Jump to end of line
Ctrl+U Delete from cursor to start
Ctrl+K Delete from cursor to end
Ctrl+L Clear screen (same as clear)
!! Repeat last command
!$ Last argument of previous command
history Show command history
alias short='long cmd' Create a shortcut for any command
# Handy aliases to put in ~/.bashrc
alias ll='ls -la'
alias ..='cd ..'
alias update='sudo apt update && sudo apt upgrade -y'
alias myip='curl ifconfig.me'

Quick Reference by Task

Not sure which command you need? Start here:

I want to... Use this
See where I am pwd
See what's in this folder ls -la
Go into a folder cd foldername
Create a folder mkdir foldername
Create a file touch file.txt
Read a file cat file.txt or less file.txt
Edit a file nano file.txt or vim file.txt
Copy a file cp source dest
Move/rename a file mv old new
Delete a file rm file.txt
Find a file find . -name "*.txt"
Search inside files grep "text" file
Check disk space df -h
Check RAM free -h
See running programs htop or top
Kill a program kill PID
Download a file wget url or curl -O url
Connect to another server ssh user@ip
Make a script runnable chmod +x script.sh
Schedule a task crontab -e
Install software sudo apt install name
Get help for a command man command

Next Steps

This cheat sheet covers the commands you'll reach for daily. The best way to learn them? Stop using the file explorer for a week. Do everything in the terminal — move files, check disk space, search logs. It'll feel slow at first, but after a week you won't want to go back.

Ready to go deeper? Here's the full Linux series:

Bookmark this page. You'll be back.

All code in this article was tested and runs successfully on Ubuntu 20.04 — verified August 2026. find -size +10M was tested with real 11MB/9MB files, the du and awk pipelines with a real test directory and a sample nginx-style access log, and the aliases in a real bash session (the myip alias resolved via ifconfig.me). The apt command was verified with an apt simulation run — running it for real requires sudo, and crontab -e opens an editor (crontab -l was executed).