Как настроить приглашение zsh в Terminal на macOS
Важно: изменения в ~/.zshrc применяются только к текущему пользователю. Для глобальных настроек смотрите /etc/zshrc.
Быстрая навигация
- Основы приглашения zsh
- Создать профиль Z Shell для хранения настроек
- Кастомизация приглашения zsh в Terminal
- Добавить дату и время в приглашение zsh
- Добавить цвет в текст приглашения zsh
- Визуальные эффекты для приглашения zsh
- Убрать строку последнего входа из Terminal
- Сбросить настройки zsh
- Шпаргалка переменных и цветовых кодов
- Роль‑ориентированные чек‑листы
- Пошаговый SOP для безопасных изменений
- Когда настройки не применяются и как исправить
- Частые вопросы

Основы приглашения zsh
При запуске Terminal macOS отображает строку приветствия, сведения о последнем входе и сам приглашение ввода команд. По умолчанию это выглядит так:
Last\u00a0login: Wed\u00a0Feb 3 22:00:40\u00a0on\u00a0console
alvin@MacBook-Air ~ %Приглашение zsh формируется строкой переменных. Пример системной строки по умолчанию:
PS1="%n@%m %1~ %#"Кратко о переменных:
- %n — имя учётной записи (username).
- %m — имя машины (короткое название хоста; часто модель макбука не гарантируется системой, но даёт имя хоста).
- %1~ — текущий рабочий каталог: ~ используется как подстановочное для $HOME.
- %# — показывает # для root и % для обычного пользователя.
Если вы перейдёте в другой каталог, то символ ~ заменится на имя текущего каталога или сокращённую форму пути.

Создать профиль Z Shell для хранения всех настроек
macOS использует набор системных файлов по умолчанию, которые обновления могут перезаписать. Чтобы сохранить свои настройки, создайте локальный файл конфигурации в домашней папке — файл-«точка» .zshrc.
Шаги:
- Откройте Terminal.
- Выполните команду:
touch ~/.zshrcКоманда touch создаст файл .zshrc, если его ещё нет. Если он уже существует, touch ничего не изменит.
Файл .zshrc хранится в ~/ (путь /Users/<ваше_имя>/). Он применяется к интерактивным шеллам. Для логин-шеллов проверяются также .zprofile и .zlogin.
Совет: сделайте резервную копию перед изменениями:
cp ~/.zshrc ~/.zshrc.backupКастомизация приглашения zsh в Terminal
Редактирование производится в ~/.zshrc. Откройте файл редактором:
nano ~/.zshrcДобавьте строку PROMPT или PS1. Простой пример:
PROMPT='%n:~$'Сохраните Ctrl+O и выйдите Ctrl+X. Откройте новое окно Terminal (Cmd+T или новое окно), чтобы увидеть изменения.
Вы также можете вставить буквенный ник вместо %n:
PROMPT='customusername~$'Советы по организации .zshrc:
- Комментируйте блоки: # prompt, # colors, # right prompt.
- Выносите длинные конструкции в функции, если нужно.
- Храните резервную копию и используйте систем контроля версий для dotfiles.
Если это кажется сложным, существуют генераторы приглашений (например, Zsh Prompt Generator) и фреймворки (oh-my-zsh, prezto, starship).

Добавить дату и время в приглашение zsh
Вы можете отображать дату и время прямо в приглашении, чтобы не отвлекаться на другие окна.
Откройте ~/.zshrc и используйте:
- %D — дата в формате yy-mm-dd.
- %W — дата в формате mm/dd/yy.
- %T — время в 24‑часовом формате HH:MM.
- %t — время в 12‑часовом формате.
- %* — время в 24‑часовом формате с секундами.
Примеры:
PROMPT='%n:%W:~$'
PROMPT='%n@%T>~$'Чтобы вынести дату и время в правую часть приглашения, используйте RPROMPT:
RPROMPT='%D @ %T'RPROMPT показывает содержимое справа и не перекрывает левую часть, если окно узкое — текст будет смещаться.



Добавить цвет в текст приглашения zsh
Z shell поддерживает имена цветов и 8‑битные числовые коды (256 цветов). Для простого цвета используйте %F{color} и %f, где %F включает цвет, а %f возвращает стандартный.
Примеры:
PROMPT='%F{cyan}%n%f:~$'
PROMPT='%F{51}%n%f:~$'Доступные имена: black, red, green, yellow, blue, magenta, cyan, white.
Если вы используете тему Terminal с тёмным фоном, проверьте читаемость цветов. Лучше выбирать контрастный цвет для основного текста и акцентный для имени пользователя.

