Один 50-строчный agentic-скрипт на Python полностью вытеснил Google-поиски по bash-командам
Восемь лет работы с Linux-системами научили меня многому, но не избавили от одной дурацкой привычки: почти каждую неделю я открывал браузер и вводил tar extract gz или find files larger than.
Это не было катастрофой — просто раздражало. Каждый такой поиск отнимал 30–40 секунд: открыть вкладку, пропустить рекламу, пролистать Stack Overflow, скопировать команду. В сумме за год набегало больше часа потерянного времени.
Я решил это исправить.
Шаг 1. Посчитал, сколько именно трачу
Выгрузил историю браузера за 10 месяцев и отфильтровал запросы, связанные с командной строкой. Получилась следующая картина:
tar extract— 39 разfind files bigger than …— 27 разkill process on port …— 24 разаcrontab syntax— 19 раз
Всего ~140 запросов на вещи, которые я теоретически должен знать наизусть. Даже chmod 755 встречался регулярно.
Вывод был очевиден: если автоматизировать эти 140 поисков, можно серьёзно ускорить повседневную работу.
Шаг 2. Написал минимальный агент
Сделал простой скрипт на Python (50 строк, без внешних зависимостей), который принимает запрос на русском и возвращает одну bash-команду:
#!/usr/bin/env python3
"""ai-bash: спрашиваю по-русски — получаю bash"""
import sys
import os
import json
import urllib.request
API_KEY = os.getenv("OPENAI_API_KEY", "")
API_URL = os.getenv("AI_BASH_URL", "https://api.openai.com/v1/chat/completions")
MODEL = os.getenv("AI_BASH_MODEL", "gpt-4o-mini")
SYSTEM = (
"Ты — эксперт по Linux-терминалу. Пользователь пишет задачу на русском. "
"Отвечай ТОЛЬКО одной строкой bash-команды. Без объяснений, без markdown, "
"без кавычек. Несколько команд — через && или |. Только Linux."
)
def ask(question: str) -> str:
body = json.dumps({
"model": MODEL,
"temperature": 0,
"max_tokens": 180,
"messages": [
{"role": "system", "content": SYSTEM},
{"role": "user", "content": question},
],
}).encode()
req = urllib.request.Request(API_URL, data=body, headers={
"Content-Type": "application/json",
"Authorization": f"Bearer {API_KEY}",
})
with urllib.request.urlopen(req) as r:
data = json.loads(r.read())
return data["choices"][0]["message"]["content"].strip()
def main():
if len(sys.argv) < 2:
print("Использование: ai 'найди файлы больше 50мб'")
sys.exit(1)
cmd = ask(" ".join(sys.argv[1:]))
print(f"\n \033[1;33m➜ {cmd}\033[0m\n")
if input("Запустить? [y/N] ").strip().lower() in ("y", "д"):
os.system(cmd)
if __name__ == "__main__":
main()
Установка — три команды:
mkdir -p ~/bin
chmod +x ~/bin/ai-bash.py
echo 'alias ai="python3 ~/bin/ai-bash.py"' >> ~/.bashrc
Через пару дней перевёл всё на локальную Ollama (qwen2.5:7b):
export AI_BASH_URL="http://localhost:11434/v1/chat/completions"
export AI_BASH_MODEL="qwen2.5:7b"
export OPENAI_API_KEY="ollama"
Ответ приходит за 1.8–2.3 секунды — уже комфортно.
Шаг 3. Как это работало на практике
Примеры запросов и ответов:
ai "покажи свободное место на дисках"→df -hai "распакуй archive.tar.gz"→tar -xzf archive.tar.gzai "убей всё на порту 3000"→kill $(lsof -t -i:3000)ai "переименуй все .JPG в .jpg"→for f in *.JPG; do mv "$f" "${f%.JPG}.jpg"; done
Самое приятное — больше не гуглить конструкции вроде ${f%.JPG}.
Шаг 4. Что изменилось через 30 дней
За месяц скрипт обработал 712 запросов (~24 в день).
Google-поиски по bash почти исчезли.
Рабочий поток стал заметно ровнее: нет 30–40-секундных пауз на поиск команды.
Но появилась обратная сторона.
На четвёртой неделе пришлось чинить деплой на удалённом сервере без моего скрипта.
Нужно было распаковать архив. Набираю tar — и на 10–12 секунд зависаю:
-xzf? -zxf? С дефисом или без?
Раньше это было рефлексом. Теперь — задержка.
Самопроверка по 12–15 командам показала:
- Простые (
df -h,du -sh,rsync -avz) — на месте - Средней сложности (
tar -xzf,chmod 755 vs 644,awk '{print $1}') — вспоминаются медленнее - Сложные (
find … -exec {} ;) — и раньше были слабым местом
В итоге «выветрилось» 3–4 команды, которые я раньше знал почти автоматически.
Три случая, когда подтверждение спасло
- Предложено
rm -rf /tmp/*— вспомнил, что там сокеты живых сервисов find /var/log -mtime +10 -deleteбез-type f— чуть не удалил директории логовchmod -R 777 .внутри проекта — чуть не сломал.sshи ключи
Без строки подтверждения уже были бы проблемы.
Выводы: плюсы, минусы и что дальше
Плюсы
- Экономия времени и внимания
- Нет рекламы и переключений контекста
- Русский язык
- Бесплатно на локальной модели
Минусы
- Потеря мышечной памяти на некоторые команды
- Зависимость от доступа к модели (на чистом сервере без Ollama — дискомфорт)
Стоит ли оно того?
Для меня — да.
Скорость и комфорт работы перевешивают потерю нескольких микро-навыков.
Я продолжаю пользоваться скриптом.
А tar -xzf… вспоминаю теперь чуть дольше, чем раньше.
UPD — в будни 30–35 запросов, в выходные 6–12. Среднее 23.7 в день. Жизнь идёт.
Похожие статьи

AI заменит всех джуниоров? Реальность 2026 года
Как один грамотно настроенный agentic workflow уже закрывает работу 3–4 джуниоров: реальные кейсы, стеки и цифры 2026 года — без хайпа и фантазий.

Программистов всё меньше, а роботов всё больше: кто на самом деле управляет миром в 2026-м
Роботы будущего экономят твое время. Пока ты читаешь этот текст, они учатся драться кунг-фу и загружать посудомойки. Через год они заберут твою работу. Если не поймешь, как это работает — останешься в прошлом

DeepSeek и Qwen меняют правила игры в AI 2026: цена убивает качество?
DeepSeek и Qwen стоят в 5–30 раз дешевле топовых моделей, а по качеству уже на равных или впереди в кодинге и длинном контексте. Разбираем, почему стартапы массово переходят на них и что это значит для реального продакшена.