Справочник командной строки удобнее читать не сплошным списком, а по разделам: глобальные параметры, корневые команды, управление внешними серверами, песочница, серверный исполнитель и параметры отдельных команд. Такое деление отражает устройство инструмента: одни параметры действуют на любой запуск, другие имеют смысл только внутри своей команды. Разница не косметическая. Глобальный параметр, однажды прописанный в алиасе оболочки или в переменной окружения, будет действовать во всех запусках, включая те, о которых вы в тот момент не думали. Параметр команды остаётся там, где написан, и потому безопаснее.
Эта глава даёт карту наиболее употребимого, а не полный перечень. Полный список для вашей сборки всегда доступен через встроенную справку - у самой программы и у каждой её команды отдельно. Это не отговорка, а следствие того, как устроен продукт: часть параметров появляется и исчезает вместе с версиями, часть помечена как продвинутая или скрытая и в общем списке не показывается, и статичный список в книге устаревает быстрее, чем печатается.
Полезно один раз пройти глазами группы параметров, чтобы знать, что вообще существует. Глобальные отвечают за аутентификацию, режим вывода, продолжение сессии, выбор модели и режима, автономность, песочницу, доверие рабочей области, рабочий каталог, плагины и деревья. Корневые команды покрывают вход и статус, список моделей, внешние серверы, песочницу, исполнителя, протокольный режим, обновление и работу с сессиями. Знание групп важнее знания имён: точное имя уточняется за секунду, а вот догадаться, что нужная возможность вообще существует, справка не поможет - её читают, когда уже знают, что ищут.
Отдельно стоит обратить внимание на параметры, у которых есть псевдонимы и сокращения. Они экономят набор, но в скриптах лучше писать полную форму: через полгода читателю скрипта важнее понятность, чем экономия символов. Это общее правило автоматизации, но здесь оно особенно уместно - многие сокращения выглядят похоже и легко путаются, а часть псевдонимов оставлена ради совместимости со старыми именами. Полное имя переживает переименования лучше короткого и лучше ищется поиском по репозиторию.
При работе со справочником полезно держать в голове разделение на то, что влияет на границы, и то, что влияет на удобство. Параметры автономности, песочницы и доверия относятся к первому классу: их значения меняют, что агент может сделать. Параметры вывода, модели и продолжения сессии - ко второму. Отдельно стоит запомнить неинтерактивный режим печати ответа: он задуман для скриптов, но при этом располагает всеми инструментами, включая запись файлов и запуск команд оболочки. Сам по себе он ничего не ограничивает, и границы для него задают теми же параметрами, что и для интерактивной работы.
Полезно один раз увидеть сводку по группам целиком. Ниже она и приведена - с указанием, что делает каждая группа и на что обратить внимание. К этой карте возвращаются, когда нужно понять, где искать нужный параметр: сначала определяют группу, потом смотрят точный синтаксис во встроенной справке своей версии.
| Группа | Что покрывает | На что смотреть |
|---|---|---|
| Глобальные параметры | Ключ и заголовки запросов, режим вывода, продолжение сессии | Влияют на любой запуск, включая скрипты |
| Границы | Автономность, песочница, доверие рабочей области | Именно эти параметры меняют, что агент может сделать |
| Область работы | Рабочий каталог, деревья, база ветвления, пропуск подготовки | Определяют, где произойдут правки |
| Модель и режим | Выбор модели, режимы работы, список моделей | Каталог узнают запросом, а не по памяти |
| Корневые команды | Вход, статус, обновление, сессии, генерация правил | Часть команд помечена как продвинутые или скрытые |
| Внешние серверы | Вход, список, список инструментов, включение и отключение | Полезны для диагностики отсутствующего инструмента |
| Песочница | Включение, отключение, сброс, запуск команды в изоляции | Отдельные параметры путей и шаблонов блокировки |
| Исполнитель | Запуск и отладка серверного исполнителя | Серверный компонент, а не инструмент разработчика |
Есть короткий список признаков, по которым чужой запуск требует отдельного разбора. Это принудительное разрешение команд, снятие вопросов о доверии к рабочей области, включение сети внутри песочницы, передача файла с токеном и регистрация исполнителя. Каждый из них расширяет границу выполнения, а не удобство, и потому при ревью скрипта их читают первыми - до того, как разбираться, что скрипт вообще делает. Практический приём: в командных скриптах такие параметры не прячут в общей строке запуска, а выносят в отдельную переменную с говорящим именем, чтобы их нельзя было не заметить при чтении.
Полезно понимать и границу применимости двух групп, которые чаще всего понимают неверно. Параметры рабочей области и деревьев определяют, где именно окажутся правки: запуск в отдельном дереве создаёт изолированный checkout от указанной базы, и правки не смешиваются с текущей работой. Исполнитель - вообще не инструмент разработчика: это серверный компонент, который принимает работу от облака и выполняет её в вашем окружении, со своей аутентификацией, метками и адресом для проверок состояния. Первая группа меняет место, где идёт работа. Вторая - того, кто эту работу инициирует.
Инженерный вывод простой: справочник - это карта, а встроенная справка - источник истины. Книга помогает понять устройство и найти нужное место, но конкретное имя и поведение параметра всегда проверяют в своей сборке. Особенно это касается параметров, снимающих ограничения: их поведение уточняется от версии к версии, и цена ошибки здесь не косметическая.
Типичные провалы предсказуемы. Скопировать параметр из чужого скрипта, не проверив его в своей версии. Использовать сокращения в автоматизации и потерять читаемость. Спутать параметры границ с параметрами удобства при ревью. Считать неинтерактивный режим печати безопасным по умолчанию. И считать статический список в книге исчерпывающим.