linux-buddy


Namelinux-buddy JSON
Version 1.0.2 PyPI version JSON
download
home_pageNone
SummaryInteractive Linux command tutorial with hands-on terminal labs for beginners and ethical hackers
upload_time2025-10-11 19:06:30
maintainerNone
docs_urlNone
authorNone
requires_python>=3.6
licenseGPL-3.0-or-later
keywords linux tutorial command-line cli education ethical-hacking cybersecurity devops terminal learning-tool beginner practice-labs
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # 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](https://img.shields.io/badge/python-3.13+-yellow.svg)](https://www.python.org/downloads/)
[![License: GPL-3.0](https://img.shields.io/badge/License-GPL%203.0-red.svg)](https://www.gnu.org/licenses/gpl-3.0.en.html)
[![PyPI](https://img.shields.io/badge/pip-install%20linux--buddy-brightgreen)](https://pypi.org/project/linux-buddy/)
[![GitHub](https://img.shields.io/github/stars/jo4dan/linux-buddy?style=social)](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[![Python](https://img.shields.io/badge/python-3.13+-yellow.svg)](https://www.python.org/downloads/)\n[![License: GPL-3.0](https://img.shields.io/badge/License-GPL%203.0-red.svg)](https://www.gnu.org/licenses/gpl-3.0.en.html)\n[![PyPI](https://img.shields.io/badge/pip-install%20linux--buddy-brightgreen)](https://pypi.org/project/linux-buddy/)\n[![GitHub](https://img.shields.io/github/stars/jo4dan/linux-buddy?style=social)](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"
}
        
Elapsed time: 1.39330s