Featured image of post Як встановити та налаштувати ZSH у Linux

Як встановити та налаштувати ZSH у Linux

Введення

Zsh, або Z Shell, — це потужна та багатофункціональна оболонка командного рядка для Unix-подібних операційних систем, включаючи Linux і BSD (Berkeley Software Distribution). Це розширена версія Bourne Shell (sh) з численними вдосконаленнями та додатковими функціями. Zsh має на меті забезпечити більш інтерактивний і зручний досвід для користувачів оболонки.

Ось кілька причин, чому Zsh часто вважають однією з найкращих оболонок для систем Unix/Linux/BSD:

  • Редагування командного рядка: Zsh пропонує розширені можливості редагування командного рядка, що дозволяє користувачам легко переходити та редагувати команди. Він підтримує такі функції, як розширення історії, виправлення орфографії та вдосконалене зіставлення шаблонів.

  • Налаштування: Zsh можна налаштувати. Користувачі можуть налаштовувати різні аспекти поведінки оболонки, такі як швидкий вигляд, прив’язки клавіш і параметри завершення. Великі параметри конфігурації дозволяють адаптувати його до індивідуальних уподобань і робочих процесів.

  • Автодоповлення команд: Zsh забезпечує Автодоповлення команд з урахуванням контексту, полегшуючи навігацію файловою системою та завершуючи імена та аргументи команд. Він може завершувати не лише команди, але й шляхи до файлів, змінні тощо.

  • Плагіни та розширення: Zsh підтримує плагіни та розширення, які покращують його функціональність. Такі інструменти, як Oh-My-Zsh і Prezto, є популярними фреймворками, які спрощують керування конфігураціями Zsh і додають додаткові функції за допомогою плагінів.

  • Виправлення орфографії: Zsh має вбудовану функцію виправлення орфографії, яка допомагає користувачам уникати помилок. Якщо ви неправильно введете команду або шлях до файлу, Zsh може запропонувати виправлення.

  • Інтерактивні функції: Zsh містить інтерактивні функції, які покращують загальну взаємодію з користувачем, наприклад можливість легко переглядати історію команд, здійснювати пошук серед попередніх команд і повторно використовувати або ефективно змінювати команди.

  • Сумісність із оболонкою Bourne: Zsh сумісний із синтаксисом оболонки Bourne (sh), що робить його відповідною заміною для sh або Bash. Існуючі сценарії оболонки, швидше за все, працюватимуть у Zsh без змін.

Хоча Zsh пропонує багатий набір функцій, вибір «найкращої» оболонки часто залежить від індивідуальних уподобань і конкретних випадків використання. Інші популярні оболонки включають Bash (Bourne Again SHell) і Fish (Friendly Interactive SHell), кожна з яких має свої сильні сторони та характеристики. Зрештою, найкраща оболонка — це та, яка узгоджується з вашим робочим процесом і відповідає вашим конкретним вимогам.

Встановлення

Встановіть пакет ZSH

Щоб установити пакет ZSH у вашій системі Linux, розгляньте можливість використання менеджера пакунків, який постачається з вашим дистрибутивом. Це робиться по-різному залежно від вашого дистрибутива, наприклад:

Для Arch Linux:

sudo pacman -S zsh

Для Fedora, Red Hat:

sudo dnf install zsh

Для Debian, Ubuntu, Linux Mint, ElementaryOS:

sudo apt install zsh

У моєму випадку я встановлюю його для Arch Linux:

Приклад встановлення ZSH на Arch Linux

Встановлення ZSH оболонкою за замовчуванням

Щоб зробити новий встановлений ZSH стандартним для вашого користувача, введіть команду нижче та введіть свій пароль користувача для підтвердження:

chsh -s $(which zsh)

Встановлення ZSH оболонкою за замовчуванням

Після цього рекомендується перезавантажити систему, при наступному перезавантаженні оболонка ZSH буде використана для вашого користувача. Щоб перезавантажити комп’ютер, ви можете скористатися командою sudo reboot або просто скористатися графічним інтерфейсом робочого середовища для виконання перезавантаження.

Перше налаштування

Щойно ви відкриєте програму терміналу після перезавантаження, zsh запропонує вам створити файли конфігурації за замовчуванням. Для застосування конфігурації натисніть на клавіатурі «0».

