zsh

Z-shell (или Zsh) — это интерактивная оболочка для операционных систем на базе ядра Linux.

Даже если вы начинающий пользователь, скорее всего, вы уже несколько раз открывали терминал и выполняли там какие-либо команды.То место, где вы это делали называется командная оболочка.

Оболочка, используемая по умолчанию в большинстве дистрибутивов Linux называется Bash.

Оболочка Zsh по своей сути такая же как и Bash, только намного интереснее.

Она поддерживает интерактивное автодополнение по Tab, автоматический поиск файлов, интегрированные регулярные выражения, а также красивые темы.

В этой статье мы рассмотрим как установить и настроить Zsh.

Установка Zsh

Для установки Zsh выполните такую команду:

для  debian:

apt install wget git zsh zsh-autosuggestions zsh-syntax-highlighting

для arch:

pacman -S wget git zsh zsh-syntax-highlighting zsh-autosuggestions

После этого вы можете запустить командную оболочку.

Настройка Zsh

Для запуска командной оболочки выполните такую команду:

zsh

При первом запуске Zsh предложит вам настроить вашу оболочку. Здесь вам нужно нажать клавишу 1 чтобы попасть в меню настройки:

Настройка истории

В этом меню давайте начнём с первого пункта. Там находятся настройки истории команд. Нажмите 1, затем, чтобы изменить количество команд, которые будут хранится в истории нажмите 3 (Number of lines of history to save to $HISTFILE) и введите нужное число:

Увеличим количество хранимых строк до 5000. Чтобы вернуться в главное меню нажмите 0 (Remember changes and return to main menu).

Автодополнение

Дальше надо настроить автодополнение. Здесь можно выбрать пункт 1 чтобы оставить все настройки по умолчанию — Turn on completion with default options:

Раскладка клавиатуры

В третьем пункте настроек можно изменить как будут обрабатываться нажатия клавиш клавиатуры во время набора и редактирования команд. По умолчанию используется стиль Emacs, однако, вы можете включить стиль Vim если вы используете этот редактор. Для этого сначала нажмите 3, затем 1 для редактирования раскладки и выберите v для Vim:

Другие опции

В четвёртом пункте собраны другие опции оболочки. Их можно включить или отключить:

Чтобы активировать опцию нажмите её цифру, а затем нажмите s (set), для деактивации нажмите u (unset).

Сохранение настроек

Когда завершите, возвращайтесь в главное меню. Там, для сохранения всех изменений нажмите 0. Утилита предупредит, что в конфигурационный файл были добавлены строки настройки и редактировать их не стоит, можно редактировать только то, что до или после них. Если же вы захотите исправить что-то в них, снова запустите команду zsh-newuser-install.

После завершения настройки вы попадёте в оболочку.

Приглашение оболочки

Наверное, визитная карточка любой оболочки — это приглашение ввода. Именно его мы постоянно видим во время работы с оболочкой. По умолчанию приглашение выглядит слишком просто. Шаблон основного приглашения находится в переменной $PS1 или $PROMPT. Это приглашение ввода показывается при вводе любой команды и его интереснее всего настроить. Доступны такие переменные:

Кроме того, здесь поддерживаются различные цвета. Цвет может быть задан для фона или для текста. Следовательно синтаксис установки цвета такой:

%{$назначение[цвет]%}

В качестве назначения можно использовать fgfg_bold или bg. А в качестве цвета:

Для сброса цвета используйте конструкцию %{$reset_color%}. Дальше можно собрать своё приглашение ввода, например:

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

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

autoload -U colors && colors

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

Установка oh my zsh

Если всего этого вам мало, то можно установить скрипт oh my zsh, который реализует множество дополнительных возможностей в zsh. Тут можно выбирать различные темы приглашения, добавлять плагины, например, git, добавлены различные возможности автодополнения и многое другое. Для установки этого скрипта выполните:

sh -c "$(wget https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh -O -)"

Затем загрузите пару плагинов и запустите редактирование файла конфигурации .zshrc того пользователя, под которым сидите:

git clone https://github.com/zsh-users/zsh-syntax-highlighting.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting
git clone https://github.com/zsh-users/zsh-autosuggestions.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions
git clone https://github.com/mroth/evalcache ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/evalcache

Скрипт установит все плагины и темы oh my zsh в вашу домашнюю папку, а также полностью заменит файл .zshrc на свой.

Настройка темы

Одна из самых интересных возможностей oh my zsh — темы. Темы определяют цвета текста, внешний вид приглашения и многое другое. Все доступные темы можно найти в папке ~/.oh-my-zsh/themes:

Посмотреть как выглядит та или иная тема можно на этой странице. Чтобы выбрать тему откройте файл ~/.zshrc и пропишите имя темы в строчке ZSH_THEME. Именно так выполняется настройка oh my zsh. Мне, например, нравиться тема agnoster, поэтому:

vi ~/.zshrc
ZSH_THEME=agnoster

Над строкой «export ZSH=…» добавьте строку, улучшающую отображение цветов в терминале:

export TERM="xterm-256color"

Далее в конце документа найдите блок «plugins=(..)» и допишите внутри названия плагинов, включающих полезные функции (можно просто разделять пробелом):

plugins=(
  evalcache 
  git 
  git-extras 
  debian 
  tmux 
  screen 
  history 
  extract 
  colorize 
  web-search 
  docker 
  zsh-autosuggestions
  zsh-syntax-highlighting
  archlinux
)

После добавьте в самый конец файла две строчки, которые позволят клавишами Home/End перемещать курсор в начало/конец набранных команд:

bindkey "^[[1~" beginning-of-line
bindkey "^[[4~" end-of-line

Сохраните изменения и переподключитесь к консоли по SSH. Теперь:

При желании можете пойти дальше и поставить Powerlevel9k, превращающую консоль в нечто космическое.

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

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

chsh

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

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

 

,