Claude is having a major outage. Status board · Discuss Claude

_Terminal

Practise PowerShell and Bash on realistic data, with exercises that mark themselves. Everything runs inside your own browser tab.

A practice terminal for people who learn by typing. Pick a topic, run the command, and press Check my answer — the exercises mark themselves on what your command actually produced, so there is rarely only one right answer.

Nothing here touches a real system. The accounts, printers, services, volumes and event logs are invented, the filesystem exists only in your browser tab, and no command you type is sent anywhere. Break whatever you like — Reset sandbox puts it back.

The Shell Lab: a PowerShell console with an exercise, a hint and the answer being checked

A real console, in your browser

  • PowerShell and Bash, on realistic sample data: services, event logs, users, disks.
  • 130 exercises from your first command to scripting, each marked the moment you run it.
  • Stuck? A hint, then Guide me, which builds the answer one step at a time.
  • Nothing you type leaves your browser. Your progress is saved to your account.

Free for members.

Create a free account

What you will practise

PowerShell 68 exercises

Beginner 14
Meet PowerShell
Where am I? · Say something · What can I run? · Ask for help
Finding your way around
List your folder · Look in another folder · Read a file · Move into a folder · Does it exist?
Objects and variables
Pick one property · What is on this object? · How many printers? · Text has methods too · Keep it in a variable
Intermediate 32
Sorting and selecting
Choose your columns · Top of the list
Filtering the pipeline
Disabled accounts · Two conditions at once · Wildcard matching · Each department once · Alphabetical names · Any of these departments · Stale accounts
Searching text
Find matching lines · Everything except INFO · The last lines
Working with strings
Swap some text · Split a name apart · Join into one line
Files and directories
Create a directory · Copy a file · Rename a directory · Delete a file · Write a file · Add a line to a file · Pipe into a file · Move a file · Export to CSV
Working with CSV files
Read a CSV · Filter the rows · Servers per site
Grouping and counting
Largest department · How many are running · Count the shared queues
Processes and services
Services by name · Busy programs
Advanced 22
System resources
Memory hogs · Volumes running low · Total CPU in use · A column of your own
Event logs
Errors in the System log · Noisiest source · Most recent events · Print problems only
Scripting
Do something with each one · Make a decision · Write your own command · Count with a while loop · A function that takes input · Format a report line · Create it only if missing
Hashtables
A lookup table · Tally by department
Error handling
Catch a missing file · Show the error message · Always clean up
Reports and JSON
Print as JSON · Read JSON back

Bash 62 exercises

Beginner 12
Getting started
Where am I? · Who am I? · Say something · Print a variable · Make an empty file · Two commands, one line · What can I run?
Navigating and listing
List your folder · List a directory · Long listing · Read a file · Move into a folder
Intermediate 31
Reading and filtering text
Find matching lines · Count the matches · Show line numbers · First few lines · Pick out a column · Everything except INFO · Search a whole directory · Skip the header
Files and directories
Create a directory · Copy a file · Rename a directory · Delete a file · Nested directories · Move into a directory · Copy into a directory · Remove a directory · Find files by name
Counting and summarising
Count lines · Tally by value · Sort by a column · Each site once · Requests per client · Busiest client · Total bytes served
Permissions
Make it executable · Take a permission away · Keep it private
Variables and environment
Export a variable · Search the environment · Single or double quotes · Capture a command's output
Advanced 19
System resources
Disk space · Memory in use · Biggest memory users
System logs
Errors only · One unit at a time · Count the failures · Kernel messages
Scripting
Store a value · Loop over files · Save output to a file · Add to a file · Create it only if missing · Read a file line by line · Only if it succeeds
Transforming text
Compare a number · Replace text · Capital letters · Filter rows by number · Pick two columns

A mascot that grows as you learn

Finish the Beginner exercises and your mascot hatches; finish Advanced and it becomes a Legend. It shows on your profile, beside your forum posts and on the Top of the Stack board.

Posh the PowerShell gorilla

  1. Posh the PowerShell gorilla: NappingNapping
  2. Posh the PowerShell gorilla: WakingWaking
  3. Posh the PowerShell gorilla: BabyBaby
  4. Posh the PowerShell gorilla: JuniorJunior
  5. Posh the PowerShell gorilla: SilverbackSilverback
  6. Posh the PowerShell gorilla: LegendLegend

Bash the Bash kaiju

  1. Bash the Bash kaiju: EggEgg
  2. Bash the Bash kaiju: CrackingCracking
  3. Bash the Bash kaiju: HatchlingHatchling
  4. Bash the Bash kaiju: JuniorJunior
  5. Bash the Bash kaiju: SeniorSenior
  6. Bash the Bash kaiju: LegendLegend