Z-shell (или Zsh) - это интерактивная оболочка для операционных систем на базе ядра Linux. Даже если вы начинающий пользователь, скорее всего, вы уже несколько раз открывали терминал и выполняли там какие-либо команды. То место, где вы это делали называется командная оболочка. Оболочка, используемая по умолчанию в большинстве дистрибутивов Linux называется Bash.
Оболочка Zsh по своей сути такая же как и Bash, только намного интереснее. Она поддерживает интерактивное автодополнение по Tab, автоматический поиск файлов, интегрированные регулярные выражения, а также красивые темы. В этой статье мы рассмотрим как установить и настроить Zsh.
Содержание статьи
Установка Zsh
Для установки Zsh в Ubuntu выполните такую команду:
sudo apt install zsh
Чтобы установить Zsh в Fedora или CentOS используйте пакетный менеджер dnf:
sudo dnf install zsh
После этого вы можете запустить командную оболочку.
Настройка Zsh
Для запуска командной оболочки выполните такую команду:
zsh
При первом запуске Zsh предложит вам настроить вашу оболочку. Здесь вам нужно нажать клавишу 1 чтобы попасть в меню настройки:
1. Настройка истории
В этом меню давайте начнём с первого пункта. Там находятся настройки истории команд. Нажмите 1, затем, чтобы изменить количество команд, которые будут хранится в истории нажмите 3 (Number of lines of history to save to $HISTFILE) и введите нужное число:
Например, я увеличил количество хранимых строк до 5000. Чтобы вернуться в главное меню нажмите 0 (Remember changes and return to main menu).
2. Автодополнение
Дальше надо настроить автодополнение. Здесь можно выбрать пункт 1 чтобы оставить все настройки по умолчанию - Turn on completion with default options:
3. Раскладка клавиатуры
В третьем пункте настроек можно изменить как будут обрабатываться нажатия клавиш клавиатуры во время набора и редактирования команд. По умолчанию используется стиль Emacs, однако, вы можете включить стиль Vim если вы используете этот редактор. Для этого сначала нажмите 3, затем 1 для редактирования раскладки и выберите v для Vim:
4. Другие опции
В четвёртом пункте собраны другие опции оболочки. Их можно включить или отключить:
- Change directory given just path - менять директорию если вы введете в терминале путь к не исполняемому файлу;
- Use additional pattern matching features - разрешить использовать дополнительные символы при составлении шаблонов поиска совпадений, сюда входят символы #, ~ и ^, кроме стандартных * и ?;
- Unmatched patterns cause an error - выдавать ошибку если шаблон не совпадает;
- Beep on errors - сигнал при ошибке;
- Immediately report changes in background job status - сообщать об изменении статуса фоновых задач.
Чтобы активировать опцию нажмите её цифру, а затем нажмите s (set), для деактивации нажмите u (unset).
5. Сохранение настроек
Когда завершите, возвращайтесь в главное меню. Там, для сохранения всех изменений нажмите 0. Утилита предупредит, что в конфигурационный файл были добавлены строки настройки и редактировать их не стоит, можно редактировать только то, что до или после них. Если же вы захотите исправить что-то в них, снова запустите команду zsh-newuser-install.
После завершения настройки вы попадёте в оболочку.
6. Приглашение оболочки
Наверное, визитная карточка любой оболочки - это приглашение ввода. Именно его мы постоянно видим во время работы с оболочкой. По умолчанию приглашение выглядит слишком просто. Шаблон основного приглашения находится в переменной $PS1 или $PROMPT. Это приглашение ввода показывается при вводе любой команды и его интереснее всего настроить. Доступны такие переменные:
- %m - имя хоста;
- %n - имя пользователя;
- %? - код возврата последней команды;
- %d - текущая директория;
Кроме того, здесь поддерживаются различные цвета. Цвет может быть задан для фона или для текста. Следовательно синтаксис установки цвета такой:
%{$назначение[цвет]%}
В качестве назначения можно использовать fg, fg_bold или bg. А в качестве цвета:
- white - белый;
- black - чёрный;
- green - зеленый;
- cyan - фиолетовый;
- red - красный;
- yellow - желтый;
- magenta - оранжевый.
Для сброса цвета используйте конструкцию %{$reset_color%}. Дальше можно собрать своё приглашение ввода, например:
Для того чтобы это заработало в файл ~/.zshrc надо добавить не только эту строчку, но и следующую:
В результате вы получите такое приглашение ввода:
7. Установка oh my zsh
Если всего этого вам мало, то можно установить скрипт oh my zsh, который реализует множество дополнительных возможностей в zsh. Тут можно выбирать различные темы приглашения, добавлять плагины, например, git, добавлены различные возможности автодополнения и многое другое. Для установки этого скрипта выполните:
curl -L https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh | sh
Скрипт установит все плагины и темы oh my zsh в вашу домашнюю папку, а также полностью заменит файл .zshrc на свой:
8. Настройка темы
Одна из самых интересных возможностей oh my zsh - темы. Темы определяют цвета текста, внешний вид приглашения и многое другое. Все доступные темы можно найти в папке ~/.oh-my-zsh/themes:
Посмотреть как выглядит та или иная тема можно на этой странице. Чтобы выбрать тему откройте файл ~/.zshrc и пропишите имя темы в строчке ZSH_THEME. Именно так выполняется настройка oh my zsh. Мне, например, нравиться тема agnoster, поэтому:
vi ~/.zshrc
Затем можно перезапустить zsh:
Но для работы конкретно этой темы надо установить пакет шрифтов:
sudo apt install fonts-powerline
9. Оболочка по умолчанию
Когда вы завершите с настройкой останется только установить zsh как оболочку по умолчанию для вашего пользователя. Для этого используйте команду chsh:
chsh
Утилита попросит пароль, а затем путь к исполняемому файлу оболочки, которую вы хотите использовать:
После этого, для текущего пользователя будет использоваться оболочка zsh по умолчанию.
Выводы
В этой небольшой статье мы рассмотрели два способа настроить zsh для личного использования. Это отличная оболочка, которая может предложить вам намного больше, чем Bash. А какая командная оболочка нравиться больше всего вам? Напишите в комментариях!
Статьи интересные, но проверяйте текст на ошибки. В этой статье я насчитал 43 ошибки. Жесть 🙂
oh my zsh очень клевый, не знаете как делают что бы в начале пути была иконка ОС, видел в одном видео у чувака была иконка яблоко, в начале строки терминала
Работал все время на bash, решил попробовать zsh и фрейм oh-my-zsh. Но столкнулся с проблемой, что не работают некоторые команды, которые работали из под bash, например: nvm, node, npm. Я так понимаю дело в PATH, но так и не нашел годной статьи по поводу настройки или миграции настроек PATH из bash в zsh. Может кто подскажет?
Приветствую. Это мой конфиг. NPM у меня завелся после установки nodejs без бубна.
export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm
[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion" # This loads nvm bash_completion
export PATH=$PATH:$HOME/.config/composer/vendor/bin
Можно еще копнуть в эту сторону:
https://github.com/lukechilds/zsh-nvm
У меня не сработала настройка, чтобы запускалась по-умолчанию
нашел такое решение:
sudo nano ~/.bashrc
потом добавить команду в верхнюю часть файла .bashrc
exec zsh
Спасибо выручил, та же проблема была
Bash тоже поддерживает интерактивное автодополнение по Tab, apt install bash-completion.
Эта тема такая
В статье говорится про fonts-powerline но на fedora поставил так:
sudo dnf install powerline-fonts
спасибо огромное