Interactive Linux command tutorial with hands-on terminal labs for beginners and ethical hackers
Project description
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.
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
- Browse 100+ commands in the paginated menu
- Select a command by entering its number
- New terminal tab opens with lesson content
- Practice in auto-generated lab directory
- Type
exitto close tab and return to menu - 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
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file linux_buddy-1.0.2.tar.gz.
File metadata
- Download URL: linux_buddy-1.0.2.tar.gz
- Upload date:
- Size: 23.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d612bfb5d8e975b384d92beda01e2ed5783c1de3e0d7d90ad3c17c9deaeb228d
|
|
| MD5 |
69e8f9a970b9f2ccfc1c6bbec590f3ac
|
|
| BLAKE2b-256 |
82618c6b72b5effd610d91362d63642fb38feab9da2a3cf016c4db3882ec9f66
|
File details
Details for the file linux_buddy-1.0.2-py3-none-any.whl.
File metadata
- Download URL: linux_buddy-1.0.2-py3-none-any.whl
- Upload date:
- Size: 24.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
987114a3372abeedd4b78c4f3005f72a707fcfed03f9b00b981f2713abbb8f08
|
|
| MD5 |
e793dd57ee82713eddbf767de8a14bd5
|
|
| BLAKE2b-256 |
f7f0cdcd759532ecdbb813331730184a78b5a5d9389205e370a33ef1c67a34c7
|