Як встановити 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
Встановити бажану тему Oh My Zsh дуже просто. Теми Oh My Zsh за замовчуванням зберігаються в каталозі ~/.oh-my-zsh/themes/. У ньому можна переглянути всі доступні теми.
 
$ 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.