ALL CMD LINE

Explore the command line by topic

A structured map of learning paths and practical areas — from first commands to high-skill workflows and playful terminal challenges.

6 curated categories

Shell scripting

Build reusable scripts, automate tasks, and learn bash patterns that scale from quick fixes to full pipelines.

Terminal productivity

Aliases, prompts, multiplexers, and workflow tweaks that save time and keep your shell focused.

Command-line games

Playful terminals, classic roguelikes, and typing games that make learning fun and memorable.

Linux & Unix workflows

Navigate filesystems, manage permissions, and chain commands into reliable daily routines.

Beginner guides

Short, approachable walkthroughs that explain the why behind each command and pattern.

Advanced tips

Performance tuning, dotfile strategies, and tricky utilities for confident power users.

Shell Scripting Guides

Build reliable Bash workflows from first script to real automation

These guides help you move beyond one-liners and into repeatable shell programs. Each topic is written for beginners who want clarity, while still offering patterns and gotchas that seasoned users appreciate.

Bash Basics: variables, quoting, and I/O

Understand how the shell parses your commands. We cover variables, positional parameters, the difference between single vs double quotes, and how to pipe data between commands without losing structure.

  • • Safe variable expansion, command substitution, and default values
  • • Input/output redirection patterns you can reuse
  • • Using set -euo pipefail without surprises

Loops & Conditionals that scale

Write logic that stays readable as scripts grow. Learn when to use for, while, and case, plus how to test files, strings, and commands safely.

Flow Control Checklist

Guard clauses, exit codes, and predictable branching patterns.

Iteration Tips

Handle spaces in filenames, arrays, and globbing safely.

Practical scripting patterns

Real-world scripts are built from small, dependable pieces. Explore templates for argument parsing, logging, retries, and working with temporary files.

  • Composable functions and shared libraries
  • Readable help text with usage examples
  • Defensive defaults for cron and CI jobs

Automation ideas you can ship today

Start small and automate one task at a time. These guides walk through building scripts that handle backups, file cleanup, environment bootstrap, and reporting without fragile hacks.

Project scaffolding: create folders, configs, and git init in one command
Daily status scripts: summarize logs, disk usage, and service health
Batch processing: convert, rename, or archive files with audit trails

File processing & data pipelines

Learn how to chain awk, sed, grep, and cut into maintainable data flows. We focus on readability and performance for large files.

Quick wins

Build pipelines that are self-documenting, predictable, and easy to test.

Command-line programming workflow

Move from a quick terminal experiment to a reusable script: outline the steps, prototype with pipes, add guardrails, and document expected inputs/outputs. Each guide includes a checklist to help you ship with confidence.

Design & test on small samples first
Log what changes and capture exit codes
Package into reusable scripts or functions
~/all-cmd-line live

$ learn shell scripting

interactive guides, practical exercises, and battle-tested patterns

$ explore tools & tips

from grep to git, speed up daily workflows

$ play command-line games

practice skills in a playful, low-stakes way

Beginner-friendly, trusted by pros

Playful learning Command line games

Explore the terminal through play, puzzles, and retro adventures

Command-line games are more than nostalgia — they teach navigation, pattern recognition, and shell fluency in a way that feels natural. From classic roguelikes to CLI chess engines, every session reinforces muscle memory for real workflows.

Classic terminal games

Play curses-based staples like Nethack, Moon Buggy, or Bastet to practice navigation keys and terminal focus.

Retro text adventures

Story-driven worlds teach precise commands and reading skills. Try interactive fiction engines and learn how input parsing maps to real CLI argument patterns.

Fun CLI experiments

Discover ASCII art generators, terminal visualizers, and CPU-driven toys that show how pipes, streams, and filters connect together.

Practice by building

Clone a tiny game in Bash or Python. Writing a guessing game or a maze crawler is a fast path to learning loops, input, and error handling.

Featured

Text Adventure Starter Kit

Retro

A curated path for beginners: interpreter picks, a command glossary, and a walkthrough for writing your first branching storyline.

Retro green-on-black terminal window showing a text adventure scene with a character inventory, a forest prompt, and a blinking cursor.
Dark terminal screen displaying a colorful ASCII puzzle grid with coordinates and a score panel on the right.

