Введение
Работа в терминале macOS становится более продуктивной, когда оболочка соответствует вашим привычкам. ZSH — это современная, богатая функциями оболочка, которая уже установлена в macOS по умолчанию, но выглядит и работает по умолчанию довольно просто. В этом гайде мы превратим её в мощный инструмент, настроив тему, автодополнение, пользовательские функции и поведение истории команд. После выполнения инструкции вы получите персонализированную ZSH, которая ускорит повседневные задачи и сделает работу в терминале приятной.
Требования / Подготовка
- macOS Ventura 13 или macOS Monterey 12 (ZSH уже предустановлена).
- Доступ к Terminal (все macOS поставляется с ним).
- Базовые знания работы с терминалами и редактированием текстовых файлов.
- Необязательно: доступ в интернет для клонирования тем и плагинов.
Пошаговая инструкция
Шаг 1: Установите Oh My Zsh
Фреймворк Oh My Zsh упрощает добавление тем, плагинов и настраиваемых функций.
sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
После установки перезапустите Terminal, чтобы Oh My Zsh был загружен.
💡 Совет: Если вы хотите избежать интерактивного мастера, добавьте
--unattendedв конце команды.
Шаг 2: Настройте тему и автодополнение
Откройте конфигурационный файл .zshrc. Мы используем nano для быстрого редактирования, но можете использовать любой текстовый редактор (vim, code и т.д.).
nano ~/.zshrc
Добавьте следующие строки в начало файла (после возможных комментариев):
# Включение автодополнения
autoload -Uz compinit && compinit
# Настройка меню автодополнения
zstyle ':completion:*' menu select
# Выбор темы (пример: robbyrussell)
ZSH_THEME="robbyrussell"
Сохраните изменения (Ctrl+O, затем Enter) и выйдите (Ctrl+X).
Шаг 3: Добавьте пользовательские функции и алиасы
Пользовательские алиасы и функции делают типичные команды более удобными. Добавьте их в конец ~/.zshrc.
cat >> ~/.zshrc << 'EOF'
# Полезные алиасы
alias ll='ls -l'
alias la='ls -la'
alias grep='grep --color=auto'
alias rm='rm -i'
# Простая функция для отображения времени выполнения последней команды
function ltime {
time $@
}
EOF
Перезагрузите оболочку, чтобы применить их:
source ~/.zshrc
Шаг 4: Настройте автозавершение для приложений macOS
ZSH поставляется с мощным автодополнением, но для приложений macOS можно улучшить его работу:
# Разрешить автодополнение для команд macOS
zstyle ':completion:*' completer _expand _complete _correct _approximate
# Показывать подсказки в виде меню
zstyle ':completion:*' menu select=long
Сохраните файл (Ctrl+O, Enter) и выйдите (Ctrl+X).
Шаг 5: Оптимизируйте работу истории команд
ZSH может эффективно управлять историей команд и запоминать больше команд.
Добавьте эти настройки в ~/.zshrc:
export HISTSIZE=10000 # Количество команд, сохраняемых в памяти
export SAVEHIST=10000 # Количество команд, сохраняемых в файле
setopt hist_ignore_all_dupes # Не сохранять дублирующиеся команды
setopt share_history # Общие команды среди сеансов
setopt hist_reduce_blanks # Игнорировать лишние пробелы
Перезапустите Terminal (source ~/.zshrc).
Шаг 6: Проверьте и перезапустите Terminal
После выполнения всех шагов проверьте, что ZSH загружается правильно:
zsh --version
echo $ZSH_THEME
Если всё отображается ожидаемо, вы готовы к работе.
Проверка результата
- Тема – Ваша строка состояния должна выглядеть как у выбранной темы (например,
robbyrussell). - Автодополнение – Нажмите
Tabпослеgitилиbrew; ZSH должна предлагать доступные варианты. - Алиасы – Введите
llилиla; вы должны увидеть список файлов в форматеls -l. - Функция – Введите
ltime lsи посмотрите на временной вывод.
Если любой из этих элементов не работает, проверьте ~/.zshrc на наличие синтаксических ошибок с помощью zsh -n ~/.zshrc.
Возможные проблемы
- ZSH не загружается: Убедитесь, что оболочка по умолчанию Terminal —
zsh. Вы можете изменить её вSystem Settings → Terminal → Shell. - Автодополнение не отображается: Проверьте, что
autoload -Uz compinit && compinitнаходится в верхней части~/.zshrcи что файл был перезагружен. - Темы не применяются: Переименуйте
~/.zshrc(например,~/.zshrc.bak), чтобы вернуться к стандартной конфигурации, установите новую тему, а затем восстановите файл. - История команд не сохраняется: Убедитесь, что
~/.zsh_historyдоступен для записи (chmod 644 ~/.zsh_history). Также проверьтеSAVEHISTиHISTSIZE. - Пользовательские функции не доступны: Убедитесь, что они определены после
compinit, иначе ZSH может не распознать их.
Теперь у вас есть полностью настроенная ZSH, которая отражает ваш стиль работы в macOS. Не стесняйтесь экспериментировать с дополнительными плагинами (zsh-autosuggestions, zsh-syntax-highlighting) или темами (spaceship-prompt, powerlevel10k), чтобы довести своё окружение до совершенства.