Настройка Zsh и Oh my Zsh

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%}. Дальше можно собрать своё приглашение ввода, например:

PS1="%{$fg[green]%}%m@%n%{$fg[red]%}$ %{$fg[blue]%}%d %{$fg[yellow]%}>%{$reset_color%}"

Для того чтобы это заработало в файл ~/.zshrc надо добавить не только эту строчку, но и следующую:

autoload -U colors && colors

В результате вы получите такое приглашение ввода:

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_THEME=agnoster

Затем можно перезапустить zsh:

Но для работы конкретно этой темы надо установить пакет шрифтов:

sudo apt install fonts-powerline

9. Оболочка по умолчанию

Когда вы завершите с настройкой останется только установить zsh как оболочку по умолчанию для вашего пользователя. Для этого используйте команду chsh:

chsh

Утилита попросит пароль, а затем путь к исполняемому файлу оболочки, которую вы хотите использовать:

После этого, для текущего пользователя будет использоваться оболочка zsh по умолчанию.

Выводы

В этой небольшой статье мы рассмотрели два способа настроить zsh для личного использования. Это отличная оболочка, которая может предложить вам намного больше, чем Bash. А какая командная оболочка нравиться больше всего вам? Напишите в комментариях!

4 комментария

  1. Аватар Старовер 17 октября, 2020 Ответить
  2. Аватар Mitai 29 октября, 2020 Ответить
  3. Аватар Vict0r 10 ноября, 2020 Ответить
  4. Аватар Александр 18 декабря, 2020 Ответить

Ответить

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам: