Skip to main content

Linux Buddy - Interactive Linux Command Tutorial with Hands-On Labs

Master Linux commands through interactive terminal lessons with auto-generated practice labs. Featuring 100+ commands with ethical hacking context, instant terminal spawning, zero dependencies, and beginner-friendly explanations.

Python License: GPL-3.0 PyPI GitHub

Table of Contents

Features

  • ✨ 100+ Command Lessons - Covers file operations, networking, text processing, system admin, and security tools
  • 🎯 Auto-Generated Labs - Creates practice environments with dummy files for safe experimentation
  • ⚡ New Terminal Tabs - Launches lessons in separate gnome-terminal tabs with formatted content
  • 📚 Ethical Hacking Context - Every command includes cybersecurity significance and real-world use cases
  • 🔒 Zero Dependencies - Uses only Python standard library (os, sys, shutil, subprocess, textwrap, math)
  • 🎨 4-Column Menu - Clean paginated interface displaying 100 commands per page
  • 🏗️ Modular Architecture - Professional SOLID-principle codebase with src/data, src/core, src/ui structure
  • 🔧 Beginner-Friendly - Clear explanations, usage examples, and step-by-step practice instructions

Installation

Quick Install (Recommended)

Install directly from PyPI using pip:

pip install linux-buddy

Quick Install

git clone https://github.com/jo4dan/linux-buddy.git
cd linux-buddy
python main.py

Prerequisites

  • Python 3.6 or higher
  • Linux/Unix system (tested on Ubuntu, Debian, Fedora, Arch)
  • gnome-terminal (recommended; fallback to bash if unavailable)
  • No external dependencies required

Usage

Run the Tool

python main.py

Navigation

  • Enter number - Launch lesson for that command
  • n - Next page
  • p - Previous page
  • q - Quit
  • Ctrl+C - Exit anytime

Workflow

  1. Browse 100+ commands in the paginated menu
  2. Select a command by entering its number
  3. New terminal tab opens with lesson content
  4. Practice in auto-generated lab directory
  5. Type exit to close tab and return to menu
  6. Continue learning or quit with q

Project Architecture

linux-buddy/
├── main.py # Entry point
├── README.md
├── LICENSE
├── requirements.txt # Empty (no dependencies)
├── src/
│ ├── data/
│ │ └── lessons.py # Command data & lessons
│ ├── core/
│ │ ├── lab_manager.py # Lab environment setup
│ │ └── terminal.py # Terminal spawning
│ ├── ui/
│ │ ├── menu.py # Menu display
│ │ └── formatting.py # Text formatting
│ └── utils/
│ └── helpers.py # Utility functions
├── tests/
│ ├── test_lessons.py
│ └── test_lab_manager.py
└── labs/ # Runtime directories

Troubleshooting

gnome-terminal not found: Install via sudo apt install gnome-terminal or use fallback bash mode

Permission denied: Check /tmp permissions or modify lab_dir to ./labs/ in terminal.py

Python version error: Verify Python 3.6+ with python --version

Menu display issues: Increase terminal width (minimum 80 characters) or open the tool in full screen

Lab files not created: Check write permissions in lab directory

File issues at GitHub Issues

Contributing

Fork, branch, and PR! Contributions welcome for:

  • New command lessons
  • Bug fixes
  • Documentation improvements
  • Terminal emulator support
  • Unit tests
git checkout -b feature/NewCommand
git commit -m 'Add iptables lesson'
git push origin feature/NewCommand

License

GPL-3.0 License - see LICENSE


Built by @jo4dan | Star ⭐ if useful! | Questions: jordannissi7@gmail.com

SEO Keywords: Linux command tutorial, ethical hacking training, interactive terminal learning, command-line practice labs, cybersecurity Linux commands, DevOps training, penetration testing reference, beginner Linux tutorial

Metadata

Release files for linux-buddy 1.0.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for linux-buddy 1.0.2
File Size Uploaded
linux_buddy-1.0.2.tar.gz 23.4 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for linux-buddy 1.0.2
File Interpreter ABI Platform
linux_buddy-1.0.2-py3-none-any.whl Python 3 none any Details

Total release size: 47.9 kB

Release files / linux_buddy-1.0.2.tar.gz

Download URL linux_buddy-1.0.2.tar.gz
Size 23.4 kB
Tags Source
SHA-256 checksum
How to use checksums
d612bfb5d8e975b384d92beda01e2ed5783c1de3e0d7d90ad3c17c9deaeb228d
BLAKE2b-256 checksum
How to use checksums
82618c6b72b5effd610d91362d63642fb38feab9da2a3cf016c4db3882ec9f66
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.13.7

Release files / linux_buddy-1.0.2-py3-none-any.whl

Download URL linux_buddy-1.0.2-py3-none-any.whl
Size 24.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
987114a3372abeedd4b78c4f3005f72a707fcfed03f9b00b981f2713abbb8f08
BLAKE2b-256 checksum
How to use checksums
f7f0cdcd759532ecdbb813331730184a78b5a5d9389205e370a33ef1c67a34c7
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.13.7

Release history Release notifications | RSS feed

This release

1.0.2 This release

2 release files

1.0.1

2 release files

1.0.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page