sudo apt install zsh
Выбираем удобный вариант, в зависимости от установленного в системе ПО:
# Curl sh -c "$(curl -fsSL https://raw.github.com/ohmyzsh/ohmyzsh/master/tools/install.sh)" # Wget sh -c "$(wget https://raw.github.com/ohmyzsh/ohmyzsh/master/tools/install.sh -O -)"
Достаточно выполнить команду для текущего пользователя:
chsh -s $(which zsh)
Для включения популярной темы agnoster нужно открыть файл ~/.zshrc, найти строку ZSH_THEME=«robbyrussell» и заменить стандартную тему на нужную, в моем случае agnoster, итого получается ZSH_THEME=«agnoster». Не забываем про
source ~/.zshrc
Примечание: если при смене темы получаем уведомление «zsh | (anon):12: character not in range» - это значит что в системе нет поддержки локали en_US.UTF-8
Лечится довольно просто, но зависит от текущей установленной системы.
1-й способ (debian container):
locale-gen
2-й способ (если в системе вообще нет пакета):
apt-get install -y language-pack-en && update-locale
Если хочется чего-то иного, можно найти много тем на любой вкус:
На вкус и цвет все разные, но самые удобные на мой взгляд это agnoster, powerlevel10k
Установка powerlevel10k:
git clone https://github.com/romkatv/powerlevel10k.git $ZSH_CUSTOM/themes/powerlevel10k
Изменить тему:
ZSH_THEME="powerlevel10k/powerlevel10k"
Конфигурация:
p10k configure
Если нет иконок Git или нету «уголков» в строке навигации, то вам нужно поставить дополнительные шрифты. Большинство тем требует установки данных шрифтов, они никак не помешают, но будет работать как нужно. Если всё хорошо и косяков нет - ставить не нужно.
Примечание: Если вы работаете в Windows, шрифты так же необходимо поставить.
sudo apt install fonts-powerline
или
git clone https://github.com/powerline/fonts.git cd fonts ./install.sh cd .. rm -rf fonts
Мне нравится solarized:
git clone git://github.com/sigurdga/gnome-terminal-colors-solarized.git ~/.solarized cd ~/.solarized ./install.sh
Выбираем пункт 1 (dark theme). Затем выбираем 1 для загрузки dircolors-solarized. После установки редактируем .zshrc и добавляем строку:
eval `dircolors ~/.dir_colors/dircolors`
Основной сайт с плагинами: https://github.com/ohmyzsh/ohmyzsh/wiki/Plugins
И еще много всего тут: https://github.com/unixorn/awesome-zsh-plugins
Как может выглядеть секция с подключенными плагинами:
plugins=( git colored-man-pages docker ansible zsh-autosuggestions kubectl )
Источник: https://kubernetes.io/docs/tasks/tools/install-kubectl/#enabling-shell-autocompletion
Добавляем строку в файл .zshrc:
source <(kubectl completion zsh)
Если нужен алиас для команды kubectl, добавляем:
echo 'alias k=kubectl' >>~/.zshrc echo 'complete -F __start_kubectl k' >>~/.zshrc
Работает с историей zsh, очень полезно если периодически набираем длинные команды.
Сайт: https://github.com/zsh-users/zsh-autosuggestions
Установка:
git clone https://github.com/zsh-users/zsh-autosuggestions ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions
plugins=(zsh-autosuggestions)
и перезапускаем сессию
Раскрашивает синтаксис
Сайт: https://github.com/zdharma-continuum/fast-syntax-highlighting
Установка:
git clone https://github.com/zdharma-continuum/fast-syntax-highlighting.git \ ${ZSH_CUSTOM:-$HOME/.oh-my-zsh/custom}/plugins/fast-syntax-highlighting
plugins=(fast-syntax-highlighting)
и перезапускаем сессию
Нечеткий поиск по всему: от истории до каталогов и ключей командной строки для утилит.
Сайт: https://github.com/Aloxaf/fzf-tab
Примечания к установке:
Установка:
git clone https://github.com/Aloxaf/fzf-tab ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/fzf-tab
plugins=(fzf-tab)
и перезапускаем сессию
Использование: как обычно нажимаем Tab при вводе команд и аргументов
Еще один вариант расширенного поиска по истории, не стоит использовать совместно с fzf-tab
Сайт: https://github.com/junegunn/fzf
Установка:
git clone --depth 1 https://github.com/junegunn/fzf.git ~/.fzf; ~/.fzf/install
Все настройки хранятся в файле ~/.zshrc
uninstall_oh_my_zsh sudo apt uninstall zsh