Practice

Practice Terminal

A Unix shell simulated in your browser: real command behaviour over an in-memory filesystem, with exercises that check your work.

12 exercises 30+ commands no backend runs offline
Practice

A Unix terminal that actually runs

Type real commands. They are parsed and executed against a filesystem held in this page — pipes move data, redirection writes files, and the next command sees what the last one changed.

vishal@platform-ops-lab — simulated

Exercises

0 of 0 done
This is a simulation, not a machine

There is no kernel, no processes and no network behind it — a shell implemented in JavaScript over an in-memory tree. It is honest about that because a practice box you mistake for a real one teaches the wrong lesson. Nothing you type leaves the page, and Reset box puts the filesystem back exactly as it started.

What works

The parts of a shell worth practising

Not every flag of every tool — the ones you reach for daily, behaving correctly.

AreaCommands
Moving aroundpwd cd ls -l -a
Readingcat head -n tail -n wc -l -w -c stat
Searchinggrep -i -v -n -c find -name -type
Shaping textsort -r -n uniq -c cut -d -f tr echo
Changing thingsmkdir -p touch rm -r cp mv chmod
Looking aroundwhoami id ps df env uname -a history
Shell itselfpipes |, redirection > >>, chaining &&, globs *, ~, quoting, Tab completion, Up/Down history
Everything is connected

Why the terminal spans so many layers

Production problems do not respect the boundaries between disciplines, and the layer a failure belongs to is rarely the layer it shows up in. That is why the practice box includes Linux files, logs, services, cluster output and recovery clues instead of one isolated command list.

ClueWhere it crosses a boundary
A DNS TTLIt is a networking setting, until a failover takes thirty minutes to be believed.
A memory limitIt is a Kubernetes field, until it is a garbage collector thrashing at 94%.
A readiness probeIt is a YAML block, until it quietly removes every pod from the load balancer.
A base imageIt is a Dockerfile line, until it is the CVE in somebody's audit.
A retryIt is three lines of client code, until it is the reason the outage lasted an hour.
A disk filling upIt is a Linux problem, until the kubelet stops reporting and the node goes NotReady.
A Service selectorIt is one label, until it is a healthy object routing to nothing.
An error budgetIt is a number in a document, until it is the argument that stops a release.

Use the terminal as a safe place to practise that habit: read the symptom, check the nearest evidence, then cross the boundary only when the evidence points there.