Гид по технологиям

Как настроить приглашение zsh в Terminal на macOS

8 min read Терминал macOS Обновлено 26 Apr 2026
Настройка приглашения zsh в Terminal macOS
Настройка приглашения zsh в Terminal macOS

Важно: изменения в ~/.zshrc применяются только к текущему пользователю. Для глобальных настроек смотрите /etc/zshrc.

Быстрая навигация

  • Основы приглашения zsh
  • Создать профиль Z Shell для хранения настроек
  • Кастомизация приглашения zsh в Terminal
  • Добавить дату и время в приглашение zsh
  • Добавить цвет в текст приглашения zsh
  • Визуальные эффекты для приглашения zsh
  • Убрать строку последнего входа из Terminal
  • Сбросить настройки zsh
  • Шпаргалка переменных и цветовых кодов
  • Роль‑ориентированные чек‑листы
  • Пошаговый SOP для безопасных изменений
  • Когда настройки не применяются и как исправить
  • Частые вопросы

Человек использует Terminal на MacBook Pro

Основы приглашения 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 и % для обычного пользователя.

Если вы перейдёте в другой каталог, то символ ~ заменится на имя текущего каталога или сокращённую форму пути.

Стандартный вид приглашения zsh

Создать профиль Z Shell для хранения всех настроек

macOS использует набор системных файлов по умолчанию, которые обновления могут перезаписать. Чтобы сохранить свои настройки, создайте локальный файл конфигурации в домашней папке — файл-«точка» .zshrc.

Шаги:

  1. Откройте Terminal.
  2. Выполните команду:
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

Добавить дату и время в приглашение 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

Как показывать время в приглашении zsh

Отображение даты и времени справа в приглашении zsh

Добавить цвет в текст приглашения 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

Визуальные эффекты приглашения 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:~$'

Эффекты сочетаются с цветом. Не переусердствуйте: слишком много эффектов снижает удобочитаемость.

Как сделать текст жирным в приглашении zsh

Как выделить приглашение zsh

Как подчеркнуть приглашение zsh

Убрать сведения о последнем входе

Чтобы скрыть строку «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 для безопасной кастомизации

  1. Создайте резервную копию конфигурации:
cp ~/.zshrc ~/.zshrc.backup
  1. Откройте .zshrc в редакторе:
nano ~/.zshrc
  1. Добавьте новую строку PROMPT/PS1 и, при необходимости, RPROMPT.
  2. Сохраните и закройте файл.
  3. Откройте новое окно Terminal и проверьте отображение.
  4. Если что‑то не так, восстановите резервную копию:
cp ~/.zshrc.backup ~/.zshrc
  1. После успеха — коммит в систему управления версиями для 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, и сохраняйте резервные копии. Настройка приглашения — быстрый способ сделать работу в командной строке более информативной и приятной.

Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

Как разделить меш в Blender
3D моделирование

Как разделить меш в Blender

Как увеличить изображение без потери качества
Фото

Как увеличить изображение без потери качества

Как создать влог на iPhone — полное руководство
Видео

Как создать влог на iPhone — полное руководство

Как отразить экран на телевизор — все способы
Руководство

Как отразить экран на телевизор — все способы

Бесконечная прокрутка в Vue 3 — useInfiniteScroll
Vue

Бесконечная прокрутка в Vue 3 — useInfiniteScroll

Чёрный экран iPhone: как восстановить устройство
iPhone

Чёрный экран iPhone: как восстановить устройство