A simulated Bash shell written in pure JavaScript, with a virtual filesystem in memory and ~35 real commands (ls, cd, cat, grep, find, pipe, redirect, chmod, ps, etc.). Instant boot, ~30 KB. Learn the command line with 15 hands-on lessons alongside a working shell. No emulator, no kernel — just the commands as you would type them on a real Linux.
Click on a lesson to expand. Type the commands in the terminal on the left.
pwd — shows where you are in the filesystem.ls to list files, ls -la to see all (hidden included).cd /etc, back home with cd ~. cat file.txt shows the whole content.less file opens in pager (space to scroll, q to exit).head -20 file first 20 lines, tail -20 file last 20. touch new.txt creates empty file.echo "hello" > file.txt writes string (overwrites).echo "line2" >> file.txt appends at end.mkdir folder creates directory. cp source dest, cp -r for whole directories.mv old new moves or renames.rm file deletes, rm -rf folder recursive (careful!). ls -l shows -rwxr--r--.chmod 755 file = rwx-r-x-r-x.chmod +x script.sh adds executable. find /path -name "*.txt" search by name.find / -size +10M files larger than 10 MB.which cmd where is the executable.locate word (uses indexed database). grep "word" file search string in file.grep -r "word" . recursive search.grep -i case-insensitive.grep -v invert (show lines NOT containing). ls -la | grep txt filters ls output.cat file | wc -l counts lines.ps aux | grep sh find shell processes. > overwrites output to file.>> appends without deleting.< reads input from file.2>/dev/null discards errors.cmd > out.txt 2>&1 everything in one file. ps aux all processes.top live monitor (q to exit).kill 1234 terminate PID 1234.kill -9 1234 forced (SIGKILL).jobs, bg, fg background management. whoami who am I.id UID + GID + groups.su - user become another user.sudo cmd run as root.who who is logged in. uname -a kernel/CPU info.df -h disk space.du -sh folder how much it takes.free -h free RAM.uptime how long running. ip addr network interfaces.ping host ICMP connectivity.curl url fetches web page.wget url download file.netstat -tlnp listening ports. tar -cvf archive.tar files/ creates tar.tar -xvf archive.tar extracts.tar -czvf archive.tar.gz files/ tar+gzip.zip -r out.zip folder/, unzip file.zip. nano file.txt opens editor.vi file, i insert, Esc+:wq save+quit. man cmd shows the manual (q to exit)This is a Bash shell simulator written from scratch in pure JavaScript by Alessandro Barone for this site. Virtual filesystem in memory, ~35 real commands. No emulator, no kernel, no ROM: nothing from third-party proprietary code. Perfect for learning the CLI without risk of breaking anything on your real system.