Введение / Зачем это нужно
Zsh (Z shell) — это современная, расширяемая оболочка командной строки, которая предлагает мощные возможности по сравнению с стандартным Bash: улучшенное автодополнение, тему оформления, плагины и более удобную навигацию по истории. Установка Zsh с менеджером конфигураций Oh My Zsh превратит ваш терминал в продуктивную среду для разработки и администрирования. После выполнения этого гайда вы получите:
- Быстрое автодополнение команд, путей и аргументов.
- Цветовое выделение синтаксиса в реальном времени.
- Интеграцию с Git (показ ветки, статуса).
- Готовые плагины для Docker, Kubernetes, Python и других инструментов.
- Красивые и информативные темы оформления.
Требования / Подготовка
Перед началом убедитесь, что:
- У вас есть доступ к терминалу Linux с правами sudo (для установки пакетов).
- Дистрибутив поддерживает пакетный менеджер (
apt,dnf,pacmanи т.д.). - Вы знакомы с базовыми командами (
cd,nano/vim,git). - Рекомендуется: создайте резервную копию текущего файла
~/.bashrc, если хотите сохранить настройки Bash.
Шаг 1: Установите Zsh
Zsh доступен в репозиториях всех популярных дистрибутивов. Выберите команду для вашей системы:
Ubuntu/Debian:
sudo apt update && sudo apt install zsh -y
Fedora/RHEL/CentOS:
sudo dnf install zsh -y
Arch Linux:
sudo pacman -S zsh
openSUSE:
sudo zypper install zsh
После установки проверьте версию:
zsh --version
Ожидаемый вывод: zsh 5.9 (или новее).
Шаг 2: Сделайте Zsh оболочкой по умолчанию
Чтобы Zsh запускалась при каждом открытии терминала, измените оболочку для текущего пользователя:
chsh -s $(which zsh)
⚠️ Важно:
which zshвозвращает путь к исполняемому файлу (обычно/usr/bin/zsh). Командаchshтребует ввода пароля.
Проверка: Закройте и откройте терминал заново или выполните:
echo $SHELL
Вывод должен быть: /usr/bin/zsh.
Шаг 3: Установите Oh My Zsh (опционально, но рекомендуется)
Oh My Zsh — это фреймворк для управления конфигурацией Zsh. Он автоматически устанавливает плагины и темы.
sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
Процесс:
- Скрипт клонирует репозиторий в
~/.oh-my-zsh. - Создаст резервную копию вашего текущего
~/.zshrc(если есть) и запишет базовый конфиг. - Предложит изменить оболочку на Zsh (если вы ещё не сделали этого).
💡 Совет: Если вы уже установили Zsh и сделали её оболочкой по умолчанию, скрипт просто настроит
~/.zshrc.
Шаг 4: Настройте тему оформления
Тема определяет внешний вид приглашения командной строки (prompt). Популярные варианты:
robbyrussell(по умолчанию) — минималистичная, показывает Git-статус.agnoster— информативная, требует шрифт с поддержкой Powerline.avit— компактная, показывает время и путь.
Откройте ~/.zshshrc в редакторе (например, nano ~/.zshrc) и найдите строку:
ZSH_THEME="robbyrussell"
Измените значение на желаемую тему, например:
ZSH_THEME="agnoster"
Список всех встроенных тем: ~/.oh-my-zsh/themes/.
Установка шрифта для тем Powerline (если нужно)
Темы вроде agnoster используют специальные символы. Установите шрифт Nerd Fonts:
Ubuntu/Debian:
sudo apt install fonts-powerline -y
Fedora:
sudo dnf install powerline-fonts -y
Затем настройте терминал (например, GNOME Terminal) на использование шрифта DejaVu Sans Mono for Powerline или FiraCode Nerd Font.
Шаг 5: Добавьте плагины для расширения функциональности
Плагины Oh My Zsh добавляют команды и автодополнение для конкретных технологий. В том же файле ~/.zshrc найдите массив plugins и добавьте нужные:
plugins=(
git
docker
kubectl
python
pip
sudo
z
history-substring-search
syntax-highlighting
)
Описание ключевых плагинов:
git— сокращения дляgit(gco=git checkout,gcm=git commit).docker/kubectl— автодополнение для контейнеров и Kubernetes.z— быстрая навигация по часто используемым директориям (z <папка>).history-substring-search— поиск по истории команд (введите часть команды и нажмите↑/↓).syntax-highlighting— подсветка синтаксиса при вводе (ошибки красным, корректные — зелёным).
⚠️ Важно: Плагин
syntax-highlightingдолжен быть последним в списке. Oh My Zsh автоматически подключает его, если он установлен.
Шаг 6: Примените изменения и проверьте работу
После редактирования ~/.zshrc выполните:
source ~/.zshrc
Или перезапустите терминал.
Что проверить:
- Тема: Приглашение командной строки изменилось (показывает ветку Git, если вы в репозитории).
- Автодополнение: Введите
dockerи нажмитеTab— должны появиться подкоманды. - Плагины:
z Documents— перейдёт в папкуDocuments.git status→ можно сократить доgst.
- Подсветка синтаксиса: Введите
ls /nonexistent— путь должен подсветиться красным.
Проверка результата
Успешная настройка подтверждается:
- Приглашение командной строки отображает информацию (ветка Git, путь, время — в зависимости от темы).
- Автодополнение работает без задержек.
- Плагины добавляют сокращения и команды.
- Нет ошибок при запуске (сообщения вида
zsh: command not found: ...).
Дополнительно проверьте:
echo $ZSH_VERSION # Должна показать версию Zsh
echo $ZSH # Должна показать путь к Oh My Zsh (~/.oh-my-zsh)
Возможные проблемы
Ошибка: zsh: command not found: ... после установки плагина
Причина: Плагин не загружен или не установлен. Решение:
- Убедитесь, что имя плагина написано верно в
~/.zshrc. - Проверьте, что плагин существует в
~/.oh-my-zsh/plugins/. - Перезагрузите конфиг:
source ~/.zshrc.
Тема отображается некорректно (кракозябры, пропущенные символы)
Причина: Шрифт не поддерживает Powerline-символы. Решение: Установите Nerd Font или Powerline Fonts и настройте терминал на его использование.
Zsh не стала оболочкой по умолчанию после chsh
Причина: Не перезашли в терминал или путь к Zsh неверный. Решение:
- Проверьте путь:
which zsh(обычно/usr/bin/zsh). - Перезайдите в учётную запись или перезагрузитесь.
- Проверьте:
echo $SHELL.
Медленная загрузка Zsh (задержка >1 сек)
Причина: Слишком много плагинов или тяжёлая тема. Решение:
- Упростите тему (выберите
robbyrussell). - Уменьшите список плагинов.
- Отключите тяжёлые плагины (например,
history-substring-searchможет замедлять поиск).
Конфликт с другими менеджерами конфигураций (например, Prezto)
Причина: Два фреймворка управляют ~/.zshrc.
Решение: Удалите один из них. Для Oh My Zsh: удалите папку ~/.oh-my-zsh и создайте чистый ~/.zshrc вручную.
rm -rf ~/.oh-my-zsh
echo "export ZSH=\"\$HOME/.oh-my-zsh\"" > ~/.zshrc # Пример минимального конфига