
Сделайте так, чтобы ваш терминал Ubuntu выглядел *блистательно*
Вы когда-нибудь задумывались, каково это не иметь скучный и пресный терминал? Что ж, удивляться уже нечем. Сегодня мы рассмотрим, как установить Oh My Zsh для Ubuntu. Я обнаружил, что видеоруководства на YouTube с участием Oh My Zsh и Ubuntu несколько ограничены (большинство руководств находятся на MacOS с использованием iTerm2, который является эксклюзивным эмулятором терминала для Mac), поэтому я создаю это руководство, чтобы заполнить эту пустоту.
Если вы хотите узнать, как установить Ubuntu через виртуальную машину на свой компьютер с Windows, ознакомьтесь с моей предыдущей записью в блоге здесь. Вам также понадобится Nerd Font для всех причудливых символов и глифов, которые использует Oh My Zsh, и вы можете узнать, как установить его в разделе Nerd Font моего предыдущего поста в блоге. Когда у вас есть Ubuntu и Nerd Font в вашем терминале, мы можем начать!
Часть 1: Установка Zsh
Сначала нам нужно установить Zsh или Z shell. Откройте свой скучно выглядящий терминал GNOME с помощью CTRL + ALT + T и выполните
sudo apt install zsh
После установки оболочки Z нам нужно изменить оболочку по умолчанию с bash на Zsh. Вы можете подтвердить, что bash является текущей оболочкой, выполнив
echo $0
который должен вывести bash. Затем выполните команду chsh (изменить оболочку), которая запустит короткий интерфейс командной строки, запрашивающий ваш пароль, а также новый путь к оболочке, на которую вы хотите перейти. Просто введите /bin/zsh. Теперь выполнение echo $0 не приведет к выводу zsh, как вы могли ожидать. Сначала нам нужно выйти из системы и снова войти в нее. Простой способ сделать это - просто запустить
sudo reboot now
в терминале. Как только Ubuntu завершит перезагрузку, снова войдите в систему и откройте другой экземпляр терминала GNOME. На этот раз вы получите запрос на настройку Zsh:

Выберите второй вариант, поэтому просто введите 2, и вы сразу же окажетесь в оболочке Z. Теперь, когда вы выполняете echo $0, на выходе должно быть zsh.
Часть 2: Установка Oh My Zsh
Теперь, когда Zsh установлен, мы можем очень легко установить Oh My Zsh с помощью простой команды curl:
sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
Если у вас нет curl или git, просто установите их с sudo apt install curl или sudo apt install git соответственно. После того, как вы выполните команду curl для установки Oh My Zsh, вы должны увидеть очень красивое название, написанное в ASCII:

Часть 3: Установка Powerlevel10k
Теперь давайте сделаем Oh My Zsh потрясающей с помощью Powerlevel10k, темы Zsh. Все, что нам нужно сделать, это выполнить это
git clone --depth=1 https://github.com/romkatv/powerlevel10k.git ${ZSH_CUSTOM:-$HOME/.oh-my-zsh/custom}/themes/powerlevel10k
а затем добавьте Powerlevel10k в качестве темы Zsh для нашей конфигурации. Для этого нам нужно открыть файл .zhrc в каком-нибудь текстовом редакторе. Если у вас установлен Neovim, просто запустите:
nvim ~/.zshrc
Используйте gedit, если у вас нет Neovim, или просто не стесняйтесь использовать любой текстовый редактор, какой пожелаете.

Вы должны увидеть файл, который выглядит примерно так. Измените ZSH_THEME в строке 11 на "powerlevel10k/powerlevel10k". Если вы используете какой-либо редактор Vim, не забудьте записать свои изменения с помощью :w. Мы захотим закрыть этот терминал и открыть новый, чтобы начать настройку Powerlevel10k, но, поскольку Oh My Zsh все еще работает, просто выполните exit перед закрытием терминала (иначе вы получите предупреждение о процессах, все еще запущенных через терминал, это просто хорошая практика).
Откройте другой терминал с помощью CTRL + ALT + T, и вы увидите мастер настройки Powerlevel10k:

Если значок между двумя стрелками в первом приглашении не полностью напоминает ромб, значит, у вас не установлен Nerd Font. Как упоминалось ранее в этом сообщении блога, у меня есть краткое руководство в этом разделе моей предыдущей статьи.
Мастер настройки Powerlevel10k сначала подтвердит, что символы вашего Nerd Font работают правильно. Просто ответьте y для «да» и n для «нет». После этого мастер настройки начнет запрашивать некоторые визуальные предпочтения того, как вы хотите, чтобы ваша командная строка выглядела. Если вы хотите скопировать настройки, которые у меня есть, просто обратитесь к изображениям ниже (подписи обозначают, какой ввод соответствует этому стилю):















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

