Що таке zsh і як працювати з цією оболонкою
Автор: Редакція Domeny.ForSale Опубліковано
Коротко: Zsh, або Z shell, — це системна оболонка: програма, яка інтерпретує введені команди й запускає зазначені завдання. Вона полегшує роботу в терміналі завдяки розвиненому автодоповненню команд, історії та можливостям налаштування. Насамперед вона корисна для інтерактивної роботи із системою, але знати її, щоб почати користуватися терміналом, не обов’язково.
Zsh і термінал — у чому різниця?
Термінал — це застосунок, у якому можна вводити команди й переглядати результати. Оболонка працює всередині цього застосунку: читає команди, розпізнає їхній синтаксис і доручає виконання операцій. В одному терміналі можна запускати різні оболонки, наприклад zsh або Bash.
Коли ви вводите cd Dokumenty, zsh виконує власну команду зміни каталогу. Коли вводите git status, вона запускає зовнішню програму Git, якщо та встановлена й доступна в шляху пошуку програм. Це важлива відмінність: встановлення zsh не встановлює автоматично інструменти, назви яких ви використовуєте в командах.
Zsh доступна, зокрема, у системах Linux і macOS. У macOS, починаючи з версії Catalina, вона є типовою оболонкою для нових облікових записів користувачів, хоча для конкретного облікового запису може бути вибрана інша. У Windows нею можна користуватися, наприклад, у WSL — середовищі, що дає змогу запускати інструменти Linux.
Що дає zsh у щоденній роботі?
Головна перевага zsh — менше ручного введення повторюваних фрагментів команд. Проте зручність залежить від налаштувань: щойно встановлена оболонка не обов’язково виглядатиме чи поводитиметься так, як термінал у посібнику.
Серед корисних можливостей:
- Автодоповнення клавішею Tab: може підказувати назви команд, шляхи, параметри й аргументи. Набір підказок залежить від доступних визначень автодоповнення.
- Історія команд: дає змогу повертатися до попередніх команд. Збереження історії між сеансами та її спільне використання в різних сеансах потребують відповідних налаштувань.
- Зіставлення назв файлів із шаблонами: дає змогу вказувати групи файлів, не перелічуючи кожну назву окремо.
- Налаштовуваний командний рядок: текст перед курсором може показувати каталог, стан останньої команди або інформацію про репозиторій Git.
Наприклад, якщо ви працюєте в каталозі з папкою proiekt-mahazynu, можна ввести cd pro і натиснути Tab. Оболонка спробує доповнити назву; якщо підходять кілька каталогів, вона може показати доступні варіанти. Подібні функції є й в інших оболонках. Для частини користувачів перевага zsh полягає в широких можливостях налаштування та доступних розширеннях, а не в самій наявності автодоповнення.
Zsh чи Bash — що вибрати?
Bash — інша популярна оболонка, яку часто використовують у Linux та адміністративних скриптах. Zsh і Bash підтримують багато схожих команд, але їхній синтаксис не повністю сумісний. Відмінності стосуються, зокрема, масивів, розгортання змінних і зіставлення назв файлів із шаблонами.
Практичний приклад: за типових налаштувань zsh команда ls *.txt повідомить про помилку зіставлення, якщо в каталозі немає файлів із розширенням .txt. Bash за типових налаштувань натомість передасть буквальний аргумент *.txt програмі ls, яка повідомить, що такого файлу немає. Отже, на вигляд однакова команда може зупинитися на різних етапах.
Для щоденної роботи вибирайте оболонку, у якій вам легше виконувати завдання. Для скриптів вибирайте інтерпретатор свідомо. Скрипт, що починається з #!/bin/bash, указує Bash як інтерпретатор для безпосереднього запуску. Використання zsh у терміналі не означає, що такий скрипт треба переписувати. Натомість запуск командою zsh skrypt.sh може спричинити помилки сумісності.
Як перевірити наявність zsh і запустити її?
Спершу перевірте, чи доступна програма:
zsh --version
Якщо отримаєте номер версії, можете запустити zsh для проби, ввівши zsh. Команда exit завершить цей сеанс і поверне вас до попередньої оболонки. Типові налаштування облікового запису від цього не зміняться.
Якщо система не знаходить програму, у Linux встановіть її через менеджер пакетів свого дистрибутива. Наприклад, у Debian і Ubuntu для цього використовують sudo apt install zsh. Команда потребує прав адміністратора; для іншого дистрибутива перевірте відповідну процедуру в його офіційній документації.
Команда echo $SHELL, яку часто рекомендують, зазвичай показує налаштовану оболонку входу, а не обов’язково ту, що працює в поточному сеансі. Після запуску zsh можна виконати echo $ZSH_VERSION — у zsh ця змінна містить номер її версії.
Типову оболонку облікового запису зазвичай можна змінити інструментом chsh. Перш ніж це робити, перевірте шлях до програми та правила своєї системи: оболонка може потребувати запису в списку /etc/shells, а корпоративні облікові записи можуть мати адміністративні обмеження.
Налаштування zsh і роль Oh My Zsh
Основним файлом налаштувань інтерактивних сеансів зазвичай є ~/.zshrc, де ~ позначає домашній каталог користувача. У ньому можна розмістити псевдоніми — скорочення команд — і налаштування автодоповнення. Простий початковий варіант має такий вигляд:
alias ll='ls -lh'
autoload -Uz compinit
compinit
Псевдонім дає змогу вводити ll замість ls -lh, а наступні рядки ініціалізують систему автодоповнення. Перед редагуванням наявного файлу зробіть його копію й перевірте, чи немає в ньому вже подібних налаштувань. Найпростіше перевірити зміни в новому сеансі zsh.
Oh My Zsh — це необов’язковий набір налаштувань, тем і плагінів, а не сама оболонка. Кольорові підказки під час введення чи підсвічування синтаксису часто забезпечують додаткові розширення. Після встановлення zsh ці можливості не з’являються автоматично.
Для початку запустіть zsh, не змінюючи типової оболонки, і виконайте кілька звичних завдань. Додавайте розширення лише тоді, коли можете визначити, яку саме дію вони мають полегшити. Перед запуском інсталятора перевірте його джерело та перелік змін, які він вносить.
Дивіться також: Що таке AGI?
