Найти тему

Установка ZSH в качестве основной оболочки для терминала Linux

Понял, что на канале практически не раскрыта тема оболочек терминала. Помнится, что лишь единожды в одной заметке коснулся темы оболочек, но как-то вскользь. К тому же один из подписчиков попросил рассказать про установку одной из оболочек. Это значит, что пора выпускать заметку и нечего тянуть. Сегодня поговорим про то, что такое оболочка и какие они бывают.

Ускоряем работу в терминале при помощи алиасов

Что такое командная оболочка (шелл, shell или sh)?

Если я напишу, что это командный интерпретатор, то вряд ли станет понятнее. Потому попытаюсь объяснить своими словами в надежде, что общая суть окажется верной.

Представим себя, пользователя. Перед нами некий дистрибутив Linux, с которым мы можем взаимодействовать разными способами - при помощи графического интерфейса и при помощи терминала. То есть терминал можно представить как телефон, который использует пользователь для того, чтобы передать некую информацию системе. Но мы с системой разговариваем на разных языках и нужен способ перевести то, что мы от нее желаем в понятный ей формат. Эти и занимается командная оболочка - она интерпретирует (то есть, понимает) что ей сообщает пользователь при вводе определенных команд и передает эти команды системы в понятной ей форме.

Оригинальный шелл Борна и его разновидности BASH и ZSH

Командных оболочек для Unix-систем множество. Одной из первых появилась оболочка, созданная Стивеном Борном, которая и получила его имя. После начали появляться аналоги, основанные на шелле Борна, различающиеся своим функционалом. Оболочка BASH является стандартной для дистрибутивом Linux. Именно она предстает перед пользователем при запуске терминала после установки дистрибутива или при подключении к серверу по SSH.

Оболочка про которую мы будем говорить сегодня называется ZSH (Z Shell), которая заменяет BASH и расширяет возможности командной оболочки. Что есть в ZSH и чего нет в BASH?

  • удобное автодополнение вводимых команд (удобнее чем в BASH, имею в виду)
  • изменяемые горячие клавиши
  • использование в качестве алиасов не только команд, но и например расширений файлов, что превращает ZSH в терминальный файловый менеджер
  • существование плагина для подсветки синтаксиса
  • возможность быстрой распаковки/запаковки файлов в архив
  • поддержка большого количества тем и плагинов

Установка ZSH

Для установки воспользуемся системным пакетным менеджером. Помним, что команда для установки зависит от используемой пакетной базы.

  • Ubutnu/Debian/Linux Mint

sudo apt install zsh

  • Fedora

sudo dnf install zsh

  • Archlinux

sudo pacman -S zsh

-2

Установка Linux-программ через терминал

Установка Oh My Zsh

Я никогда не использую чистый ZSH. После его установки обязательно накидываю сверху фреймворк Oh My Zsh. Чтобы его установить переходим на главный сайт, кликаем по кнопке «Install oh-my-zsh» и копируем команду в терминал.

-3

sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"

-4

В процессе инсталляции произойдут все самые нужные действия и ZSH будет установлен в качестве шелла по-умолчанию. Сигналом об успешной установке будет изменения курсора перед вводимым текстом. В большинстве случаев (об исключении расскажу дальше) он изменится на стрелочку (это будет говорить о том, что подтянулась дефолтная тема ZSH). После всех действий терминал можно закрыть (он может ругаться на запущенные процессы, не обращаем внимания), после выйти из системы и войти вновь.

Исключения из правил

В KDE (Plasma) даже после выхода/входа в систему продолжает грузиться BASH. Это можно исправить, если перейти в параметры терминала Konsole и на вкладке «Главное» найти пункт под названием «Команда».

-5

Там написан путь до BASH. Его нужно заменить на путь до ZSH:

/usr/bin/zsh

После применить настройки и перезапустить терминал. Но даже после этого он не будет показывать стандартную для ZSH стрелочку перед вводимым текстом. Способ исправить это я не нашел, потому просто устанавливаю поверх тему powerlevel10k. Если среди подписчиков будут те, кому станет интересна установка этой темы, то расскажу об этом в отдельной заметке.

Конфигурация ZSH

Файл конфигурации находится в домашней директории пользователя и называется .zshrc. Если открыть его в текстовом редакторе (графическом или консольном), то можно будет изменять настройки оболочки. Я, например, добавляю алиасы и устанавливаю необходимые плагины для работы. Копия .zshrc всегда сохранена в Яндекс Диске, поэтому процесс настройки ZSH на новом дистрибутиве занимает считанные секунды.

-6

Чтобы перезапустить ZSH после изменения настроек нужно в терминале ввести команду exec zsh. В примере ниже я скопировал имеющийся у меня на Яндексе файл в домашнюю директорию и перезапустил ZSH. После этого стали работать алиасы, например.

-7

В отдельном посте я расскажу про те плагины, которые использую на постоянной основе и покажу, как их устанавливать. Думаю, что для тех, кто еще не знаком с ZSH эта статья окажется полезной. Опытным подписчикам и читателям предлагаю написать в комментариях про свою любимую оболочку и почему вы остановились на ней.

В последние дни на канал хлынул поток читателей и подписчиков, количество активности возросло. Думаю, что не стоит сбавлять темп - с меня интересные и полезные материалы, с вас лайки, комментарии и подписки, договорились? Также не забываем, что можно подписаться на обновления канала Просто Код в Телеграме, чтобы получать уведомления о выходе новых заметок быстрее, чем это сделает Дзен.