Введение / Зачем это нужно
Приглашение командной строки (prompt) — это первое, что вы видите в терминале. Стандартный промпт в ZSH на macOS (%) функционален, но неинформативен и визуально скуден. Кастомизация позволяет:
- Увеличить продуктивность: Сразу видеть текущий путь, статус Git (ветка, изменения), время.
- Улучшить читаемость: Использовать цвета для разделения элементов.
- Персонализировать среду: Сделать терминал своим, что особенно важно для ежедневной работы.
После выполнения этого гайда вы получите информативный и стильный промпт, адаптированный под ваши задачи.
Требования / Подготовка
- Операционная система: macOS (любая современная версия, поддерживающая ZSH).
- Оболочка: ZSH должен быть установлен и активен. macOS с Catalina (10.15) и новее использует ZSH по умолчанию.
- Права доступа: Права на запись в домашний каталог пользователя (
~). - (Опционально) Oh My Zsh: Если хотите использовать готовые темы, установите Oh My Zsh. Инструкция по установке есть в нашем гайде
/guides/macos/install-oh-my-zsh.
Пошаговая инструкция
Шаг 1: Проверьте, используется ли ZSH по умолчанию
Откройте приложение Терминал (Terminal). Введите команду:
echo $SHELL
Если вывод — /bin/zsh или /usr/local/bin/zsh, вы используете ZSH. Если вы видите /bin/bash или другой путь, измените оболочку:
chsh -s /bin/zsh
Вам потребуется ввести пароль. После этого закройте и снова откройте окно Терминала.
Шаг 2: Откройте и создайте резервную копию файла .zshrc
Основной конфигурационный файл ZSH — ~/.zshrc. Он может отсутствовать в новой установке.
- Проверьте его наличие:
ls -la ~/.zshrc - Если файл есть, создайте его резервную копию (это просто и безопасно):
Эта команда создаст копию с датой в имени, напримерcp ~/.zshrc ~/.zshrc.backup.$(date +%Y%m%d).zshrc.backup.20260216. - Если файла нет, создайте пустой:
touch ~/.zshrc - Откройте файл в текстовом редакторе. Для простоты используйте
nano:nano ~/.zshrc
Шаг 3: Выберите и установите тему для промпта (если используете Oh My Zsh)
Если у вас установлен Oh My Zsh, это самый быстрый способ получить красивый промпт.
- В открытом файле
~/.zshrcнайдите строку, начинающуюся сZSH_THEME. Она обычно выглядит так:ZSH_THEME="robbyrussell" - Измените значение на название нужной темы. Популярные варианты:
agnoster— компактный, с информацией о Git и статусе последней команды.avit— показывает время, путь, ветку Git.bira— цветной, с большим количеством информации.lambda— минималистичный, с символомλ.
- Полный список встроенных тем находится в каталоге:
/usr/share/oh-my-zsh/themes/. Посмотреть их можно командой:ls /usr/share/oh-my-zsh/themes/ | sed 's/.zsh-theme//' - Сохраните файл в
nano(Ctrl+X, затем Y, затем Enter) и примените изменения:
Ваш промпт должен измениться мгновенно.source ~/.zshrc
Шаг 4: Настройте собственный промпт вручную (без Oh My Zsh или для тонкой настройки)
Если вы не используете Oh My Zsh или хотите полный контроль, настройте переменные PROMPT (основной промпт) и RPROMPT (правый промпт).
- В файле
~/.zshrcдобавьте или измените строку сPROMPT. Вот несколько примеров:
Простой промпт с путём и символом:PROMPT='%F{blue}%~%f %# '%F{blue}— начинать синим цветом.%~— текущий рабочий каталог, сокращённый до~для домашней папки.%f— сброс цвета.%#— символ#для root,%для обычного пользователя.
Промпт с пользователем, хостом и временем:PROMPT='%F{green}%n%f@%F{magenta}%m%f %F{cyan}%~%f %F{yellow}%*%f %# '%n— имя пользователя.%m— имя хоста (машины).%*— текущее время в формате HH:MM:SS.
- Для правого промпта (
RPROMPT) используйте аналогичные escape-последовательности. Он выравнивается по правому краю:RPROMPT='%F{red}%?%f' # Показывает код возврата последней команды (0 - зелёный, !=0 - красный) - Сохраните файл и выполните
source ~/.zshrc.
Шаг 5: Добавьте информативные элементы (Git, статус команд)
Мощный промпт часто показывает статус Git. В 'чистом' ZSH для этого потребуется своя функция.
- Добавьте в
~/.zshrcфункцию для отображения информации о Git:# Функция для отображения информации о Git в промпте git_prompt_info() { local ref ref=$(git symbolic-ref HEAD 2> /dev/null) || return echo " (%F{magenta}${ref#refs/heads/}%f)" }
Эта функция показывает текущую ветку в magenta цвете в круглых скобках. - Интегрируйте её в
PROMPT:PROMPT='%F{green}%n@%m%f %F{cyan}%~%f$(git_prompt_info) %# '
Теперь, находясь в каталоге Git-репозитория, вы увидите ветку. - Для более сложного статуса (изменённые файлы, ahead/behind) лучше использовать готовую реализацию из Oh My Zsh или сторонние скрипты. Если Oh My Zsh установлен, вы можете просто добавить в
~/.zshrc:autoload -Uz vcs_info precmd_vcs_info() { vcs_info } precmd_functions+=( precmd_vcs_info ) setopt prompt_subst RPROMPT=\$vcs_info_msg_0_
И настроитьzstyleдляvcs_info. Это более продвинутый способ.
Шаг 6: Примените изменения и протестируйте
- После каждого изменения в
~/.zshrcприменяйте его:source ~/.zshrc - Протестируйте промпт:
- Перейдите в разные каталоги (
cd /,cd ~/Documents), убедитесь, что путь (%~) отображается корректно. - Если добавили Git, перейдите в любой Git-репозиторий и сделайте несколько коммитов/изменений, проверьте отображение ветки и статуса.
- Проверьте цвета. Если цвета не отображаются, убедитесь, что ваш терминал поддерживает 256-цветную палитру (по умолчанию в Терминале macOS это так).
- Перейдите в разные каталоги (
- Если что-то пошло не так, восстановите резервную копию:
(замените дату на вашу).cp ~/.zshrc.backup.20260216 ~/.zshrc source ~/.zshrc
Проверка результата
Успешная настройка промпта означает:
- При запуске нового окна Терминала или новой вкладки отображается ваш кастомный промпт.
- Путь в промпте корректно обновляется при смене каталога.
- (Если настраивали) Информация о Git появляется только внутри репозиториев и отражает текущую ветку.
- Цвета отображаются правильно, текст читаем.
- Промпт не содержит синтаксических ошибок ZSH (не выводит сообщения вроде
zsh: event not foundпри вводе команд).
Возможные проблемы
Проблема: Цвета в промпте отображаются как странные символы или не работают.
Решение: Убедитесь, что вы используете правильные escape-коды (%F{color}, %f). Вместо %F{blue} можно использовать числовой код: %F{4}. Также проверьте настройки вашего терминала: в Терминале macOS в Preferences -> Profiles -> Text должен быть включён "Use built-in ANSI color set" или "Use bright colors for bold text".
Проблема: Функция git_prompt_info не работает, выводится пустота даже в Git-репозитории.
Решение: Убедитесь, что вы находитесь в корне репозитория (где есть папка .git). Функция ищет этот каталог. Также проверьте, нет ли опечаток в имени функции. Для отладки добавьте set -x перед вызовом функции и set +x после в ~/.zshrc, чтобы увидеть, что происходит.
Проблема: Промпт "ломается" (переносит символы prompts на новую строку) при длинном пути.
Решение: ZSH автоматически переносит длинные промпты, но это может выглядеть некрасиво. Используйте параметр PROMPT_EOL_MARK или оберните длинные части в %{%} для корректного подсчёта длины. Например: PROMPT='%{%F{blue}%}%~%{%f%} %# '. Более надёжное решение — использовать плагин zsh-autosuggestions или powerlevel10k, которые грамотно управляют пространством.
Проблема: После настройки промпта перестали работать другие настройки из .zshrc (alias, path).
Решение: Скорее всего, вы случайно удалили или закомментировали другие строки в файле. Восстановите файл из резервной копии и вносите изменения более аккуратно, добавляя новые строки в конец файла или перед нужными секциями, не удаляя старое.