Home
Bash EscapeRoom Labs


Decryption Tip
If the content doesn’t appear after entering the password in the selected room, please refresh the page (F5 or Ctrl+R).
Usage
- There are several ways to run the Bash-EscapeRoom Labs.
- Choose the method that works best for you.
Using Docker is the easiest way to get started locally with the labs:
# GitHub Container Registry
docker run -it --pull=always -p 3000:3000 ghcr.io/nirgeier/bash-escaperoom
Prerequisites:
- Docker and Docker Compose installed on your system
- No additional setup required
- The easiest way to get started with the labs
- Learn in your browser without any local installation
Benefits:
- No installation required
- Pre-configured environment
- Works on any device with a web browser
- All tools pre-installed
For those who prefer to run it directly on their machine:
# Clone the repository
git clone https://github.com/nirgeier/Bash-EscapeRoom
# Change to the Labs directory
cd Bash-EscapeRoom/Labs
# Start with the setup lab
cd assets
# Follow the instructions in the README of each lab
cat README.md
Prerequisites:
- A Unix-like operating system (Linux, macOS, or Windows with WSL)
- Basic command-line tools
- Google Cloud Shell provides a free, browser-based environment with all necessary tools pre-installed.
- Click on the
Open in Google Cloud Shellbutton below:
- The repository will automatically be cloned into a free Cloud instance.
- Use CTRL + click to open it in a new window.
- Follow the instructions in the README of each lab.
Benefits:
- No local installation required
- Pre-configured environment
- Works on any device with a web browser
- All tools pre-installed
- Free tier available
Intro
- This tutorial is for teaching bash scripting through puzzles designed as escape rooms.
- Each room is packaged in its own folder and includes the files, scripts, and assets required to play.
- Every room folder includes a
READMEthat describes the room’s objectives, hints, rules, and how to verify the solution. - The Bash Escape Room is a series of bash puzzles (Escape-rooms, rooms similar to the real-life attractions of Escape rooms).
- The Bash Escape Room puzzles are designed to teach the players Bash and Linux skills & features.
- The inspiration for this project is the real-life Escape rooms.
Pre-Requirements
- This tutorial will test your
LinuxandBashskills. - You should be familiar with the following topics:
- Basic Linux commands
- Linux File system navigation
- Linux Text processing tools (like
grep,sed,awk) - Linux Shell scripting basics
- Linux Understanding of environment variables
- Basic knowledge of
Docker(if you choose to run it with Docker) - Basic knowledge of
Vim
Room Links
| Room | Title | Key Commands | Status |
|---|---|---|---|
| Room-01 | The Lost Expedition | find, cat, sort, xargs | |
| Room-02 | The Broken Radio | grep, grep -c, wc -l | |
| Room-03 | The Time Capsule | tac, rev, head, tail, wc | |
| Room-04 | The Spy Cipher | sed, sed 's/old/new/g' | |
| Room-05 | The Decoder Ring | base64, tr (ROT13), rev | |
| Room-06 | The Duplicate Detective | sort, uniq, comm, diff | |
| Room-07 | The Permission Maze | chmod, stat, ls -l | |
| Room-08 | The Environment Lab | export, env, source, alias | |
| Room-09 | The Ghost Process | ps, kill, jobs, bg, fg | |
| Room-10 | The Data Mine | awk, awk -F, NR, NF | |
| Room-11 | The Nested Archive | base64 -d, gzip, tar, file | |
| Room-12 | The Grand Pipeline | cut, tr, pipes | |
| Room-13 | The Mirror Maze | ln -s, readlink, readlink -f | |
| Room-14 | The Web Crawler | curl, curl -H, curl -s | |
| Room-15 | The JSON Vault | jq, jq -r, select() | |
| Room-16 | The Space Station | df -h, du -sh, sort -rh | |
| Room-17 | The Clockwork Fortress | crontab -l, cron expressions | |
| Room-18 | The Twin Blueprints | diff, diff -u, patch | |
| Room-19 | The Integrity Check | md5sum, sha256sum, sha256sum -c | |
| Room-20 | The Hex Dungeon | xxd, xxd -r, od, hexdump | |
| Room-21 | The Binary Library | strings, strings -n | |
| Room-22 | The Calculator Cave | bc, expr, $(( )) | |
| Room-23 | The Time Machine | date, date -d @TIMESTAMP | |
| Room-24 | The Formatter’s Workshop | printf, echo -e | |
| Room-25 | The Signal Crossroads | tee, tee -a, paste | |
| Room-26 | The Variable Vault | ${var##*/}, ${var%/*}, parameter expansion | |
| Room-27 | The Array Arsenal | arr=(), ${arr[@]}, mapfile | |
| Room-28 | The Loop Labyrinth | for loops, $(( )) | |
| Room-29 | The Endless Corridor | while read, while IFS= read -r | |
| Room-30 | The Fork in the Road | if/elif/else, [ ], [[ ]] | |
| Room-31 | The Decision Chamber | case ... in, pattern matching | |
| Room-32 | The Function Factory | func(){}, local, return | |
| Room-33 | The Argument Decoder | getopts, $OPTARG | |
| Room-34 | The Ancient Scroll | << 'EOF', here-documents | |
| Room-35 | The Nested Worlds | $(), <(cmd), process substitution | |
| Room-36 | The Signal Tower | trap, kill -SIGUSR1 | |
| Room-37 | The Interactive Gateway | read, read -p, read -s | |
| Room-38 | The Time Bomb | timeout, watch, sleep | |
| Room-39 | The Network Hub | ss -tlnp, netstat -tlnp | |
| Room-40 | The DNS Oracle | dig, host, nslookup | |
| Room-41 | The Netcat Tunnel | nc, nc -l | |
| Room-42 | The Open Files Archive | lsof, lsof -p, lsof -i | |
| Room-43 | The System Call Observatory | strace, ltrace | |
| Room-44 | The Mirror Sync | rsync -av, rsync --delete | |
| Room-45 | The Cryptographer’s Den | openssl enc -d, openssl dgst | |
| Room-46 | The Vi Vortex | vim, NG, /pattern | |
| Room-47 | The Remote Gateway | ssh-keygen, ssh -i, scp | |
| Room-48 | The Version Vault | git log, git show HASH:file | |
| Room-49 | The Grand Pipeline II | awk, sort, uniq -c, sort -rn | |
| Room-50 | The Master Terminal | find, base64, grep, bc, sha256sum | |
| Room-51 | The Command Assembler | xargs, xargs -I{}, xargs -P, xargs -0, find \| xargs | |
| Room-52 | The Ownership Vault | chown, chgrp, umask, id, groups, stat | |
| Room-53 | The Network Probe | ping, traceroute, tracepath, wget, wget -O - | |
| Room-54 | The System Monitor | top, free, uptime, vmstat, /proc/meminfo, nproc | |
| Room-55 | The System Inspector | uname, hostname, whoami, id, who, w, lscpu | |
| Room-56 | The Process Controller | pgrep, pkill, nohup, nice, renice, killall | |
| Room-99 | Final Exam | All commands |
Good Luck!