Linux Philosophy

Unix/Linux design principles for CLI tools and system architecture.

majiayu000 Updated 567 repo stars

File contents

Unix/Linux Philosophy

Core Principles

  1. Do one thing well - Each program/function should have a single purpose
  2. Compose with others - Design for pipelines and composition
  3. Text streams - Use text as universal interface
  4. Small, sharp tools - Prefer focused tools over monolithic solutions
  5. Fail fast, fail loudly - Exit on error with clear messages

Design Guidelines

  • Prefer explicit over implicit behavior
  • Make default behavior safe; require flags for dangerous operations
  • Support stdin/stdout for composition
  • Use exit codes meaningfully (0=success, non-zero=error)
  • Write to stderr for diagnostics, stdout for output

Checklist

  • Single responsibility per module/function
  • Composable via standard I/O
  • Clear error messages to stderr
  • Meaningful exit codes
  • No hidden side effects

majiayu000/claude-skill-registry-data/tree/main/data/linux-philosophy commit 4b528250f6

Frequently asked questions

npx skillmds@latest add majiayu000/linux-philosophy