Установка современной командной оболочки Zsh в Ubuntu

Z shell, zsh — является одной из современных командных оболочек UNIX, использующаяся непосредственно как интерактивная оболочка, либо как скриптовый интерпретатор. Zsh является расширенным bourne shell с большим количеством улучшений.

Пример вида командной оболочки zsh

Особенности

Некоторые полезные особенности:

  • программируемое автодополнение, которое помогает пользователям вводить как команды, так и их аргументы, со встроенной поддержкой нескольких сотен команд;
  • разделяет историю команд между всеми запущенными экземплярами оболочки;
  • расширенное дополнение названий файлов, что позволяет указать файл без необходимости запускать внешние программы, наподобие find;
  • расширенная поддержка переменных и массивов;
  • редактирование многострочных команд в едином буфере;
  • коррекция опечаток;
  • имеет различные режимы совместимости (то есть, вы можете использовать zsh вместо bourne shell при запуске, как /bin/sh);
  • модифицируемые приглашения (prompts), включающие возможность расположить приглашение справа и настроить автоскрытие при наборе длинных команд.

Установка и настройка Z-shell (Oh My Zsh) в Ubuntu

Обновляем пакеты

sudo apt update

Установливаем необходимые пакеты (ZSH, powerline и powerline шрифты)

sudo apt install zsh
sudo apt install powerline fonts-powerline

Клонируем репозиторий Oh My Zsh

git clone https://github.com/robbyrussell/oh-my-zsh.git ~/.oh-my-zsh

Создаем новый zsh конфигурационный файл

cp ~/.oh-my-zsh/templates/zshrc.zsh-template ~/.zshrc

С помощью редактора nano открываем файл .zshrc для того, чтобы выбраться для zsh терминала тему оформления

nano ~/.zshrc

Найдите строку ZSH_THEME="robbyrussell" замените тему robbyrussell на agnoster. (CTRL+X затем Enter для сохранения)

ZSH_THEME="agnoster"

Просмотреть список тем и выбрать более подхлдящую можно на странице https://github.com/robbyrussell/oh-my-zsh/wiki/Themes

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

Установка подсветки синтаксиса Oh My Zsh

Клонируем репозиторий ZSH Syntax Highlighting

git clone https://github.com/zsh-users/zsh-syntax-highlighting.git "$HOME/.zsh-syntax-highlighting" --depth 1

Добавляем syntax-highlighting в файл конфигурации .zshrc

echo "source $HOME/.zsh-syntax-highlighting/zsh-syntax-highlighting.zsh" >> "$HOME/.zshrc"

Устанавливаем плагин автодополнения для zsh

Клонируем репозиторий плагина zsh-autosuggestions

git clone https://github.com/zsh-users/zsh-autosuggestions ~/.oh-my-zsh/custom/plugins/zsh-autosuggestions

Добавляем плагин:

  1. Открываем ~/.zshrc
    nano ~/.zshrc
    
  2. Ищем строку: plugins=(git) и придаём ей следующий вид:
    plugins=(git zsh-autosuggestions)
    
  3. Сохраняем
  4. Обновляем конфиг:
    source ~/.zshrc
    

Устанавливаем командную оболочку по умолчанию

Чтобы выбрать zsh командной оболочкой по умолчанию при загрузке системы, нужно выполнить команду

chsh -s /bin/zsh

Если нужно вернуть bash как командную оболочку по умолчанию обратно, выполняем команду

chsh -s /bin/bash

Обновление и удаление oh-my-zsh

Подробная информация тут https://github.com/robbyrussell/oh-my-zsh#manual-updates

cd .oh-my-zsh
upgrade_oh_my_zsh