Что такое ZSH и почему вы должны использовать его вместо Bash?
ZSH, также называемая оболочкой Z, представляет собой расширенную версию Bourne Shell (sh) с множеством новых функций и поддержкой плагинов и тем. Поскольку он основан на той же оболочке, что и Bash, ZSH имеет многие из тех же функций, и переключение на него очень просто.
Так зачем его использовать?
ZSH имеет слишком много функций, чтобы перечислять их здесь, некоторые лишь незначительные улучшения Bash, но вот некоторые из основных:
- Автоматический переход: просто введите имя каталога
- Рекурсивное расширение пути: например, «/u/lo/b» заменяется на «/usr/local/bin»
- Правописание и приблизительное завершение: если вы сделаете незначительную ошибку при вводе имени каталога, ZSH исправит ее за вас
- Поддержка плагинов и тем. ZSH включает множество различных фреймворков для плагинов.
Поддержка плагинов и тем, вероятно, самая крутая функция ZSH, и именно на ней мы сосредоточимся здесь.
Установка ЗШ
Если вы используете macOS и у вас установлен Homebrew (что вам и следует делать), вы можете установить ZSH с помощью одной команды:
brew install zsh
Также для пользователей macOS вам, вероятно, следует использовать iTerm вместо собственного терминала, так как он имеет гораздо лучшую поддержку цвета (плюс множество других функций).
Если вы работаете в Linux, команды могут различаться в зависимости от дистрибутива, но это должен быть пакет по умолчанию в вашем диспетчере пакетов. Вы можете обратиться к этому руководству, если у вас возникли проблемы.
Если вы работаете в Windows, у вас может вообще не быть Bash. Вы можете следовать этому руководству, чтобы настроить и включить ZSH.
Установка О-Мой-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.
Темы
Есть много тем, которые можно использовать, но powerlevel9k, безусловно, самая крутая. Он добавляет выровненное по правому краю информационное окно, интеграцию с git и историей команд, невероятную настройку и оборачивает все это в приятный интерфейс, основанный на плагине Powerline для Vim.
Вы захотите использовать iTerm на macOS или любом терминале с 24-битным цветом, чтобы получить максимальную отдачу от powerlevel9k (или любой темы ZSH, на самом деле).
Чтобы настроить powerlevel9k (если вы установили Oh-My-Zsh), просто клонируйте репозиторий в папку пользовательских тем .oh-my-zsh:
git clone https://github.com/bhilburn/powerlevel9k.git ~/.oh-my-zsh/custom/themes/powerlevel9k
Затем вам нужно включить его в .zshrc:
ZSH_THEME="powerlevel9k/powerlevel9k"
После этого загрузите свой .zshrc, и вы должны увидеть примененные изменения.
При желании вы можете настроить приглашение по умолчанию, определив POWERLEVEL9K_LEFT_PROMPT_ELEMENTS в вашем .zshrc. Вот мой, с минимальной подсказкой:
POWERLEVEL9K_LEFT_PROMPT_ELEMENTS=(vcs dir rbenv) POWERLEVEL9K_RIGHT_PROMPT_ELEMENTS=(root_indicator background_jobs status load)
Вы можете найти полную документацию по powerlevel9k в репозитории.
Linux Commands | ||
Files | tar · pv · cat · tac · chmod · grep · diff · sed · ar · man · pushd · popd · fsck · testdisk · seq · fd · pandoc · cd · $PATH · awk · join · jq · fold · uniq · journalctl · tail · stat · ls · fstab · echo · less · chgrp · chown · rev · look · strings · type · rename · zip · unzip · mount · umount · install · fdisk · mkfs · rm · rmdir · rsync · df · gpg · vi · nano · mkdir · du · ln · patch · convert · rclone · shred · srm · scp · gzip · chattr · cut · find · umask · wc | |
Processes | alias · screen · top · nice · renice · progress · strace · systemd · tmux · chsh · history · at · batch · free · which · dmesg · chfn · usermod · ps · chroot · xargs · tty · pinky · lsof · vmstat · timeout · wall · yes · kill · sleep · sudo · su · time · groupadd · usermod · groups · lshw · shutdown · reboot · halt · poweroff · passwd · lscpu · crontab · date · bg · fg · pidof · nohup · pmap | |
Networking | netstat · ping · traceroute · ip · ss · whois · fail2ban · bmon · dig · finger · nmap · ftp · curl · wget · who · whoami · w · iptables · ssh-keygen · ufw · arping · firewalld |
RELATED: Best Linux Laptops for Developers and Enthusiasts