cli-tutor 0.4.0

Interactive terminal app for learning Unix command-line tools
Documentation

cli-tutor

crates.io License: MIT

Learn Unix command-line tools by typing real commands — not reading about them.

Pick a tool, read the intro, try the examples, then solve exercises in a live shell. Each command you type is actually executed and checked against the expected output.

cli-tutor demo


Install

Homebrew (macOS/Linux)

brew install ShadabGhazali/cli-tutor/cli-tutor

Cargo

cargo install cli-tutor

Pre-built binary (no Rust required)

  1. Go to the Releases page and download the archive for your platform:

    • cli-tutor-aarch64-apple-darwin.tar.gz — macOS Apple Silicon (M1/M2/M3)
    • cli-tutor-x86_64-apple-darwin.tar.gz — macOS Intel
    • cli-tutor-x86_64-unknown-linux-musl.tar.gz — Linux x86_64
    • cli-tutor-x86_64-pc-windows-msvc.zip — Windows x86_64
  2. Extract and run:

# macOS / Linux
tar xzf cli-tutor-*.tar.gz
chmod +x cli-tutor
./cli-tutor

# macOS — if blocked by Gatekeeper, remove the quarantine flag first
xattr -d com.apple.quarantine cli-tutor
./cli-tutor
# Windows — extract the zip, then run in a terminal
.\cli-tutor.exe
# Homebrew
brew upgrade ShadabGhazali/cli-tutor/cli-tutor

# Cargo
cargo install cli-tutor --force
cargo build --release
./target/release/cli-tutor

Requires a terminal at least 80×24.


Modules

Sorted from most-used daily foundations through dev tools and into thematic real-world workflows.

Foundations — navigate and view

Tool What it does Exercises
ls List directory contents, spot hidden files, sort by time or size 6
cat Display and concatenate files — the start of every pipeline 5
head Preview the first N lines — check CSV headers, sample data 5
tail View the last N lines, skip headers, monitor recent log entries 6

Search and filter

Tool What it does Exercises
grep Search files for patterns using regular expressions 12
find Locate files by name, type, size, age, permissions 9

Transform and process

Tool What it does Exercises
cut Extract columns from delimited text 5
sort Sort lines — alphabetically, numerically, by field 6
uniq Remove or count duplicate adjacent lines 4
wc Count lines, words, and bytes 6
tr Translate or delete individual characters 4
sed Stream editor — substitute, delete, transform lines 10
awk Field-based processing language — extract, filter, aggregate 10

Combine and compare

Tool What it does Exercises
paste Merge lines from multiple files side by side 4
tee Fork a pipeline — write to a file AND pass through to stdout 4
diff Compare two files and show what changed 5

Archive, permissions, and utilities

Tool What it does Exercises
xargs Build and run commands from standard input 6
tar Create, list, and extract archive files 5
chmod Change file permissions 6
bc Arbitrary-precision arithmetic — percentages, averages in scripts 4

Dev tools

Tool What it does Exercises
git Version control — init, commit, branch, stash, diff 10
jq Query and transform JSON from the command line 8
make Automate build steps and tasks with Makefiles 5

Real-world workflows

These modules teach you to combine tools in pipelines to solve complete engineering tasks — not just individual command syntax.

Module What it covers Exercises
log-processing Analyze Apache/app logs: count requests, find errors, top-N IPs, error rates 8
text-processing Transform CSV data, extract fields, calculate stats, process config files 8

161 exercises — beginner to advanced. Progress is saved automatically.


Keys

Browsing (Intro / Examples views)

Key Action
Switch module
Tab Cycle views: Intro → Examples → Exercise → Free Practice
PgUp PgDn Scroll content
/ Fuzzy search modules
d Cycle difficulty filter (All → Beginner → Intermediate → Advanced)
P Progress summary
q Quit

Exercise view

Key Action
Enter Submit command
Browse command history
PgUp PgDn Scroll output
Move cursor
Ctrl+← Ctrl+→ Jump by word
Ctrl+N Ctrl+P Next / previous exercise
Ctrl+T Reveal next hint
Ctrl+S Show / hide solution
Ctrl+F Toggle file viewer
Ctrl+R Reset exercise
Ctrl+L Clear output
Esc Back to browse

Free Practice view

Key Action
Enter Run command
Browse command history
PgUp PgDn Scroll output
Ctrl+L Clear output
Esc Back to browse

Anywhere

Key Action
Shift+P Toggle progress overlay
? Toggle help
Ctrl+C Quit

CLI flags

cli-tutor --version
cli-tutor --no-color
cli-tutor --completions bash | zsh | fish
# bash
cli-tutor --completions bash >> ~/.bash_completion

# zsh
cli-tutor --completions zsh > ~/.zsh/completions/_cli-tutor

# fish
cli-tutor --completions fish > ~/.config/fish/completions/cli-tutor.fish

Config

Optional config at ~/.config/cli-tutor/config.toml (respects $XDG_CONFIG_HOME):

no_color        = false   # disable all colour styling
timed_challenge = false   # show solve time and personal best on correct answers
skip_completed  = false   # auto-skip already-solved exercises during navigation
default_module  = "grep"  # open on this module instead of the first in the list

A missing or corrupt config file is silently ignored — defaults apply.


Stack

Rust + Ratatui + Crossterm. Single binary, no runtime dependencies.