Skip to content

Linux command-line tips and quiz system for shell initialization

Notifications You must be signed in to change notification settings

rickhallett/scriptease

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ScriptEase

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.

Features

  • 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

Installation

Dependencies

# Arch Linux
pacman -S sqlite bat

# Ubuntu/Debian
apt install sqlite3 bat

Setup

git 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

Usage

# 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

Categories

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

Quiz System

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

Management

# 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.py

Project Structure

scriptease/
├── 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

License

MIT

About

Linux command-line tips and quiz system for shell initialization

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •