Bash для AI-инженеров

Bash для AI-инженеров

@ai_longreads

Разбираемся в основных bash-командах, которые используют AI-агенты, и учимся читать их с уверенностью.

Это AI-перевод статьи, сделанный каналом Про AI: Лучшие Статьи и Исследования.


Bash для AI-инженеров

Bash for AI Engineers Автор: Ado Kukic Оригинальный текст:

Что такое Bash?

Вы наверняка видели это в фильмах: хакер яростно набирает зелёный текст на чёрном экране. Это терминал (более-менее). А bash — язык, на котором он «говорит».

Простая версия:

  • Терминал — это приложение на вашем компьютере. Просто окно, в котором вы вводите текстовые команды вместо того, чтобы кликать по кнопкам. На Mac есть встроенное приложение Terminal (хотя многие разработчики предпочитают альтернативы вроде iTerm2 или Warp). На Windows можно использовать PowerShell или WSL. А в VS Code, Cursor и других IDE обычно уже встроен терминал.
  • Bash расшифровывается как «Bourne Again Shell». Это самый распространённый язык для общения с компьютером через терминал. Когда вы вводите команду и нажимаете Enter, bash интерпретирует написанное и выполняет его.
  • Команда — это просто инструкция. ls означает «покажи файлы здесь». cd Documents — «перейди в папку Documents». В этом руководстве мы рассмотрим различные команды.

Можно представить это так: приложения, которыми вы обычно пользуетесь (Finder, Photoshop, Google Chrome), — это визуальный способ взаимодействия с компьютером. Терминал — текстовый способ делать то же самое, но зачастую быстрее и точнее.

Почему это выглядит так пугающе?

В терминале нет «защитных барьеров». Никаких всплывающих окон «Вы уверены?» при удалении файла. Никакой кнопки «Отменить». Мигающий курсор просто ждёт, пока вы что-нибудь введёте, — и тут же выполняет.

Эта пустота пугает. Но вот хорошая новость: большинство команд просты, и вам нужно знать лишь горстку из них, чтобы понимать, что делают AI-инструменты.

Вы не станете экспертом по bash сегодня. Вы научитесь достаточно, чтобы читать происходящее и сохранять контроль.

Как открыть терминал

Если вы никогда не открывали терминал:

  • Mac: нажмите Cmd + Space, введите «Terminal», нажмите Enter
  • Windows: найдите «PowerShell» или установите WSL для терминала в стиле Linux
  • Linux: нажмите Ctrl + Alt + T

Вы увидите что-то вроде:

username@computer:~$

Это bash ждёт вашего ввода. Символ $ означает, что вы обычный пользователь (не администратор). Символ ~ — что вы в домашней папке.

Попробуйте ввести ls и нажать Enter. Вы увидите список файлов и папок.

Поздравляем! Вы только что выполнили свою первую bash-команду.

Встроенные команды и внешние программы

Bash сам знает лишь несколько команд. Такие вещи, как cd (сменить директорию) и echo (вывести текст), встроены в bash. Но большинство команд — ls, cat, grep, git, npm, python — на самом деле отдельные программы, установленные на вашем компьютере.

Когда вы вводите git status, bash не знает, что такое git. Он просто находит программу git в системе и запускает её с аргументом status. Bash — это посредник.

Вот что делает терминал таким мощным. Bash может запускать множество программ:

ls                    # Программа для показа файлов
git status            # Программа для контроля версий
npm install           # Программа для JavaScript-пакетов
python script.py      # Программа для запуска Python-кода
ffmpeg -i video.mp4   # Программа для обработки видео
docker ps             # Программа для контейнеров

Каждый инструмент, который вы устанавливаете — Node.js, Python, Docker, AWS CLI и т.д. — становится доступен через bash. Терминал не ограничен фиксированным набором возможностей. Он растёт с каждым добавленным инструментом.

Именно поэтому AI-агенты любят bash. Через один интерфейс они могут искать файлы, запускать тесты, управлять git, устанавливать пакеты, запускать серверы — и делать всё, что умеет ваша система.

Почему это важно

Каждый раз, когда AI-ассистент для написания кода или агент помогает вам, он, скорее всего, выполняет bash-команды за кулисами. Ищет по кодовой базе? Bash. Запускает тесты? Bash. Устанавливает зависимости? Bash. Создаёт файлы? Как ни странно — тоже bash.

Большинство AI-инструментов показывают вам, что собираются запустить, и ждут вашего подтверждения. Если вы не понимаете, что одобряете, — вы летите вслепую.

Понимание bash даёт вам три суперсилы:

  1. Безопасность — вы можете заметить опасные команды до их выполнения
  2. Продуктивность — вы можете направить AI к лучшему решению, когда он застрял
  3. Отладка — вы можете исправить ситуацию, когда команды AI дают сбой

Вам не нужно становиться экспертом по bash. Достаточно понимать паттерны, которые AI-агенты используют чаще всего.

Команды, которые AI-агенты обожают

Давайте посмотрим, что AI-инструменты для написания кода на самом деле запускают. Обычно это не экзотические команды, а те же самые, которыми разработчики пользуются каждый день.

Навигация и чтение файлов

AI-агентам нужно понять вашу кодовую базу, прежде чем они смогут помочь. Эти команды — их глаза:

ls                  # Показать файлы в текущей директории
ls -la              # Показать ВСЕ файлы (включая скрытые) с подробностями
cd src/components   # Перейти в директорию
pwd                 # Показать текущее местоположение
cat README.md       # Вывести содержимое файла
head -n 20 file.py  # Показать первые 20 строк
tail -n 20 file.py  # Показать последние 20 строк

Почему это важно: когда AI выполняет ls или cat, он просто осматривается. Это безопасные команды, работающие только на чтение.

Поиск по коду

Именно здесь AI-агенты проводят большую часть времени. Им нужно быстро находить нужный код:

# Поиск файлов по имени
find . -name "*.tsx"      # Найти все файлы .tsx
find . -name "config*"    # Найти файлы, начинающиеся с «config»

# Поиск по содержимому файлов
grep "useState" src/      # Найти «useState» в папке src/
grep -r "TODO" .          # Искать рекурсивно по всему проекту
grep -n "error" app.py    # Показать номера строк с совпадениями

Современные AI-инструменты часто используют ripgrep (rg) вместо grep — он обычно быстрее:

rg "function" --type ts   # Искать только в TypeScript-файлах
rg "API_KEY" --hidden      # Включить скрытые файлы в поиск

Почему это важно: команды поиска безопасны и работают только на чтение. Но обращайте внимание на то, что именно ищет AI — это подскажет, как он думает о вашей задаче.

Запуск ваших инструментов

AI-агенты постоянно запускают инструменты вашего проекта:

# JavaScript/TypeScript
bun install              # Установить зависимости
bun run build            # Запустить сборку
bun test                 # Запустить тесты

# Python
pip install requests     # Установить пакет
python script.py         # Запустить скрипт
pytest tests/            # Запустить тесты

# Git
git status               # Посмотреть, что изменилось
git diff                 # Посмотреть сами изменения
git add .                # Подготовить все изменения к коммиту
git commit -m "Fix bug"  # Зафиксировать с сообщением

Почему это важно: эти команды делают что-то. Устанавливают пакеты, запускают код, создают коммиты. Понимайте, что запускается, прежде чем одобрять.

Создание и изменение файлов

Когда AI нужно изменить ваш код:

# Создание
mkdir -p src/utils        # Создать директорию (и родительские)
touch newfile.ts          # Создать пустой файл

# Перемещение и копирование
mv old.ts new.ts          # Переименовать/переместить файл
cp template.ts newfile.ts # Скопировать файл

# Удаление (осторожно!)
rm file.ts                # Удалить файл
rm -r directory/          # Удалить директорию с содержимым
rm -rf node_modules/      # Принудительно удалить (без подтверждения)

Почему это важно: файловые операции изменяют ваш проект. rm удаляет безвозвратно — в bash нет корзины.

Объединение команд в цепочки

AI-агенты объединяют команды для эффективности. Вот как их читать:

# Последовательное выполнение (вторая запустится, только если первая успешна)
npm install && npm test

# Передача вывода одной команды в другую (pipe)
cat file.txt | grep "error"
find . -name "*.js" | head -5

# Выполнить в любом случае
npm test; echo "Done"

Символ | (pipe) встречается повсюду. Он берёт вывод одной команды и передаёт его на вход следующей. Когда вы видите:

find . -name "*.py" | xargs grep "import"

Читайте это так: «Найти все Python-файлы, затем в каждом из них поискать слово 'import'».

Чтение команд AI как профессионал

