A Linux command-line tips and tricks learning system. Display curated educational content on shell initialization, with an optional quiz mode to test your knowledge.
- 225 curated tips across 10 categories (bash, text processing, networking, git, etc.)
- Quiz mode - 25% chance to show an interactive multiple choice quiz instead of a tip
- Spaced repetition - quizzes auto-archive after 3 correct answers
- Session toggle - temporarily disable tips with auto-revert
- Markdown rendering - beautiful output via
bat
# Arch Linux
pacman -S sqlite bat
# Ubuntu/Debian
apt install sqlite3 batgit clone https://github.com/rickhallett/scriptease.git
cd scriptease
# Initialize database and load curriculum
bin/scriptease-manage init
cd lib && python3 load_curriculum.py && cd ..
# Add to shell initialization
echo 'path/to/scriptease/bin/scriptease' >> ~/.bashrc
# or
echo 'path/to/scriptease/bin/scriptease' >> ~/.zshrc# Display random tip (25% chance of quiz)
scriptease
# Force tip or quiz mode
scriptease --tip
scriptease --quiz
# Filter tips
scriptease -c bash-basics # by category
scriptease -d 3 # by difficulty (1-5)
scriptease -i 101 # by specific ID
# List categories
scriptease -l
# Temporarily disable tips (auto-reverts in 15 min)
nostp --off
nostp --on
nostp --status| Category | Tips | Description |
|---|---|---|
| bash-basics | 19 | Variables, expansion, functions, debugging |
| text-processing | 29 | grep, awk, sed, tr, jq, perl |
| process-management | 19 | Jobs, signals, monitoring, strace |
| file-operations | 24 | find, ln, chmod, rsync, compression |
| pipes-redirection | 19 | I/O redirection, pipes, process substitution |
| networking | 24 | curl, ss, netstat, ssh, iptables |
| python-oneliners | 19 | CLI tricks, json.tool, base64, regex |
| system-admin | 29 | systemctl, journalctl, users, cron |
| git-fu | 24 | Log, stash, bisect, rebase, cherry-pick |
| arch-specific | 19 | pacman, yay, AUR, systemd-boot |
Quizzes test concepts from the curriculum with 4 multiple choice options:
- Options are scrambled each time to prevent memorization
- Correct answers increment a counter
- After 3 correct answers, the quiz is archived (mastered)
- Progress is preserved across database reloads
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
[QUIZ] bash-basics - Brace Expansion
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
What does `mkdir -p project/{src,docs}` create?
A) One directory named project/{src,docs}
B) Two directories: project/src and project/docs
C) An error because braces are invalid
D) Three directories: project, src, and docs
Your answer (A/B/C/D): B
✓ Correct!
Progress: 1/3 correct answers
# Database commands
bin/scriptease-manage init # Initialize empty database
bin/scriptease-manage seed # Load sample data
bin/scriptease-manage stats # Show statistics
bin/scriptease-manage list # List all tips
# Reload curriculum (preserves quiz progress)
cd lib && python3 load_curriculum.pyscriptease/
├── bin/
│ ├── scriptease # Main tip/quiz display CLI
│ ├── scriptease-manage # Database management CLI
│ └── nostp # Session toggle utility
├── lib/
│ ├── schema.sql # Database schema
│ ├── curriculum_loader.py
│ ├── tips_part2.py
│ ├── tips_part3.py
│ ├── tips_part4.py
│ ├── tips_process.py
│ ├── quizzes.py # Quiz definitions
│ └── load_curriculum.py # Bulk loader
├── db/
│ └── tips.db # SQLite database (generated)
└── curriculum.md # Curriculum index
MIT