ZSH + Oh My Zsh + Powerlevel10k в WSL: настройка с нуля
Bash устраивает большинство, пока не попробуешь нормальное автодополнение и подсветку синтаксиса в реальном времени. После ZSH с нужными плагинами возвращаться к голому Bash уже не хочется.
Разбираю установку под WSL Ubuntu — от нуля до рабочего терминала.
Устанавливаем ZSH
Сначала обновляем пакеты:
sudo apt update && sudo apt upgrade -y
Устанавливаем ZSH и нужные пакеты:
sudo apt install zsh git fonts-font-awesome -y
Запускаем первый раз и проходим начальную конфигурацию:
zsh
Делаем ZSH оболочкой по умолчанию:
chsh -s $(which zsh)
Если chsh не даёт результата (в WSL иногда так), добавляем в ~/.bashrc:
if test -t 1; then
exec zsh
fi
Powerline-шрифты
Темы ZSH используют специальные символы — без нужных шрифтов в терминале будут кракозябры вместо иконок. Ставится на Windows, в PowerShell от администратора:
git clone https://github.com/powerline/fonts.git
cd fonts
.\install.ps1
После установки выбираешь один из Powerline-шрифтов в настройках Windows Terminal.
Oh My Zsh
Фреймворк для управления плагинами и темами. Без него настройка занимает в разы больше времени:
sh -c "$(wget https://raw.github.com/ohmyzsh/ohmyzsh/master/tools/install.sh -O -)"
Плагины
Два плагина, которые меняют работу в терминале больше всего:
Autosuggestions — предлагает команды из истории по мере набора:
git clone https://github.com/zsh-users/zsh-autosuggestions \
${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions
Syntax Highlighting — подсвечивает команды: зелёным валидные, красным — нет:
git clone https://github.com/zsh-users/zsh-syntax-highlighting.git \
${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting
Auto-update — обновляет Oh My Zsh автоматически:
git clone https://github.com/Pilaton/OhMyZsh-full-autoupdate.git \
${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/ohmyzsh-full-autoupdate
Открываешь ~/.zshrc и добавляешь плагины в список:
plugins=(
command-not-found
extract
docker
git
github
gitignore
history-substring-search
node
npm
nvm
yarn
volta
vscode
sudo
zsh-autosuggestions
zsh-syntax-highlighting
)

Применяешь изменения:
source ~/.zshrc
Тема Powerlevel10k
Одна из лучших тем для ZSH — информативный промпт с веткой git, статусом команды, временем выполнения и многим другим:
git clone --depth=1 https://github.com/romkatv/powerlevel10k.git \
${ZSH_CUSTOM:-$HOME/.oh-my-zsh/custom}/themes/powerlevel10k
В ~/.zshrc меняешь тему:
ZSH_THEME="powerlevel10k/powerlevel10k"
Перезапускаешь ZSH — запустится мастер настройки промпта. Он задаст несколько вопросов про внешний вид и сконфигурирует всё автоматически. Переделать в любой момент:
p10k configure

Автоматическая установка
Если не хочешь делать всё руками — я собрал скрипт, который устанавливает ZSH с плагинами и Powerlevel10k одной командой: Install-ZSH-in-WSL-Ubuntu-Linux.
Если настраиваешь рабочее окружение для команды или нужна помощь с автоматизацией конфигурации — пиши на [email protected] или заходи на 1it.pro.