zaLinux.ru

Что такое ZSH и почему его следует попробовать в качестве альтернативы Bash?


ZSH, также называемая оболочкой Z, является расширенной версией Bourne Shell (sh) с множеством новых функций и поддержкой плагинов и тем. Поскольку она основана на той же оболочке, что и Bash, ZSH имеет многие из тех же функций, и переключиться на него очень просто.

Чем ZSH лучше Bash?

У ZSH слишком много функций, чтобы перечислять их здесь, часть из них — лишь незначительные улучшения в Bash, но вот некоторые из основных:

  • Автоматический cd: просто введите имя каталога
  • Рекурсивное расширение пути: например, «/u/lo/b» заменяется на «/usr/local/bin»
  • Исправление орфографии и приблизительное завершение: если вы допустили незначительную ошибку при вводе имени каталога, ZSH исправит её за вас.
  • Поддержка плагинов и тем: ZSH включает множество различных фреймворков плагинов.

Поддержка плагинов и тем, вероятно, самая крутая функция ZSH, и на этом мы сосредоточимся здесь.

Установка ZSH

macOS

Попробуйте

zsh --version

перед установкой из Homebrew. Если он новее 4.3.9, возможно, всё будет в порядке. Желательно новее или равно 5.0.

brew install zsh

Чтобы установить zsh в качестве оболочки по умолчанию, выполните следующие действия, предполагая, что по умолчанию установлена Homebrew.

Последние версии Mac OS:

chsh -s /usr/local/bin/zsh

Mac OS High Sierra и более ранние версии:

chsh -s /bin/zsh

Предполагая, что у вас установлен Homebrew. В противном случае большинство версий macOS по умолчанию поставляют zsh, но обычно это более старая версия. В качестве альтернативы вы также можете использовать MacPorts

sudo port install zsh zsh-completions

Ubuntu, Debian и производные (Windows 10 WSL | Собственное ядро Linux с Windows 10 build 1903, Kali Linux, Linux Mint, elementary OS, Zorin OS, Raspbian, MX Linux, Deepin)

sudo apt install zsh

OpenSUSE

zypper install zsh

Arch Linux or Manjaro

pacman -S zsh

Void Linux

xbps-install zsh

Fedora

dnf install zsh

OpenBSD

Для установки этого пакета:

pkg_add zsh

FreeBSD

Для установки этого пакета:

pkg install zsh

Для установки порта:

cd /usr/ports/shells/zsh/ && make install clean

Чтобы уменьшить использование памяти, необязательно включите параметры zsh-mem с помощью

make config

перед запуском "make install".

Centos/RHEL

sudo yum update && sudo yum -y install zsh

Cygwin

Установите пакет zsh с помощью установщика. К сожалению, Cygwin не имеет стандартного интерфейса командной строки. Однако вы можете настроить apt-cyg и установить zsh следующим образом:


apt-cyg install zsh

Самый простой способ изменить оболочку по умолчанию — установить переменную пользовательской среды SHELL. Найдите «Изменить переменные среды для вашей учётной записи» ("Edit Environment variables for your account"), чтобы открыть окно переменных среды, создайте новую переменную с именем «SHELL» и присвойте ей значение «/usr/bin/zsh/».


В качестве альтернативы: откройте Cygwin (в BASH), затем введите:

sudo nano ~/.bashrc

После открытия файла .bashrc добавьте эту строку в самый верх:

exec zsh

Закройте и сохраните файл. Закройте и снова откройте Cygwin. Он будет выполнять команду каждый раз, когда вы загружаете терминал и запускаете оболочку zsh.

Solus

eopkg it zsh

Funtoo/Gentoo

emerge app-shells/zsh

Alpine Linux

apk add zsh

MSYS2

pacman -S zsh

Termux (Android)

Termux — эмулятор терминала для Android, но имеет современные функции, такие как в Debian и Ubuntu (Termux имеет оболочку Bash и программы, подобные GNU Busybox). Для менеджера пакетов Termux использует менеджер пакетов Debian/Ubuntu, APT. Чтобы установить пакет, выполните эту команду:

pkg install zsh

Команда выглядит как менеджер пакетов FreeBSD (pkg). Или вы можете запустить эту команду:

apt update && apt upgrade
apt install zsh

Чтобы установить zsh в качестве оболочки по умолчанию, выполните эту команду:

chsh -s /data/data/com.termux/files/usr/bin/zsh

Или:

chsh -s $(which zsh)

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

Oh-My-Zsh — это самый популярный фреймворк для ZSH, который также имеет множество встроенных плагинов и тем. Есть также пара других фреймворков для плагинов, в том числе Antigen, который является полным менеджером пакетов для ZSH, но Oh-My-Zsh имеет множество встроенных плагинов и хорошо выполняет свою работу.


У Oh-My-Zsh есть простой сценарий установки, который вы можете запустить:

sh -c "$(curl -fsSL https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"

Оттуда вы можете включать и отключать плагины, добавляя их в свой файл .zshrc, расположенный в вашем каталоге ~.

Вы можете получить полный список плагинов в репозитории Oh-My-Zsh.

Темы

Существует множество тем, но некоторые считают, что powerlevel10k одна из лучших. Она добавляет выровненное по правому краю информационное окно, интеграцию с git и историей команд, невероятную настройку и оборачивает всё это в приятный интерфейс на основе плагина powerline для vim.

Вы захотите использовать iTerm на macOS или на любом терминале с 24-битным цветом, чтобы получить максимальную отдачу от powerlevel10k (или любой другой темы ZSH).

Чтобы настроить powerlevel10k (если вы установили Oh-My-Zsh), просто клонируйте репозиторий в папку пользовательских тем .oh-my-zsh:

git clone --depth=1 https://github.com/romkatv/powerlevel10k.git ~/powerlevel10k

Затем вам нужно включить его в .zshrc:

echo 'source ~/powerlevel10k/powerlevel10k.zsh-theme' >>! ~/.zshrc

После загрузите .zshrc и вы должны увидеть внесённые изменения.

source ~/.zshrc

При желании вы можете настроить приглашение по умолчанию, указав POWERLEVEL9K_LEFT_PROMPT_ELEMENTS в вашем .zshrc. Вот мой с минимальным приглашением командной строки:

POWERLEVEL9K_LEFT_PROMPT_ELEMENTS=(vcs dir rbenv)
POWERLEVEL9K_RIGHT_PROMPT_ELEMENTS=(root_indicator background_jobs status load)

Вы можете найти полную документацию для powerlevel10k в репо.


Рекомендуемые статьи:

4 Комментарии

  1. N0b0dy

    Bash навсегда!

    1. Alexey (Автор записи)

      Тоже люблю Bash ))))

  2. Александр

    Существует множество тем, но powerlevel10k, безусловно, самая крутая.

    Серьёзно? Добавьте "по-моему", не говорите за всех, пожалуйста.

    1. Alexey (Автор записи)

      Согласен с замечанием и исправил в статье. На самом деле, своего мнения по данному вопросу у меня нет, а это перевод англоязычной статьи или документации. В Kali Linux, где ZSH теперь используется по умолчанию, я не могу привыкнуть к этой оболочке. А поведение Ctrl+u, которое стирает всю строку (в Bash стирается «отсюда и до начала строки») уже истрепало все нервы ))))) На основной системе использую Bash.

Добавить комментарий для Александр Отменить ответ

Ваш адрес email не будет опубликован. Обязательные поля помечены *