Готово! Теперь ваш терминал больше не выглядит таким скучным.

Самое приятное в Powerlevel10k — это простота изменения внешнего вида вашего терминала. Допустим, вы несколько часов проверяли свои первоначальные предпочтения, и что-то в них кажется вам неправильным. Просто запустите
p10k configure
и снова запустится мастер настройки Powerlevel10k. Оттуда вносите любые изменения, которые считаете нужными, пока, наконец, не достигнете того *сверкающего* образа, который вам нужен.
На самом деле я изменил свою конфигурацию Powerlevel10k на полпути к написанию этого… (как вы увидите на оставшихся снимках экрана)
Часть 4: Установка других плагинов
Чтобы сделать наш терминал еще круче, мы собираемся установить несколько плагинов. Два наиболее важных из них, которые приходят на ум, — это подсветка синтаксиса и автоподсказки. Для подсветки синтаксиса мы будем использовать zsh-syntax-highlighting. Чтобы установить его, просто запустите следующее:
git clone https://github.com/zsh-users/zsh-syntax-highlighting.git
echo "source ${(q-)PWD}/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh" >> ${ZDOTDIR:-$HOME}/.zshrc
Теперь плагин подсветки синтаксиса НЕнужно указывать в разделе .zshrc плагинов. Его просто нужно получить, поэтому в предыдущем наборе команд мы использовали echo, чтобы добавить строку в файл .zshrc.
Давайте также установим плагин для автозаполнения, который позволит терминалу предлагать автодополнения на основе нашей истории команд. Для этого функционала мы будем использовать zsh-автопредложения. Давайте работать
git clone https://github.com/zsh-users/zsh-autosuggestions ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions
а затем снова отредактируйте файл .zshrc. Еще раз, я буду использовать nvim ~/.zshrc.

В строке 80 мы хотим добавить только что установленный подключаемый модуль автоподсказки (помните, что в этом фрагменте кода следует НЕ подсвечивать синтаксис). Давайте изменим строку 80, чтобы она выглядела так:
plugins=(git zsh-autosuggestions)
Сохраните изменения, выйдите из любого текстового редактора, который вы используете, а затем запустите
source ~/.zshrc
для компиляции ваших изменений. И теперь у вас должна быть включена подсветка синтаксиса и автоматические предложения для вашего терминала! Если вы хотите завершить самовнушение, которое дает ваш терминал, просто нажмите клавишу со стрелкой вправо.

И еще немного, давайте установим colorls, чтобы мы могли получить действительно красивую команду ls. Вот ссылка на руководство по установке. Во-первых, давайте установим Ruby:
sudo apt-get install ruby-full
Затем давайте установим colorls с Ruby:
sudo gem install colorls
Как только он будет установлен, технически мы можем начать использовать colorls сразу, но явно вводить colorls каждый раз, когда мы хотим получить список наших файлов, не совсем интуитивно понятно:

Итак, давайте вернемся к нашему файлу .zshrc и внизу добавим этот псевдоним:
alias ls='colorls'

И теперь выполнение ls должно делать то же самое, что и colorls:

Заключение
Oh My Zsh — замечательный инструмент для настройки вашего терминала. Не ограничивайтесь только теми плагинами, которые я предоставил здесь. Существует множество плагинов, которые вы можете найти для дальнейшей настройки вашего терминала; вот лишь несколько, на которые вы, возможно, захотите взглянуть.
И если вы когда-нибудь запутаетесь в том, какой тип плагина вы должны попробовать в следующий раз, не бойтесь проконсультироваться с YouTube. Несмотря на то, что я упоминал ранее, что учебники Ubuntu + Oh My Zsh были довольно ограниченными, вы можете многому научиться из тех, которые предназначены для других операционных систем (именно так я научился устанавливать плагины). Конечно, обязательно обращайтесь к документации и форумам за дополнительной помощью при настройке подобных вещей. Я обнаружил, что одного учебника никогда не бывает достаточно, чтобы охватить все ошибки или небольшие ошибки, с которыми я сталкиваюсь.
Ну, это все, что у меня есть на сегодня. Получайте удовольствие, совершенствуя свои терминалы!