Початкова конфігурація оболонки ZSH

Встановлення Oh My ZSH

Oh My Zsh — це платформа з відкритим вихідним кодом і менеджер конфігурації для Zsh, Z Shell. Він був створений, щоб полегшити користувачам керування конфігураціями Zsh і покращити роботу командного рядка. Oh-My-Zsh надає колекцію плагінів, тем і допоміжних функцій, які можна легко інтегрувати в Zsh, дозволяючи користувачам налаштовувати та розширювати функціональність свого середовища оболонки.

Найпростіший спосіб щоб інсталювати ZSH — скористатися сценарієм інсталяції зі Oh My Zsh GitHub Repository. Можна виконати інсталяційний сценарій, завантаживши його, ось так:

sh -c "$(wget https://raw.github.com/ohmyzsh/ohmyzsh/master/tools/install.sh -O -)"

Після завершення скрипта ви побачите встановлену оболонку Oh My Zsh, як на знімку екрана нижче.

Початкова конфігурація оболонки ZSH

Налаштування теми Oh My ZSH

Oh My Zsh має багато попередньо встановлених тем, які знаходяться в папці ~/.oh-my-zsh/themes/.

Початкова конфігурація оболонки ZSH

Ви можете змінити свій файл .zshrc і використовувати попередньо встановлену тему.

nano .zshrc

А щоб змінити тему на agnoster, наприклад, знайдіть параметр ZSH_THEME і змініть його так:

ZSH_THEME="agnoster"

Встановлення сторонної теми Oh My ZSH

Особисто мені тема Powerlevel10k найбільше подобається серед інших, тому в цьому прикладі я покажу, як її встановити.

Встановлення сумісного шрифта терміналу

Щоб тема могла правильно відображати деякі символи, ваш термінал має використовувати спеціальний сумісний фон Meslo LGS NF. Для цього ви можете виконати інструкції зі сховища GitHub.

Найпростіший спосіб - завантажити 4 файли шрифтів:

Щоб зробити їх доступними для всієї системи, перемістіть ці 4 файли до папки /usr/share/fonts:

1
2
3
4
sudo mv "MesloLGS NF Regular.ttf" /usr/share/fonts
sudo mv "MesloLGS NF Bold.ttf" /usr/share/fonts
sudo mv "MesloLGS NF Italic.ttf" /usr/share/fonts
sudo mv "MesloLGS NF Bold Italic.ttf" /usr/share/fonts

Щоб очистити кеш шрифтів, виконайте команду:

sudo fc-cache

Останнім кроком є зміна шрифту вашого терміналу. Це може залежати від терміналу, який ви використовуєте, але зазвичай ви можете просто змінити його в графічних налаштуваннях терміналу. У моєму випадку я налаштував його на використання Meslo LGS NF Regular 12.

Приклад налаштувань шрифту терміналу

Встановлення теми Powerlevel10k

Спочатку завантажте тему Powerlevel10k у свій каталог користувальницьких тем, це можна легко зробити за допомогою однієї команди:

git clone --depth=1 https://github.com/romkatv/powerlevel10k.git ${ZSH_CUSTOM:-$HOME/.oh-my-zsh/custom}/themes/powerlevel10k

Процес клонування файлів репозиторію Powerlevel10k

Потім змініть файл .zshrc:

nano .zshrc

і встановіть параметр ZSH_THEME рівним powerlevel10k/powerlevel10k:

ZSH_THEME="powerlevel10k/powerlevel10k"

Зміна теми в .zshrc

Після збереження файлу скористайтеся наведеною нижче командою, щоб застосувати зміни:

source ~/.zshrc

Перше налаштування Powerlevel10k

Під час першого запуску нового спеціального рівня Powerlevel10k запуститься майстер налаштування теми Powerlevel10k. Ви завжди можете знову запустити цей майстер, використовуючи команду терміналу p10k configure. Майстер має кілька кроків, просто натисніть відповідні клавіші на клавіатурі, щоб відповісти. Нижче я покажу, як конфігурація виглядає в моєму випадку.

1. Переконайтеся, що кілька символів шрифту відображаються правильно.

