В течении рабочего дня несколько часов я провожу в терминале. И мне важно удобство при каждодневном использовании такого инструмента. Для себя я нашел отличную связку из терминала Cmder и оболочки Zsh.
Zsh и Oh My Zsh
Zsh (Z shell) — это командная оболочка Unix, альтернативная стандартному Bash. По-сути, Zsh является расширенным Bash с большим количеством улучшений, как например, автодополнение команд из истории, возможность минимизации ввода за счет использования псевдонимов, промпты с сопроводительной информацией.
Несмотря на то, что Zsh такая мощная и расширяемая оболочка, в то же время, ее конфигурация может вызвать некоторые затруднения. Поэтому я предпочитаю использовать Oh My Zsh — фреймворк для управления конфигурацией Zsh. Он предоставляет кучу полезных плагинов и тем оформления для оболочки Zsh.
Установка Zsh
Приступим к установке! Запускаем терминал, устанавливаем Zsh и устанавливаем его как оболочку по-умолчанию:
sudo apt install -y zsh chsh -s $(which zsh)
После перезапуска терминала мы попадем в оболочку Zsh, которая сначала нам предложит произвести ее настройку. Выбираем параметры по-умолчанию и переходим к установке Oh My Zsh.
Установка Oh My Zsh
Выполним команду, которая скачает и запустит скрипт-установщик Oh My Zsh:
sh -c "$(curl -fsSL https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"
Открываем в редакторе (vim / nano) конфиг Zsh (~/.zshrc
) и донастраиваем. Раскомментируем первый стейтмент, чтобы работали команды из Bash:
# If you come from bash you might have to change your $PATH. export PATH=$HOME/bin:/usr/local/bin:$PATH
Выбираем тему оформления, мне нравится Agnoster, и прописываем ее в переменной окружения $ZSH_THEME
:
# Set name of the theme to load --- if set to "random", it will # load a random theme each time oh-my-zsh is loaded, in which case, # to know which specific one was loaded, run: echo $RANDOM_THEME # See https://github.com/robbyrussell/oh-my-zsh/wiki/Themes ZSH_THEME="agnoster" export DEFAULT_USER="$(whoami)"
Примечание. Для темы Agnoster чтобы скрыть имя пользователя из левого промпта, я устанавливаю переменную $DEFAULT_USER
равную имени текущего пользователя.
Указываем список плагинов, которыми мы хотим пользоваться. Полный перечень доступных плагинов можно найти в документации. У меня он выглядит таким образом:
# Which plugins would you like to load? # Standard plugins can be found in ~/.oh-my-zsh/plugins/* # Custom plugins may be added to ~/.oh-my-zsh/custom/plugins/ # Example format: plugins=(rails git textmate ruby lighthouse) # Add wisely, as too many plugins slow down shell startup. plugins=( git node npm oc docker debian Composer sudo zsh-autosuggestions )
Выполнив все это в стандартном терминале WSL мы получим такой результат…

Мда уж, далеко от идеала: ужасный черный фон, непонятные знаки вопроса. Все дело в стандартном эмуляторе терминала, поэтому установим альтернативный эмулятор Cmder.
Установка и настройка Cmder
На текущий момент, стандартный эмулятор практически невозможно нормально настроить и просто использовать. Я не хочу выжигать глаза, смотря в окошко с пиксельными шрифтами и темой оформления а-ля «матрица». Microsoft на Build 2019 только анонсировал свое новое приложение терминала, а пока мы будем использовать альтернативный эмулятор — Cmder.
Cmder — это портативный эмулятор консоли для Windows на основе ConEmu. Он поддерживает работу со вкладками, разделение окна, темы оформления, кастомные шрифты, запуск различных облочек (cmd, PowerShell, wsl). Скачайте Mini версию с официального сайта (нам нужен только эмулятор без стороннего софта), распакуйте и разместите где вам удобно в системе. Вы так же можете закрепить приложение на начальном экране и настроить горячие клавиши для запуска:

Прежде чем приступить к настройке оболочки Cmder, рекомендую установить шрифт Fira Code и пропатченые шрифты Powerline для использования совместно с темой Agnoster.
Fira Code — шикарный моноширинный шрифт с поддержкой лигатур, будет отлично смотреться в вашем редакторе и терминале.
Пропатченые шрифты Powerline добавляют недостающих знаков в уже знакомые вам гарнитуры, как Ubuntu Mono, Roboto Mono, Anonymous Pro и др. Для их установки выполните следующие шаги:
- Скачайте репозиторий
powerline/fonts
; - Распакуйте скаченный архив;
- Откройте PowerShell от имени администратора;
- Установите политику исполнения командой
Set-ExecutionPolicy Bypass
; - Перейдите в папку с распакованными шрифтами и выполните скрипт
.\install.ps1
; - После этого можно вернуть политику запуска по-умолчанию
Set-ExecutionPolicy Default
и удалить папку и архив.
Теперь мы готовы к настройке Cmder:
- На вкладке
Startup -> Tasks
выбираем WSL, как базовый шелл; - На вкладке
General
выбираем шелл, запускаемый при старте, конечно, WSL; - На той же вкладке
General
выбираем цветовую схему. Я использую Solarized; - На вкладке
General -> Fonts
выбираем шрифт. Я используюFira Code
; - На вкладке
General -> Tab bar
отключаем галку Tabs on bottom, чтобы табы показывались сверху.
Примечание. Если при запуске консоли WSL::bash
у вас запускается bash вместо zsh, попробуйте скопировать существующий таск на вкладке Startup -> Tasks
, и заменить скрипт на:
set "PATH=%ConEmuBaseDirShort%\wsl;%PATH%" & %ConEmuBaseDirShort%\conemu-cyg-64.exe --wsl -cur_console:p -C ~
После всех манипуляций мы должны получить такую симпатичную консоль:

Вместо заключения
Спасибо, что дочитали до конца. Надеюсь, информация из данного поста была вам полезна. До встречи в следующих постах серии.