Визуальные эффекты приглашения zsh
Кроме цвета доступны эффекты форматирования:
- %B … %b — жирный текст.
- %U … %u — подчёркнутый текст.
- %S … %s — выделение (highlight).
Примеры:
PROMPT='%B%F{51}%n%f%b:~$'
PROMPT='%S%F{51}%n%f%s:~$'
PROMPT='%U%F{51}%n%f%u:~$'Эффекты сочетаются с цветом. Не переусердствуйте: слишком много эффектов снижает удобочитаемость.



Убрать сведения о последнем входе
Чтобы скрыть строку «Last login», создайте файл .hushlogin:
touch ~/.hushloginПри следующем запуске Terminal строка с последним входом не будет показана.
Сброс настроек zsh
Вернуть стандартное приглашение можно так:
PROMPT="%n@%m %1~ %#"Или просто удалите переменные PROMPT/PS1 и RPROMPT из ~/.zshrc. Системные значения в /etc/zshrc будут применены.
Совет: вместо удаления временно закомментируйте строки, чтобы быстро восстановить:
# PROMPT='%n:~$'Шпаргалка: переменные приглашения и их смысл
- %n — имя пользователя
- %m — имя хоста (короткое)
- %M — полное имя хоста
- %~ — текущий каталог, ~ для $HOME
- %1~ — сокращённый путь (один уровень)
- %/ — полный путь
- %d, %D, %W — варианты даты
- %T, %t, %* — варианты времени
- %# — # для root, % для обычного
- %F{X} … %f — цвет текста (X — имя или число)
- %B … %b — жирный
- %U … %u — подчёркнутый
- %S … %s — выделение
Пример комплексного PROMPT:
PROMPT='%B%F{33}%n%f%b %F{245}%1~%f %# '
RPROMPT='%D %T'Таблица примеров шаблонов приглашения
- Минималистичный:
PROMPT='%~ $ '- Информативный (имя@хост, путь, время справа):
PROMPT='%F{green}%n@%m%f %F{blue}%1~%f %# '
RPROMPT='%F{240}%T%f'- Акцент на время и дата:
PROMPT='%F{magenta}%n%f %1~ %# '
RPROMPT='%D %*'Роль‑ориентированные чек‑листы
Разные роли имеют разные потребности. Ниже минимальные проверки перед публикацией .zshrc.
Разработчик:
- Есть явный PROMPT и RPROMPT.
- Цвета читаемы в светлой и тёмной теме.
- Короткий путь (%1~) вместо полного пути.
- Есть git-индикация (через плагин или функция).
- Резервная копия .zshrc.backup.
Системный администратор:
- Указывает привилегии в промпте (root vs user).
- Включены отметки времени для логирования действий.
- Проверена совместимость с sudo и su.
- Имеется процедура отката.
Начинающий пользователь:
- Простой и читаемый PROMPT.
- Минимум цветовых эффектов.
- Пошаговая инструкция восстановления.
Пошаговый SOP для безопасной кастомизации
- Создайте резервную копию конфигурации:
cp ~/.zshrc ~/.zshrc.backup- Откройте .zshrc в редакторе:
nano ~/.zshrc- Добавьте новую строку PROMPT/PS1 и, при необходимости, RPROMPT.
- Сохраните и закройте файл.
- Откройте новое окно Terminal и проверьте отображение.
- Если что‑то не так, восстановите резервную копию:
cp ~/.zshrc.backup ~/.zshrc- После успеха — коммит в систему управления версиями для dotfiles.
Когда кастомизация может не применяться
- Файл ~/.zprofile или ~/.zlogin переопределяет поведение для логин-шеллов.
- Вы редактируете не тот файл пользователя (несовпадение $HOME).
- Промпт задаётся в /etc/zshrc для всех пользователей и загружает свои значения позже.
- Используются фреймворки (oh-my-zsh, prezto), которые перезаписывают PROMPT после чтения .zshrc.
- Неправильная синтаксическая строка: незакрытые %B/%b, %F/%f и т.д. приведут к неожиданному выводу.
Как диагностировать:
- Запустите zsh в режиме отладки:
zsh -xv- Временно переименуйте .zshrc и откройте новый шелл, чтобы проверить поведение без локальных настроек:
mv ~/.zshrc ~/.zshrc.temp
open -a TerminalАльтернативные подходы
- oh-my-zsh: фреймворк с темами и плагинами. Удобно, если нужен быстрый старт.
- prezto: минималистичный, быстрый и хорошо структурированный.
- starship: отдельный кроссплатформенный промпт, конфигурируется в одном JSON/TOML файле и не зависит от zsh-тегов.
Выбор:
- Нужен лёгкий, гибкий промпт — берите starship.
- Хотите много готовых тем и плагинов — oh-my-zsh.
- Нужна небольшая и быстрая конфигурация — prezto.
Ментальные модели при проектировании приглашения
- Минимализм: показывайте только то, что помогает принимать решения в текущей задаче.
- Контекст: добавляйте информацию, полезную для сессии (ветка git, контейнер, путь).
- Уровни важности: имя пользователя и root-индикатор первостепенны; время и дата — вспомогательные.
Когда не стоит усложнять
- Работаете в маленьком окне Terminal — длинные PROMPT занимают строчки и мешают.
- Нужна совместимость с удалёнными системами с ограниченными шрифтами/кодировкой.
- Вы делите конфигурацию с людьми, которые не любят цвета.
Примеры тестов и критерии приёмки
Критерии приёмки:
- PROMPT отображается корректно при обычном запуске Terminal.
- RPROMPT не перекрывает основное приглашение при ширине окна >= 80 колонок.
- Цвета контрастны и читаемы в используемой теме.
- При восстановлении из .zshrc.backup система возвращается к прежнему состоянию.
Тесты:
- Откройте новый терминал — проверьте PROMPT.
- Измените каталог на глубоко вложенный путь — проверьте %1~ или %~.
- Подключитесь по SSH к другому хосту — убедитесь, что приглашение корректно.
Мерчурный поток решений (Mermaid)
flowchart TD
A[Нужно ли видеть время/дату?] -->|Да| B[Добавить %T или RPROMPT]
A -->|Нет| C[Не добавлять]
B --> D{Нужен ли цвет?}
C --> D
D -->|Да| E[Добавить %F{color}…%f]
D -->|Нет| F[Оставить монохром]
E --> G[Проверить читаемость]
F --> G
G --> H[Сохранить в ~/.zshrc и протестировать]Когда кастомизация не подходит — примеры
- На сервере с ограниченным доступом и политиками безопасности запрещены персональные dotfiles.
- При автоматизированном запуске скриптов, которые парсят вывод промпта (редкий кейс) — изменение PROMPT ломает парсер.
Примеры конфигураций для распространённых задач
Для разработчика (git + краткий путь + время):
PROMPT='%F{33}%n%f %F{245}%1~%f %F{36}%(!.#.$)%f '
RPROMPT='%F{240}%T%f'Для админа (отметка root + полная информация):
PROMPT='%B%F{red}%n@%m%f%b %F{245}%/ %f %# '
RPROMPT='%D %*'Минимальный для обучения:
PROMPT='%~ $ 'Частые вопросы
Как сделать изменения мгновенно без перезапуска Terminal?
Выполните:
source ~/.zshrcПочему мой RPROMPT исчезает при узком окне?
RPROMPT отображается справа и при недостатке места Zsh может его скрыть, чтобы сохранить левую часть интактной.
Можно ли использовать emoji в PROMPT?
Да. Emoji работают, но будьте осторожны: некоторые шрифты/терминалы могут считать ширину символа иначе, что нарушит выравнивание.
Как вернуть всё обратно, если что‑то сломалось?
Восстановите резервную копию:
cp ~/.zshrc.backup ~/.zshrc
source ~/.zshrcКраткая сводка
- Храните настройки в ~/.zshrc и делайте резервную копию перед изменениями.
- Используйте PROMPT и RPROMPT для левой и правой частей приглашения.
- Цвета и эффекты улучшают видимость, но не злоупотребляйте ими.
- Для сложных задач рассмотрите starship или oh-my-zsh.
Итог: экспериментируйте аккуратно, тестируйте в новом окне Terminal, и сохраняйте резервные копии. Настройка приглашения — быстрый способ сделать работу в командной строке более информативной и приятной.
Похожие материалы
Как разделить меш в Blender
Как увеличить изображение без потери качества
Как создать влог на iPhone — полное руководство
Как отразить экран на телевизор — все способы
Бесконечная прокрутка в Vue 3 — useInfiniteScroll