Символ ромба Символ замка Символ стрілки вгору Відповідність між символами

Я просто відповів «так» на ці запитання (натиснувши «y» на клавіатурі), тому що все, що стосується відтворення символів, відображалося правильно.

2. Налаштуйте стиль теми

Усі параметри в цьому розділі дозволяють змінити дизайн теми відповідно до ваших особистих уподобань. Я покажу, які відповіді я ввів у майстер, якщо ви захочете відтворити точну поведінку теми з цього посібника.

Швидке налаштування стилю дозволить налаштувати основний вигляд і відчуття, тут я відповів «3». Стиль запиту

Набір символів є важливим параметром, і насправді Юнікод дозволяє відображати більше символів, тому я настійно рекомендую відповісти тут «1». Набір символів

Цей параметр дозволяє показувати або приховувати поточний час у терміналі. Я не бачу в цьому жодної практичної користі, тому відповів n тут. Поточний час

Наступні налаштування стосуються зовнішнього вигляду теми, ви можете вибрати те, що вам подобається особисто.

Розділювач запитів Заголовки підказок Підказки Висота запиту Швидке підключення

Рейм підказки Інтервал підказок Значки Підказка Минуща підказка

Функція instant prompt дозволяє скоротити час завантаження оболонки ZSH, тому я настійно рекомендую ввімкнути її, відповівши тут «1». Instant prompt

Останнім кроком є застосування змін до .zshrc, просто дайте тут відповідь y. Застосувати зміни

Якщо все налаштовано правильно, ви побачите нову тему оболонки.

Встановлена тема p10k

Увімкніть вбудовані плагіни Oh My ZSH

Zsh підтримує плагіни та розширення, які покращують його функціональність. Oh-My-Zsh дозволяє легко керувати конфігураціями Zsh і додавати додаткові функції за допомогою плагінів.

Щоб переглянути список плагінів, які входять до складу Oh My ZSH, ви можете ввести команду:

ls -a ~/.oh-my-zsh/plugins/

У моєму випадку у мене є такі плагіни:

Плагіни, включені до Oh My ZSH за замовчуванням

Потім ви можете змінити свій файл .zshrc:

nano .zshrc

і встановити параметр plugins для завантаження потрібних вам плагінів, у моєму випадку (як розробника Android) мені потрібні плагіни git і adb:

plugins=(git adb)

Зміна плагінів у .zshrc

Потім застосуйте зміни до оболонки:

source ~/.zshrc

Встановлення сторонніх плагінів

Також Oh My ZSH дозволяє встановлювати та використовувати сторонні плагіни. Наприклад, давайте встановимо плагіни zsh-autosuggestions, щоб мати хороші рекомендації щодо команд введення на основі історії.

Встановлення дуже схоже на встановлення спеціальної теми. Спочатку клонуйте плагін у каталог настроюваних плагінів.

git clone https://github.com/zsh-users/zsh-autosuggestions ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions

Клонування плагіна zsh-autosuggestions

Тоді ви можете змінити свій файл .zshrc так само, як я показав у розділі статті вище, тому в результаті ви матимете:

plugins=(git adb zsh-autosuggestions)

Потім застосуйте зміни до оболонки:

source ~/.zshrc

Після цього спробуйте щось набрати, і ви побачите пропозицію. Наприклад, я ввів “neo”, а плагін пропонує використовувати “neofetch”:

Тестування плагіна zsh-autosuggestions

Увімкнення автоматичних оновлень

Oh-My-Zsh має вбудований механізм оновлення, який допомагає користувачам підтримувати інсталяцію в актуальному стані за допомогою останніх змін, удосконалень і виправлень помилок, внесених спільнотою. Він також надає можливість автоматичного оновлення, але за умовчанням його вимкнено.

Щоб налаштувати автоматичне оновлення, вам слід встановити цю директиву у файлі .zshrc:

zstyle ':omz:update' mode auto

Висновки

Таким чином, ZSH є більш багатофункціональною оболонкою, яка може зробити вашу роботу ефективнішою, розширюючи функціональність оболонки за допомогою спеціальних плагінів, тому її можна вважати кращою альтернативою bash, яка є оболонкою за замовчуванням у будь-якому сучасному дистрибутиві Linux.

Всі права захищено.