Как установить Oh My Zsh в Ubuntu 22.04 (пошаговый гайд по установке Oh My Zsh)
Z Shell (Zsh) - это интерактивная оболочка Unix, известная как интерпретатор команд и инструмент для написания сценариев оболочки. Она представляет собой усовершенствованную оболочку Bourne с рядом улучшений, вдохновлённых возможностями Bash, ksh и tcsh. У Zsh немало преимуществ, в том числе автодополнение в командной строке, общая история, расширенный глоббинг, интеллектуальное дополнение по клавише Tab, исправление опечаток, а также большая коллекция плагинов и тем.
В этом гайде мы покажем, как установить Oh My Zsh. Также мы рассмотрим, как установить Zsh в Ubuntu 22.04, чтобы вы могли использовать его мощные возможности для более удобной работы в командной строке.
Чем отличаются Zsh и Bash?
И Zsh, и Bash - широко распространённые интерпретаторы командной строки с открытым исходным кодом. Zsh разработан с обратной совместимостью с Bash, и их синтаксис практически идентичен. Это обеспечивает плавный переход между ними, ведь большинство команд и приёмов работы, освоенных в Bash, действуют и в Zsh.
Если сравнивать Zsh и Bash, главное отличие заключается в широких возможностях интерактивной настройки, которые предлагает Zsh. Пользователи могут персонализировать работу с оболочкой, настраивая темы и используя огромную экосистему плагинов Zsh. Эти плагины добавляют множество интерактивных улучшений, которые делают работу удобнее.
Хотя каждое отдельное улучшение может казаться незначительным, совокупный эффект этих настроек быстро выводит вашу продуктивность в командной строке на более высокий уровень.
Предварительные требования
Чтобы установить Zsh и плагин Oh My Zsh, потребуется следующее:
Ubuntu 22.04 или более новая версия, установленная в вашей системе или в VirtualBox.
Права root или sudo (для пользователей без прав root).
Установка Zsh в Ubuntu 22.04 (Install Zsh Ubuntu)
Прежде чем настраивать Oh My Zsh, нужно установить Zsh в Ubuntu 22.04. Для этого выполните приведённые ниже шаги. После установки Zsh мы покажем, как установить Oh My Zsh в Ubuntu 22.04 и начать пользоваться этой усовершенствованной средой оболочки.
Начнём установку Oh My Zsh в Ubuntu 22.04.
Установка Zsh в Ubuntu 22.04
Чтобы установить Zsh в Ubuntu, выполните приведённые ниже шаги:
Шаг 1. Обновите репозитории apt в Ubuntu
Перед установкой Zsh в Ubuntu обязательно обновите репозитории программного обеспечения. Откройте терминал и выполните следующую команду:
$ sudo apt update
После установки обновлений установите зависимости или пакеты, необходимые для установки Zsh в Ubuntu 22.04:
$ sudo apt install build-essential curl file git
Шаг 2. Установите Zsh из официальных репозиториев Ubuntu
Чтобы установить Zsh в Ubuntu, воспользуйтесь репозиториями apt в Ubuntu и выполните следующую команду:
$ sudo apt install -y zsh
В приведённой команде параметр «-y» автоматически подтверждает все запросы во время установки вместо того, чтобы спрашивать пользователя.
Шаг 3. Проверьте установку Zsh
После успешной установки Zsh вы можете проверить её, выведя установленную версию с помощью следующей команды:
$ zsh --version
Эта команда покажет версию Zsh, установленную на вашем сервере.
Проверить установку Zsh в Ubuntu можно также, посмотрев путь к исполняемому файлу Zsh:
$ which zsh
Эта команда должна вывести путь «/usr/bin/zsh».
Для проверки пути установки можно также воспользоваться командой «whereis»:
$ whereis zsh
Команда «whereis» показывает расположение программы или сценария терминала. В данном случае она выводит точный путь к Zsh.
Шаг 4. Сделайте Zsh оболочкой по умолчанию
Теперь, когда Zsh установлен, вы можете сделать его оболочкой по умолчанию с помощью команды chsh. Укажите путь к исполняемому файлу Zsh с помощью параметра «-s»:
$ sudo chsh -s /usr/bin/zsh
Эта команда изменяет файл пользователей «/etc/passwd», чтобы во время сеансов в терминале для вашего имени пользователя по умолчанию загружался Zsh. После перезапуска терминала подтвердите изменение, выведя текущую оболочку с помощью переменной окружения $SHELL:
echo $SHELL
Поздравляем, вы успешно установили Zsh в Ubuntu и сделали его оболочкой терминала по умолчанию.
Установка Oh My Zsh в Ubuntu 22.04 (Oh My Zsh Ubuntu installation)
Oh My Zsh - это фреймворк с открытым исходным кодом, созданный для расширения функциональности и возможностей Z Shell, чтобы сделать работу в командной строке более продуктивной и приятной. Этот фреймворк обеспечивает простую установку и удобное управление большим количеством тем, плагинов и сценариев.
Шаг 1. Установите curl или wget
Установка Oh My Zsh в Ubuntu занимает всего несколько секунд. Сначала установите curl или wget, чтобы клонировать git-репозиторий или скачать его из интернета:
$ sudo apt install curl
Шаг 2. Установка Oh My Zsh в Ubuntu
Хотя вы уже перешли на Zsh как оболочку по умолчанию, на этом этапе работа с ней может не сильно отличаться от Bash. Вместо того чтобы самостоятельно настраивать Zsh с нуля, эффективнее воспользоваться экосистемой Oh My Zsh.
Так вы сможете изучать и пробовать множество инструментов и конфигураций, уже созданных сообществом, и сделать работу в командной строке удобнее и функциональнее.
Установить Oh My Zsh в Ubuntu 22.04 можно с помощью следующей команды:
$ sh -c "$(curl -fsSL https://raw.github.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
Выполнение этой команды сделает Zsh оболочкой по умолчанию для каждого пользователя. Перезагружать сервер или выходить из системы не требуется. Просто введите «Y» и нажмите «Enter», чтобы запустить процесс, который завершится за несколько секунд. В окне терминала должен появиться следующий вывод.
Настройка плагинов Oh My Zsh
Плагин Zsh - это набор удобных псевдонимов и функций, предназначенных для повышения продуктивности при работе с инструментами командной строки. Oh My Zsh поставляется с более чем 300 предварительно настроенными плагинами, готовыми к использованию сразу.
По умолчанию эти встроенные плагины отключены. Список локально установленных плагинов можно найти в каталоге «~/.oh-my-zsh/plugins». Чтобы включить плагин в Oh My Zsh, отредактируйте строку plugins в конфигурационном файле .zshrc. Просто добавьте названия нужных плагинов, разделив их пробелами:
plugins=(plugin_1 plugin_2 plugin_3 …)
Чтобы посмотреть список плагинов, откройте браузер и перейдите по адресу на GitHub: https://github.com/ohmyzsh/ohmyzsh/wiki/Plugins
Здесь вы найдёте список всех доступных плагинов.
Ознакомившись с доступными плагинами и выбрав нужный, укажите его название в списке plugins=() в файле ~/.zshrc, чтобы включить его. Например, чтобы активировать плагин Python pip, добавьте в файл ~/.zshrc следующую строку:
plugins=(python pip)
После изменения списка плагинов нажмите «Ctrl-O», чтобы сохранить файл, и «Ctrl-X», чтобы выйти. Затем примените изменения, выполнив следующую команду:
source ~/.zshrc
Настройка темы Oh-My-Zsh
Установить предпочитаемую тему Oh My Zsh очень просто. Темы Oh My Zsh по умолчанию хранятся в каталоге ~/.oh-my-zsh/themes/. В нём можно просмотреть все доступные темы.
Чтобы посмотреть список доступных тем, откройте браузер и перейдите по адресу:
https://github.com/ohmyzsh/ohmyzsh/wiki/Themes
Выбирая тему, избегайте тем с радужными цветами или трудночитаемыми сочетаниями цветов. Темы с белыми или светлыми надписями на чёрном фоне могут не подойти пользователям с нарушениями зрения или headless-серверам без монитора.
Предварительно посмотрите выбранную тему в браузере. Найдя тему, которая вам нравится, откройте файл ~/.zshrc в любом редакторе кода. Например:
sudo nano ~/.zshrc
В этом файле тема по умолчанию имеет значение «robbyrussell». Чтобы сменить тему, замените текст после ZSH_THEME= на название нужной темы. Например, если вы хотите использовать тему «agnoster», замените «robbyrussell» на «agnoster»:
ZSH_THEME="agnoster"
Если вы хотите регулярно чередовать несколько тем, задайте для параметра ZSH_THEME= значение random:
ZSH_THEME="random"
Чтобы задать определённый набор тем для случайного выбора, укажите параметр ZSH_THEME_RANDOM_CANDIDATES. Например:
ZSH_THEME_RANDOM_CANDIDATES=("agnoster" "grml" "robbyrussell")
После смены темы сохраните файл с помощью «Ctrl-O» и выйдите с помощью «Ctrl-X». Затем обновите плагин Oh My Zsh:
source ~/.zshrc
Настройка плагина автоподсказок
Включите плагин автоподсказок (auto-suggestions), чтобы получать подсказки команд на основе истории команд Zsh. Это экономит время и упрощает выполнение ежедневных задач, особенно для часто используемых команд. Чтобы активировать автоподсказки, выполните приведённые ниже шаги:
Сначала добавьте репозиторий плагина автоподсказок. Клонируйте репозиторий с помощью следующей команды:
git clone https://github.com/zsh-users/zsh-autosuggestions ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions
Откройте конфигурационный файл .zshrc в текстовом редакторе:
nano ~/.zshrc
В разделе plugins файла включите плагин автоподсказок, добавив его в список плагинов, как показано ниже:
plugins=(git zsh-autosuggestions)
Сохраните изменения и закройте текстовый редактор.
Перезапустите терминал и запустите Zsh, чтобы активировать плагин автоподсказок.
Теперь при вводе команды нажимайте клавишу со стрелкой вправо, чтобы принять подсказку и легко завершить команду.
Включение подсветки синтаксиса
Подсветка синтаксиса даёт ряд преимуществ: лучшую читаемость кода, обнаружение ошибок, распознавание языка, более высокую продуктивность и более приятный внешний вид. Чтобы добавить подсветку синтаксиса в Zsh, выполните приведённые ниже шаги:
Клонируйте репозиторий плагина с помощью следующей команды:
git clone https://github.com/zsh-users/zsh-syntax-highlighting.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting
Откройте файл .zshrc:
nano ~/.zshrc
Перейдите в раздел plugins и добавьте zsh-syntax-highlighting в список плагинов.
Сохраните изменения и закройте файл.
Перезапустите терминал и запустите Zsh, чтобы активировать подсветку синтаксиса. Например, команда с опечаткой будет подсвечена красным, а правильно введённая команда - зелёным:
Здесь работа подсветки показана на примере команды «echo».
Настройка плагина JSON Tools
Поскольку JSON широко используется как стандартный формат данных в веб-разработке, вам, вероятно, часто приходится работать с ним непосредственно в терминале, особенно при тестировании новых вызовов API. Плагин JSON Tools делает эту работу удобнее. Чтобы опробовать его, добавьте плагин в конфигурационный файл Zsh:
plugins=(... jsontools)
Когда этот плагин активирован, вы можете легко передавать данные JSON через конвейер в соответствующий инструмент JSON. Например, стандартный дамп JSON бывает трудно читать. Получим случайную шутку о Чаке Норрисе из Chuck Norris Jokes API:
curl https://api.chucknorris.io/jokes/random
Теперь передадим этот дамп JSON инструменту форматированного вывода JSON (pretty print):
curl https://api.chucknorris.io/jokes/random | pp_json
Как видите, теперь вывод отформатирован так, чтобы его было удобно читать человеку. Плагин JSON Tools значительно улучшает наглядность данных JSON в вашем терминале.
Настройка автоматических обновлений Oh My Zsh
По умолчанию OH-MY-ZSH автоматически обновляется раз в две недели. Чтобы отключить эту функцию, раскомментируйте строку DISABLE_AUTO_UPDATE в файле ~/.zshrc и задайте для параметра DISABLE_AUTO_UPDATE значение «true».
sudo nano ~/.zshrc
DISABLE_AUTO_UPDATE="true"
Если вы хотите настроить частоту обновлений, можно задать количество дней для проверки обновлений. Например, чтобы проверять обновления каждый день, задайте для параметра UPDATE_ZSH_DAYS значение 1.
UPDATE_ZSH_DAYS=1
Сохраните изменения с помощью «Ctrl-O», затем нажмите «Enter» и выйдите с помощью «Ctrl-X». Затем обновите плагин Oh My ZSH, введя следующую команду:
source ~/.zshrc
Также вы можете запустить обновление вручную с помощью следующей команды:
omz update
Наконец, чтобы применить изменения, перезагрузите систему:
sudo reboot now
На этом установка и настройка Oh My Zsh в Ubuntu 22.04 завершены. Выполнив приведённые выше инструкции, вы успешно настроили параметры автоматического обновления в соответствии со своими предпочтениями.
Настройка плагина Dirhistory
Этот плагин делает навигацию по каталогам удобнее, опираясь на историю посещения каталогов. Он добавляет удобные сочетания клавиш, которые ещё больше упрощают перемещение по истории каталогов. Чтобы включить эту функцию, добавьте «dirhistory» в конфигурационный файл:
plugins=(... dirhistory)
После этого сохраните файл и обновите конфигурацию Zsh:
source ~/.zshrc
Теперь для удобной навигации по истории каталогов используйте следующие сочетания клавиш: ALT + LEFT, чтобы перейти в предыдущий каталог, ALT + RIGHT, чтобы перейти в следующий каталог, ALT + UP, чтобы перейти в родительский каталог, и ALT + DOWN, чтобы перейти в первый дочерний каталог. Этот плагин делает работу с каталогами эффективнее.
Автодополнение по клавише Tab в Zsh
Ещё одна замечательная возможность Zsh - развитая система дополнения по клавише Tab. Она интеллектуально предлагает доступные варианты в зависимости от контекста командной строки, в том числе сценарии, переменные окружения, команды и их параметры.
Чтобы попробовать это, введите system и нажмите TAB, чтобы получить список подсказок. Повторное нажатие TAB позволяет перемещаться по доступным программам с помощью TAB или клавиш со стрелками:
Аналогично, если ввести systemctl, добавить пробел и нажать TAB, появится список доступных команд systemctl с их описаниями. Перемещайтесь по списку с помощью TAB или клавиш со стрелками:
Если ввести systemctl - и несколько раз нажать TAB, можно перемещаться по списку доступных параметров systemctl с их описаниями:
command options autocomplete
А теперь немного магии: введите systemctl stop, добавьте пробел и нажмите TAB, чтобы увидеть список всех запущенных сейчас процессов Linux, к которым можно применить команду «systemctl stop»:
target processes autocomplete
Начать пользоваться развитым автодополнением по клавише Tab очень просто, а продуктивность оно повышает существенно. Добавьте его в свой набор инструментов командной строки, чтобы работать эффективнее.
Обратный поиск по истории
Обычно обратный поиск по истории вызывается сочетанием «CTRL + R», которое позволяет искать любое слово в истории команд. Нажмите «CTRL + R» и введите подстроку, например «system», чтобы найти последнюю команду, содержащую эту подстроку:
Продолжайте нажимать «CTRL + R», чтобы двигаться по истории назад, или используйте «CTRL + S», чтобы двигаться вперёд.
Zsh добавляет к этой функции небольшое улучшение. Если вы помните начало нужной команды, введите его и используйте клавиши UP и DOWN, чтобы перемещаться по истории, отфильтрованной по указанной подстроке. Например, введите «apt» и нажмите UP, чтобы найти последнюю команду, начинающуюся с этой подстроки.
Настройка плагина History
В Oh My Zsh многие плагины, по сути, представляют собой наборы практичных псевдонимов, созданных опытными системными администраторами. Плагин History предлагает набор удобных псевдонимов для команды history. Активируйте его, изменив конфигурационный файл Zsh:
plugins=(... history)
После активации вам станут доступны следующие псевдонимы:
h (history): выводит историю команд.
hs (history | grep): ищет по истории команд с помощью grep.
his (history | grep -i): ищет по истории команд с помощью grep без учёта регистра.
Включение временных меток в истории
Ещё одна полезная возможность - добавление временных меток к каждой команде в истории. Чтобы активировать эту функцию, раскомментируйте следующую строку в конфигурационном файле и выберите предпочитаемый формат даты:
HIST_STAMPS="yyyy-mm-dd"
Благодаря этому параметру каждая команда, которую выводит команда history, будет сопровождаться временной меткой, что даёт хронологическую запись истории команд.
Включение плагина Colored Man Pages
Как часто вы просматриваете страницы справки различных утилит командной строки? Плагин Colored Man Pages ускоряет чтение, подсвечивая различные команды и их аргументы, чтобы их сразу было видно в документации. Включите этот плагин, изменив конфигурационный файл Zsh:
plugins=(... colored-man-pages)
Если вам нужно удалить Oh My Zsh вместе с его плагинами и темами из Ubuntu 22.04, это можно сделать с помощью встроенного сценария удаления. Выполните в терминале следующую команду:
$ uninstall_oh_my_zsh
$ sudo apt --purge remove zsh
Эта команда удалит все файлы и папки, связанные с Oh My Zsh, и вернёт сервер в состояние, в котором он был до установки.
Переключение с Zsh на оболочку Bash
Верните Bash (или другую предпочитаемую оболочку) в качестве оболочки по умолчанию с помощью следующей команды:
$ chsh -s $(which bash)
After running this command, close the current terminal and open a new session to ensure that the changes take effect.
Для Linux-хостинга на VPS установите и используйте оболочку Zsh для Ubuntu на своём сервере.
Заключение
В этом гайде мы показали, как установить и настроить Oh My Zsh в Ubuntu 22.04. Хотя Bash по-прежнему широко используется и является оболочкой по умолчанию во многих дистрибутивах Linux, Zsh завоевал популярность благодаря многочисленным преимуществам.
Вы можете и дальше настраивать свою среду Zsh и вносить собственные изменения. Zsh в Ubuntu - это больше, чем просто оболочка, ведь он также является мощным языком сценариев.
Если вы захотите глубже погрузиться в настройку, изучите обширные материалы в официальной документации Zsh.