cmdctl – Твоята лична библиотека от команди

cmdctl - Твоята лична библиотека от команди

Проблемът, който всички имаме

Колко пъти си си мислил: „Използвах тази команда миналия месец… но сега не мога да я си спомня?“

Или още по-лошо – знаеш, че има перфектна команда за това, което искаш да направиш, но трябва да ровиш из history, старите бележки или да гуглиш отново.

cmdctl решава този проблем веднъж завинаги.

🎯 Какво е cmdctl?

cmdctl е интерактивен мениджър за полезни команди с красив, модерен интерфейс. Това е твоята лична библиотека от команди – добре организирана, лесна за търсене и винаги под ръка.

✨ Защо ти трябва?

За системни администратори

Имаш десетки сървъри, всеки със специфични команди за backup, рестарт на услуги, проверки на логове. Вместо да търсиш документация всеки път, просто отваряш cmdctl и намираш точната команда за 2 секунди.

За DevOps инженери

Docker, Kubernetes, CI/CD pipelines – командите са сложни и с много параметри. Запазваш ги веднъж в cmdctl с ясно описание и после винаги ги имаш готови за копиране.

За мрежови специалисти

MikroTik, Cisco, firewall правила – всяка команда е важна и не може да бъде сгрешена. cmdctl ти гарантира, че винаги ще използваш правилния синтаксис.

За разработчици

Git команди, database migrations, deployment скриптове – всичко на едно място, организирано и достъпно.

🚀 Основни функции

📋 Преглед на всички команди

Виждаш цялата си колекция от команди в красиво форматиран списък. Всяка команда показва:

  • Кратко име за лесна идентификация
  • Описание какво прави
  • Самата команда

➕ Добавяне на нови команди

Интуитивен диалог те води през процеса:

  1. Даваш кратко име (напр: mikrotik-backup)
  2. Пишеш описание (Създаване на пълен бекъп на MikroTik рутер)
  3. Въвеждаш самата команда (/system backup save name=full_backup)

Готово! Командата е запазена завинаги.

🔍 Преглед на конкретна команда

Търсиш по име и получаваш детайлна информация за командата. Има опция да я копираш директно в клипборда с едно натискане.

🔎 Мощно търсене

Търси по име, описание или текст от самата команда. Например:

  • Пишеш „docker“ → намираш всички Docker команди
  • Пишеш „backup“ → намираш всички команди за бекъп
  • Пишеш „ssh“ → намираш всички SSH свързани команди

⚡ FZF интерактивен преглед

Ако имаш инсталиран fzf, получаваш невероятно бързо fuzzy търсене с live филтриране. Пишеш няколко букви и веднага виждаш резултатите.

✏️ Директно редактиране

За напреднали потребители – отваряш файла директно в любимия си редактор (nano, vim, etc.) за бързи промени.

💡 Реални примери за употреба

Сценарий 1: Системен администратор

Имаш 15 различни SSH сървъра с различни keys и потребители.
Вместо да помниш всички комбинации или да ги търсиш в бележки,
просто отваряш cmdctl, търсиш "ssh" и копираш точната команда.

Сценарий 2: DevOps инженер

Трябва ти да почистиш Docker volumes, но командата е сложна.
Отваряш cmdctl → "docker-cleanup" → Enter → копираш командата.
2 секунди вместо 2 минути гуглене.

Сценарий 3: Мрежов специалист

Трябва да направиш backup на MikroTik конфигурацията.
cmdctl → "mikrotik-backup" → виждаш точната команда с правилния синтаксис.
Няма грешки, няма стрес.

Сценарий 4: Разработчик

Имаш сложна Git команда за rebase с конкретни параметри.
Използваш я рядко, но когато ти трябва - трябва да е точна.
cmdctl пази командата с подробно описание кога и защо я използваш.

🎨 Защо е различен?

Красив интерфейс

  • Модерна цветна палитра, която не уморява очите
  • Ясна структура с box-drawing символи
  • Емоджита за по-лесна навигация
  • Професионален вид, приятен за работа

Интелигентна организация

  • Всяка команда с име, описание и самата команда
  • Лесно за търсене и филтриране
  • Групиране с общи префикси (напр: docker-*, ssh-*, mikrotik-*)

Практичност

  • Копиране в клипборда с едно натискане
  • FZF интеграция за power users
  • Работи с всеки текстов редактор
  • Няма зависимости (освен опционално fzf и xclip)

Надеждност

  • Валидация на входните данни
  • Защита от грешки
  • Ясни съобщения за всяко действие
  • Стабилна работа

📥 Инсталация

Свалете и инсталирайте скрипта с една команда:

