All tools
Free

A searchable, printable Bash / shell reference — navigation, files, pipes, variables, loops, conditionals and handy one-liners. Free.

Navigation

8
pwd
Print the working directory
ls -la
List all files with details
cd /path
Change directory
cd -
Go to the previous directory
cd ~
Go to the home directory
tree -L 2
Show directory tree (2 levels)
pushd / popd
Push and pop the directory stack
ls -lhS
List by size, human-readable

Files & directories

10
touch file.txt
Create an empty file
mkdir -p a/b/c
Create nested directories
cp -r src dest
Copy recursively
mv old new
Move or rename
rm -rf dir
Remove recursively (careful!)
ln -s target link
Create a symbolic link
cat file.txt
Print file contents
head -n 20 / tail -n 20
First / last 20 lines
tail -f log.txt
Follow a file as it grows
less file.txt
Page through a file

Search & find

8
grep 'pattern' file
Search for a pattern in a file
grep -rin 'text' .
Recursive, case-insensitive, numbered
find . -name '*.php'
Find files by name
find . -type f -mtime -1
Files modified in the last day
find . -size +10M
Files larger than 10 MB
which node
Locate an executable
locate file.txt
Find by indexed database
grep -v 'skip' file
Invert match (exclude lines)

Text processing

9
wc -l file
Count lines
sort file | uniq -c
Sort then count duplicates
cut -d',' -f1 file
Extract a CSV column
awk '{print $1}' file
Print the first field
sed 's/old/new/g' file
Substitute text
tr 'a-z' 'A-Z'
Translate characters
diff a.txt b.txt
Compare two files
tee out.txt
Write to a file and stdout
xargs -I{} cmd {}
Build commands from input

Pipes & redirection

9
a | b
Pipe output of a into b
cmd > file
Redirect stdout (overwrite)
cmd >> file
Redirect stdout (append)
cmd 2> err.log
Redirect stderr
cmd > out 2>&1
Redirect both streams
cmd < input.txt
Read stdin from a file
cmd1 && cmd2
Run cmd2 only if cmd1 succeeds
cmd1 || cmd2
Run cmd2 only if cmd1 fails
cmd &
Run in the background

Permissions & ownership

8
chmod 755 file
Set rwx for owner, rx for others
chmod +x script.sh
Make a file executable
chmod -R 644 dir
Recursive permission change
chown user:group file
Change owner and group
umask 022
Default permission mask
sudo cmd
Run a command as root
stat file
Show file metadata
ls -l file
View permission bits

Processes & system

9
ps aux
List running processes
top / htop
Live process monitor
kill -9 PID
Force-kill a process
pkill -f name
Kill processes by name
jobs / fg / bg
Manage background jobs
df -h
Disk space usage
du -sh dir
Size of a directory
free -h
Memory usage
uname -a
System and kernel info

Variables & expansion

9
NAME='value'
Set a variable (no spaces)
echo \"$NAME\"
Use a variable
export PATH=\"$PATH:/x\"
Export to child processes
$(command)
Command substitution
${VAR:-default}
Default if unset
$1 $2 $@
Script positional arguments
$?
Exit status of the last command
read -p 'Name: ' x
Read user input
echo {1..5}
Brace expansion

Scripting

9
#!/usr/bin/env bash
Shebang line
set -euo pipefail
Safer strict mode
if [ -f file ]; then ...; fi
Conditional on a file test
[ \"$a\" = \"$b\" ]
String comparison
for f in *.txt; do ...; done
Loop over files
while read line; do ...; done < file
Read a file line by line
case \"$x\" in a) ...;; esac
Multi-way branch
function greet() { echo hi; }
Define a function
trap cleanup EXIT
Run a handler on exit

No entry matches “:q”.


About Shell Cheat Sheet

This Bash and shell cheat sheet covers the command line from first steps to scripting: navigation, files and directories, search and find, text processing, pipes and redirection, permissions and ownership, processes and system info, variables and expansion, and shell scripting constructs.

It pairs everyday commands — ls, cp, grep, find, chmod, ps — with the flags that make them useful, plus the pipe, redirection and expansion syntax that turns single commands into one-liners. The scripting section reminds you of loop, conditional and function syntax when you write a script twice a year.

Everything is on one free, client-side page: search filters the rows live, the sticky table of contents jumps between sections, one click copies any command and the print button gives you a terminal reference for your desk.

How to use Shell Cheat Sheet

  1. Browse the sections, from Navigation and Files & directories through Pipes & redirection to Scripting.
  2. Type a command name like grep or chmod into the search box to filter the sheet instantly.
  3. Jump to a section such as Text processing via the sticky sidebar.
  4. Click a command or its copy icon to copy it, then paste it into your terminal.
  5. Print the page for an offline Bash command reference.

Frequently asked questions

The sheet is written for Bash and POSIX-style shells, so nearly everything works unchanged in bash, zsh and similar shells on Linux and macOS.

Both. Alongside file, search, text-processing and process commands, dedicated sections cover variables and expansion plus scripting constructs — loops, conditionals and the syntax you forget between scripts.

Yes. Click the command or the copy icon on its row and it is placed on your clipboard, ready to paste into a terminal.

Always read a command before running it, especially anything involving rm, permissions or redirection. Each row includes a one-line description of exactly what the command does.

Yes, completely free — it is a client-side reference page with no account and no limits.


Popular searches
linux commands cheat sheet bash cheat sheet shell commands list grep and find examples bash scripting reference chmod permissions cheat sheet pipes and redirection bash terminal commands list
Need help?
Found an issue with this tool? Let our team know.
Report an issue

Add this free tool to your own website — copy and paste the code below.