Puzzle nights

Short challenges you can finish in 10 minutes: pipe the output, parse the hints, solve the maze.

CLI Arena

48

mini challenges

Weekly rotations

Rotating set of bite-sized games that reward experimentation with flags and shortcuts.

Recommended starting path

  1. 01Install a roguelike and learn navigation keys.
  2. 02Try a text adventure and map inputs to options.
  3. 03Build a mini game to practice loops and input.

Tools & Tips

Command-line utilities that keep you fast, focused, and fearless

Build a modern CLI workflow with the tools and habits used by power users. This section blends core utilities, keyboard efficiency, and terminal customization ideas you can apply immediately.

Quick start checklist

  • Learn a reliable pager: less -R for color-friendly output.
  • Adopt fuzzy search: fzf for files, history, and git.
  • Use a shell prompt theme to show git, exit status, and Python venv.
  • Back up dotfiles so your terminal setup follows you.

Core utilities

Daily drivers for finding, filtering, and inspecting data.

  • ripgrep (rg) — fast recursive search with regex support.
  • bat — syntax-highlighted cat with paging.
  • fd — intuitive find replacement.
  • jq — JSON slicing for APIs and logs.

Text processing chain

Compose tiny tools to solve large problems.

  • cut + sort + uniq — simple data summaries.
  • awk — field-based transforms and reports.
  • sed — stream edits for pipelines.
  • xargs — turn stdin into commands.

Workflow boosters

Small habits that unlock big productivity.

  • aliases for repetitive tasks (deploy, clean, backup).
  • history searchCtrl-r or fzf history.
  • tmux — persistent sessions and panes.
  • direnv — auto-load project env vars.

Navigation & movement shortcuts

Get around faster without retyping long paths.

Jump to paths

Use pushd / popd stacks to move between directories.

Path expansion

~, -, and tab completion save keystrokes instantly.

Directory bookmarks

Try zoxide to jump to frequent locations.

Command recall

Use !!, !$, and history search to reuse work.

Sample toolbox pipeline

A practical example for inspecting a log file.

rg "error" app.log | awk '{print $1,$5}' | sort | uniq -c | sort -nr | head
        

Search for errors, extract columns, count occurrences, and show the top offenders.

Customization ideas

Make your terminal a place you want to work.

Explore scripting guides

Prompt essentials

Show branch name, exit status, and time to add context at a glance.

Color themes

Choose a dark theme with consistent syntax colors for readability.

CLI UX tweaks

Enable auto-suggestions, fish-style completions, and multi-cursor editing.

FAQ Getting started

Your command-line questions, answered clearly.

We cover the fundamentals without the fluff — from safe habits to confident scripting. If you’re new, start with the basics. If you’re advanced, skip ahead and sharpen workflows.

What is the command line, and why should I learn it? +

The command line is a text interface for interacting with your computer. It’s powerful because it’s fast, scriptable, and works the same across many systems. Learning it unlocks automation, remote work, and tooling that rarely exists in graphical apps.

Is it safe to experiment in a terminal? +

Yes — as long as you know where you are and what a command will do. Start in your home directory, use non-destructive commands (`ls`, `cat`, `pwd`), and avoid running anything you don’t understand. When in doubt, test in a temporary folder.

How should I learn shell scripting without getting overwhelmed? +

Build scripts around tiny, real problems: rename files, clean logs, or batch convert images. Learn basic variables, conditionals, and loops, then revisit tools like `grep`, `sed`, and `awk` as your needs grow.

What’s the difference between Bash, Zsh, and Fish? +

Bash is the most common default shell and the most compatible for scripts. Zsh adds better defaults and plugins, while Fish focuses on usability and auto-suggestions but isn’t always script-compatible. Learn Bash first, then explore.

Which CLI tools are must-haves for productivity? +

Start with `git`, `curl`, and `ssh`. Then add `fzf` for fuzzy search, `ripgrep` for fast text search, `bat` for readable file viewing, and `htop` for system monitoring. We curate more in the Tools & Tips section.

How do I build a learning path from beginner to advanced? +

Start with navigation (`ls`, `cd`, `pwd`), file operations, and permissions. Move to pipes and text processing, then learn scripting basics. Finally, automate workflows, use version control, and explore system administration commands.