wget -O /tmp/cmdctl https://gist.fedia.eu/urocibg/2b89e73f593c463a8de5506bf89aba97/raw/HEAD/cmdctl
sudo mv /tmp/cmdctl /usr/local/bin/cmdctl
sudo chmod +x /usr/local/bin/cmdctl

След това просто напишете в терминала:

cmdctl

Опционални инструменти за по-добра функционалност:

За копиране в клипборда:

sudo dnf install xclip
# или
sudo apt install xclip

За FZF интерактивен преглед:

sudo dnf install fzf
# или
sudo apt install fzf

📁 Как работи?

cmdctl съхранява всички команди в текстов файл ~/.fedya_commands в следния формат:

#CMD: име-на-командата
#DESC: Описание какво прави
самата команда тук

Този формат е:

  • ✅ Лесен за четене
  • ✅ Лесен за редактиране
  • ✅ Лесен за backup
  • ✅ Лесен за споделяне между машини

Можеш да копираш файла на друга машина и веднага да имаш всички си команди там.

🔥 Професионални съвети

Именуване на командите

Използвай ясна система за имена:

  • docker-* за всички Docker команди
  • ssh-* за SSH команди
  • mikrotik-* за MikroTik команди
  • backup-* за backup команди

Така лесно филтрираш по категории.

Подробни описания

Не пиши просто „backup“, а „Създаване на пълен бекъп на MikroTik рутер с включени сертификати“. След 6 месеца ще си благодариш.

Примерни данни в командите

Ако командата използва параметри, остави примерни стойности:

ssh -i ~/.ssh/id_rsa user@server_ip
# вместо
ssh -i KEY_PATH USERNAME@HOST

По-лесно е да промениш конкретни стойности, отколкото да гадаеш какво да сложиш.

Редовен преглед

Веднъж месечно отвори cmdctl и прегледай командите си. Изтрий остарели, актуализирай променени, добави нови. Това поддържа библиотеката полезна.

📊 Статистика и факти

След като използваш cmdctl няколко седмици, ще забележиш:

  • ⏱️ Спестено време: 5-10 минути на ден от търсене на команди
  • 🧠 По-малко стрес: Не се налага да помниш сложни команди
  • По-малко грешки: Винаги използваш проверената команда
  • 📈 По-добра организация: Всичко е на едно място

🎓 Случаи на употреба

Backup команди

mikrotik-backup, mysql-dump, rsync-backup-remote, etc.

SSH свързвания

ssh-connect, ssh-connect-key, ssh-copy-key, ssh-permissions-fix

Docker управление

docker-ps, docker-logs-tail, docker-cleanup, docker-compose-rebuild

Системни проверки

check-disk, check-memory, check-process, tail-log

WordPress управление

wp-permissions, wp-owner, wp-db-backup

Git операции

git-rebase-interactive, git-squash-commits, git-cherry-pick

🌟 Разширени възможности

Споделяне на команди в екип

Ако работиш в екип, можете да споделяте общи команди:

# Експорт на командите
cp ~/.fedya_commands ~/shared-commands.txt

# Импорт на чужди команди
cat ~/team-commands.txt >> ~/.fedya_commands

Backup на командите

# Backup в облак
cp ~/.fedya_commands ~/Dropbox/cmdctl-backup.txt

# Или Git репозиторий
cd ~
git add .fedya_commands
git commit -m "Updated commands"
git push

Синхронизация между машини

Използвай rsync или облачно хранилище да синхронизираш командите между различните си компютри и сървъри.

🚀 Заключение

cmdctl не е просто инструмент – това е твоят личен асистент за командния ред. Спестява време, намалява стреса и повишава продуктивността.

Веднъж като го използваш няколко дни, няма да разбереш как си работил без него.

Инсталирай го днес и започни да строиш своята библиотека от команди!


Автор:Федя Серафиев
Версия: 1.0
Лиценз: Open Source
Платформа: Linux/Unix
Език: Bash
Изисквания: Bash 4.0+, опционално fzf и xclip

🔗 Полезни ресурси

  • Документация: Вградена помощ (опция 8 в менюто)
  • Поддръжка: Проверявай за актуализации
  • Общност: Споделяй полезни команди с колеги

Федя Серафиев

Федя Серафиев

е DevOps технологичен ентусиаст с опит в Linux, Docker, Kubernetes и CI/CD. Той споделя практични ръководства и анализи, които помагат на специалистите да изграждат по-добри и ефективни системи. На devopsbg.net Федя предоставя актуални и полезни насоки за автоматизация, сигурност и оптимизация на инфраструктурата.

Вашият коментар

Вашият имейл адрес няма да бъде публикуван. Задължителните полета са отбелязани с *


Колко е 1 - 1 ? (въведете числото)