Когда AI показывает вам команду, разбирайте её слева направо:

find . -type f -name "*.log" -mtime +7 -delete

Расшифровка:

  • find . — искать, начиная с текущей директории
  • -type f — только файлы (не директории)
  • -name "*.log" — файлы с расширением .log
  • -mtime +7 — изменённые более 7 дней назад
  • -delete — удалить их

Итого: «удалить все .log-файлы старше недели». Теперь вы можете принять обоснованное решение.

Совет: если команда выглядит сложной, попросите AI объяснить её, прежде чем запускать.

Когда стоит сказать «нет»

Некоторые паттерны должны заставить вас насторожиться:

`rm -rf` с переменными или подстановочными символами

rm -rf $DIR/*   # Что если $DIR пуст или указан неверно?
rm -rf /        # НИКОГДА не запускайте — удалит всё

`sudo` для вещей, которым он не нужен

sudo rm -rf node_modules   # Зачем здесь sudo?

Незнакомые флаги у опасных команд

chmod -R 777 .   # Делает всё доступным для чтения и записи

Передача curl в bash

curl https://... | bash   # Запускает удалённый код напрямую

Если сомневаетесь — спросите AI, что делает команда, или просто откажитесь и попросите альтернативный подход.

Когда что-то идёт не так

Команды AI дают сбои. Вот что делать:

Прочитайте сообщение об ошибке. Ошибки bash обычно понятны:

  • command not found — инструмент не установлен
  • Permission denied — у вас нет доступа (возможно, нужна другая директория или права)
  • No such file or directory — неверный путь

Проверьте основы:

pwd          # Я в нужной директории?
ls           # Файл/папка существует?
which node   # Инструмент установлен?

Поделитесь ошибкой с AI. Скопируйте полное сообщение об ошибке и отправьте его вашей языковой модели. AI-инструменты хорошо справляются с отладкой собственных неудачных команд.

Шпаргалка

| Команда | Что делает | Уровень риска |

| --- | --- | --- |

| ls, pwd, cat | Просмотр файлов | Безопасно (только чтение) |

| find, grep, rg | Поиск файлов | Безопасно (только чтение) |

| cd | Смена директории | Безопасно (навигация) |

| mkdir, touch | Создание файлов/папок | Низкий (создаёт объекты) |

| cp, mv | Копирование/перемещение файлов | Средний (изменяет файловую систему) |

| rm | Удаление файлов | Средний (безвозвратно) |

| rm -rf | Принудительное удаление директории | Высокий (без подтверждения) |

| npm/pip install | Установка пакетов | Средний (добавляет зависимости) |

| git commit/push | Сохранение/отправка изменений | Средний (влияет на репозиторий) |

| sudo | Запуск от имени администратора | Высокий (полный доступ к системе) |

| chmod | Изменение прав доступа | Средний (последствия для безопасности) |

Что дальше

Теперь вы знаете достаточно bash, чтобы понимать, что AI-инструменты для написания кода делают от вашего имени. Надеюсь, часть магии перестала быть тайной.

Несколько мыслей на прощание:

Начните замечать паттерны. В следующий раз, когда AI-агент запустит команду, попробуйте разобрать её до того, как одобрите. Вы удивитесь, как быстро привычные паттерны станут знакомыми — и вы сможете предвидеть потенциальные сбои, не тратя на них токены (токены).

Спрашивайте свободно. Если AI предлагает команду, которую вы не понимаете, — попросите объяснить. «Что делает эта команда?» — всегда уместный вопрос. AI-инструменты обычно отлично разбирают её по частям.

Ошибки (в основном) поправимы. Если вы одобрили что-то и всё пошло не так — не паникуйте. Большинство ошибок можно откатить с помощью git, резервной копии или просто нужной команды для исправления. Опасные команды (rm -rf, sudo) — исключение, поэтому мы стараемся избегать их без крайней необходимости.

Не обязательно погружаться глубже, если не хотите. Это руководство охватывает большую часть того, что вы увидите в работе AI-агентов. Если хотите изучить продвинутый bash — в интернете масса отличных материалов. Но вам это не обязательно. Понимания на этом уровне уже достаточно, чтобы чувствовать себя уверенно.


Подпишитесь на канал и каждый день читайте лучшие материалы про AI переведенные на русский!

Нашли интересную статью для перевода? Пришлите нашему боту: @ailongreadsbot

Report Page