# 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.
[](https://www.python.org/downloads/)
[](https://www.gnu.org/licenses/gpl-3.0.en.html)
[](https://pypi.org/project/linux-buddy/)
[](https://github.com/jo4dan/linux-buddy)
## Table of Contents
- [Features](#features)
- [Installation](#installation)
- [Usage](#usage)
- [Examples](#examples)
- [Project Architecture](#project-architecture)
- [Troubleshooting](#troubleshooting)
- [Contributing](#contributing)
- [License](#license)
## 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:
```bash
pip install linux-buddy
```
### Quick Install
```bash
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
```bash
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
```bash
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](https://github.com/jo4dan/linux-buddy/issues)
## Contributing
Fork, branch, and PR! Contributions welcome for:
- New command lessons
- Bug fixes
- Documentation improvements
- Terminal emulator support
- Unit tests
```bash
git checkout -b feature/NewCommand
git commit -m 'Add iptables lesson'
git push origin feature/NewCommand
```
## License
GPL-3.0 License - see [LICENSE](https://www.gnu.org/licenses/gpl-3.0.en.html)
---
**Built by [@jo4dan](https://github.com/jo4dan)** | Star ⭐ if useful! | Questions: [jordannissi7@gmail.com](mailto: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
Raw data
{
"_id": null,
"home_page": null,
"name": "linux-buddy",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.6",
"maintainer_email": "jo4dan <jordannissi7@gmail.com>",
"keywords": "linux, tutorial, command-line, cli, education, ethical-hacking, cybersecurity, devops, terminal, learning-tool, beginner, practice-labs",
"author": null,
"author_email": "jo4dan <jordannissi7@gmail.com>",
"download_url": "https://files.pythonhosted.org/packages/82/61/8c6b72b5effd610d91362d63642fb38feab9da2a3cf016c4db3882ec9f66/linux_buddy-1.0.2.tar.gz",
"platform": null,
"description": "# Linux Buddy - Interactive Linux Command Tutorial with Hands-On Labs\n\nMaster 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.\n\n[](https://www.python.org/downloads/)\n[](https://www.gnu.org/licenses/gpl-3.0.en.html)\n[](https://pypi.org/project/linux-buddy/)\n[](https://github.com/jo4dan/linux-buddy)\n\n## Table of Contents\n- [Features](#features)\n- [Installation](#installation)\n- [Usage](#usage)\n- [Examples](#examples)\n- [Project Architecture](#project-architecture)\n- [Troubleshooting](#troubleshooting)\n- [Contributing](#contributing)\n- [License](#license)\n\n## Features\n\n- \u2728 **100+ Command Lessons** - Covers file operations, networking, text processing, system admin, and security tools\n- \ud83c\udfaf **Auto-Generated Labs** - Creates practice environments with dummy files for safe experimentation\n- \u26a1 **New Terminal Tabs** - Launches lessons in separate gnome-terminal tabs with formatted content\n- \ud83d\udcda **Ethical Hacking Context** - Every command includes cybersecurity significance and real-world use cases\n- \ud83d\udd12 **Zero Dependencies** - Uses only Python standard library (os, sys, shutil, subprocess, textwrap, math)\n- \ud83c\udfa8 **4-Column Menu** - Clean paginated interface displaying 100 commands per page\n- \ud83c\udfd7\ufe0f **Modular Architecture** - Professional SOLID-principle codebase with src/data, src/core, src/ui structure\n- \ud83d\udd27 **Beginner-Friendly** - Clear explanations, usage examples, and step-by-step practice instructions\n\n## Installation\n\n### Quick Install (Recommended)\n\nInstall directly from PyPI using pip:\n\n```bash\npip install linux-buddy\n```\n\n### Quick Install\n\n\n```bash\ngit clone https://github.com/jo4dan/linux-buddy.git\ncd linux-buddy\npython main.py\n```\n\n### Prerequisites\n\n- Python 3.6 or higher\n- Linux/Unix system (tested on Ubuntu, Debian, Fedora, Arch)\n- gnome-terminal (recommended; fallback to bash if unavailable)\n- No external dependencies required\n\n## Usage\n\n### Run the Tool\n\n```bash\npython main.py\n```\n\n\n### Navigation\n\n- **Enter number** - Launch lesson for that command\n- **n** - Next page\n- **p** - Previous page\n- **q** - Quit\n- **Ctrl+C** - Exit anytime\n\n### Workflow\n\n1. Browse 100+ commands in the paginated menu\n2. Select a command by entering its number\n3. New terminal tab opens with lesson content\n4. Practice in auto-generated lab directory\n5. Type `exit` to close tab and return to menu\n6. Continue learning or quit with `q`\n\n\n## Project Architecture\n\n```bash\nlinux-buddy/\n\u251c\u2500\u2500 main.py # Entry point\n\u251c\u2500\u2500 README.md\n\u251c\u2500\u2500 LICENSE\n\u251c\u2500\u2500 requirements.txt # Empty (no dependencies)\n\u251c\u2500\u2500 src/\n\u2502 \u251c\u2500\u2500 data/\n\u2502 \u2502 \u2514\u2500\u2500 lessons.py # Command data & lessons\n\u2502 \u251c\u2500\u2500 core/\n\u2502 \u2502 \u251c\u2500\u2500 lab_manager.py # Lab environment setup\n\u2502 \u2502 \u2514\u2500\u2500 terminal.py # Terminal spawning\n\u2502 \u251c\u2500\u2500 ui/\n\u2502 \u2502 \u251c\u2500\u2500 menu.py # Menu display\n\u2502 \u2502 \u2514\u2500\u2500 formatting.py # Text formatting\n\u2502 \u2514\u2500\u2500 utils/\n\u2502 \u2514\u2500\u2500 helpers.py # Utility functions\n\u251c\u2500\u2500 tests/\n\u2502 \u251c\u2500\u2500 test_lessons.py\n\u2502 \u2514\u2500\u2500 test_lab_manager.py\n\u2514\u2500\u2500 labs/ # Runtime directories\n```\n\n\n## Troubleshooting\n\n**gnome-terminal not found**: Install via `sudo apt install gnome-terminal` or use fallback bash mode\n\n**Permission denied**: Check /tmp permissions or modify lab_dir to ./labs/ in terminal.py\n\n**Python version error**: Verify Python 3.6+ with `python --version`\n\n**Menu display issues**: Increase terminal width (minimum 80 characters) or open the tool in full screen\n\n**Lab files not created**: Check write permissions in lab directory\n\nFile issues at [GitHub Issues](https://github.com/jo4dan/linux-buddy/issues)\n\n## Contributing\n\nFork, branch, and PR! Contributions welcome for:\n\n- New command lessons\n- Bug fixes\n- Documentation improvements\n- Terminal emulator support\n- Unit tests\n\n```bash\ngit checkout -b feature/NewCommand\ngit commit -m 'Add iptables lesson'\ngit push origin feature/NewCommand\n```\n\n\n## License\n\nGPL-3.0 License - see [LICENSE](https://www.gnu.org/licenses/gpl-3.0.en.html)\n\n---\n\n**Built by [@jo4dan](https://github.com/jo4dan)** | Star \u2b50 if useful! | Questions: [jordannissi7@gmail.com](mailto:jordannissi7@gmail.com)\n\n**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\n\n\n\n",
"bugtrack_url": null,
"license": "GPL-3.0-or-later",
"summary": "Interactive Linux command tutorial with hands-on terminal labs for beginners and ethical hackers",
"version": "1.0.2",
"project_urls": {
"Changelog": "https://github.com/jo4dan/linux-buddy/releases",
"Homepage": "https://github.com/jo4dan/linux-buddy",
"Issues": "https://github.com/jo4dan/linux-buddy/issues",
"Repository": "https://github.com/jo4dan/linux-buddy"
},
"split_keywords": [
"linux",
" tutorial",
" command-line",
" cli",
" education",
" ethical-hacking",
" cybersecurity",
" devops",
" terminal",
" learning-tool",
" beginner",
" practice-labs"
],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "f7f0cdcd759532ecdbb813331730184a78b5a5d9389205e370a33ef1c67a34c7",
"md5": "e793dd57ee82713eddbf767de8a14bd5",
"sha256": "987114a3372abeedd4b78c4f3005f72a707fcfed03f9b00b981f2713abbb8f08"
},
"downloads": -1,
"filename": "linux_buddy-1.0.2-py3-none-any.whl",
"has_sig": false,
"md5_digest": "e793dd57ee82713eddbf767de8a14bd5",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.6",
"size": 24460,
"upload_time": "2025-10-11T19:06:29",
"upload_time_iso_8601": "2025-10-11T19:06:29.124301Z",
"url": "https://files.pythonhosted.org/packages/f7/f0/cdcd759532ecdbb813331730184a78b5a5d9389205e370a33ef1c67a34c7/linux_buddy-1.0.2-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "82618c6b72b5effd610d91362d63642fb38feab9da2a3cf016c4db3882ec9f66",
"md5": "69e8f9a970b9f2ccfc1c6bbec590f3ac",
"sha256": "d612bfb5d8e975b384d92beda01e2ed5783c1de3e0d7d90ad3c17c9deaeb228d"
},
"downloads": -1,
"filename": "linux_buddy-1.0.2.tar.gz",
"has_sig": false,
"md5_digest": "69e8f9a970b9f2ccfc1c6bbec590f3ac",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.6",
"size": 23448,
"upload_time": "2025-10-11T19:06:30",
"upload_time_iso_8601": "2025-10-11T19:06:30.738688Z",
"url": "https://files.pythonhosted.org/packages/82/61/8c6b72b5effd610d91362d63642fb38feab9da2a3cf016c4db3882ec9f66/linux_buddy-1.0.2.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-10-11 19:06:30",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "jo4dan",
"github_project": "linux-buddy",
"github_not_found": true,
"lcname": "linux-buddy"
}