zsh и oh my zsh
Wab IT
Установка zsh и oh my zsh
Zsh — это мощный двигатель, а Oh My Zsh — это тюнинг, салон и навигатор в одной коробке. Если поставить только Zsh, ты получишь почти пустую оболочку, которую придется настраивать часами (прописывать автодополнение, цвета, форматы приглашения). Вот основные причины, почему ставят связку:
Устанавливаем zsh
sudo apt update && sudo apt install -y zsh
Проверяем версию
zsh --versionКуда установился zsh?
which zsh
Установка Oh My Zsh
Oh My Zsh — это фреймворк с открытым исходным кодом, управляемый сообществом, для управления конфигурацией zsh.
| Method | Command |
|---|---|
| curl | sh -c "$(curl -fsSL https://install.ohmyz.sh/)" |
| wget | sh -c "$(wget -O- https://install.ohmyz.sh/)" |
| fetch | sh -c "$(fetch -o - https://install.ohmyz.sh/)" |
Если curl (или другой инструмент) ещё не установлен, установите командой
sudo apt install -y curlУстановка с Git
Если git ещё не установлен, установите командой
sudo apt install -y gitИ oh-my-zsh
sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
На вопрос Do you want to change your default shell to zsh? [Y/n]
Жмем Enter.
Если вы нечаянно выбрали n или хотите после завершения настройки, установить zsh как оболочку по умолчанию, введите команду.
chsh -s $(which zsh)
Далее настраиваем: выбираем тему и устанавливаем плагины.
Установка темы oh my zsh
Чтобы посмотреть и выбрать тему перейдите по ссылке oh my zsh Список тем.
В верхней строке вы видите название темы, далее 1. отображаемую информацию, далее 2,3,4 цвета.
Все текущие темы можно найти в каталоге дистрибутива Oh My Zsh. См. список здесь.
Выбрав тему, смотрите название над темой, переходите в папку пользователя.
Вводим команду
cd ~
Открываем командой файл для редактирования .zshrc.
Файлы с точкой впереди имени, это скрытые файлы, чтобы их увидеть их в папке введите команду
ls -aОткрываем файл для редактирования.
nano .zshrcИ добавляем тему, стрелками спускаемся на строку ZSH_THEME=«название темы»
Нажимаем комбинацию Ctrl+K и 2 раза нажимаем Ctrl+U.
ZSH_THEME="сюда вписываем название выбранной темы"
а на уже существующую добавляем знак закомментировать #
#ZSH_THEME=«тема которая была»

Установленные темы находятся в папке пользователя и посмотреть вы их сможете введя команду
cd ~/.oh-my-zsh/themes

Установить тему Spaceship
Склонируйте официальный репозиторий темы Spaceship в папку кастомных тем Oh My Zsh
git clone https://github.com/spaceship-prompt/spaceship-prompt.git "$ZSH_CUSTOM/themes/spaceship-prompt" --depth=1
Создайте символическую ссылку.
Oh My Zsh ожидает увидеть файл темы прямо в корне папки themes, поэтому нужно сделать для него ссылку
ln -s "$ZSH_CUSTOM/themes/spaceship-prompt/spaceship.zsh-theme" "$ZSH_CUSTOM/themes/spaceship.zsh-theme"
Чтобы применить изменения, обновите конфигурацию текущего терминала.
Перезапустите Zsh
source ~/.zshrcДелаем Oh My Zsh доступным для всех.
Со своей выбранной темой для каждого пользователя.
Просто переместим файл .oh-my-zsh в общую системную директорию.
1. Переместим папку Oh My Zsh
Обычно она находится в ~/.oh-my-zsh. Перенесите её в /opt или /usr/share, чтобы все пользователи имели к ней доступ. Вводим команду и переносим в директорию opt.
Обратите внимание, при переносе файл становиться не скрытым, точки перед названием нет.
sudo mv ~/.oh-my-zsh /opt/oh-my-zsh
Настройте права доступа
Нужно разрешить всем пользователям читать файлы, но запретить их изменять (чтобы никто случайно не удалил чужую тему) Вводим команду.
sudo chmod -R 755 /opt/oh-my-zsh
Обновите конфиг для каждого пользователя.
Теперь в файле ~/.zshrc каждого пользователя (включая root, если нужно) необходимо изменить путь к переменной $ZSH
Вводим уже знакомую команду.
nano ~/.zshrc В файле .zshrc меняем строку расположение oh-my-zsh, на ту папку в которую его переместили.
Было
export ZSH="$HOME/.oh-my-zsh"
Стало.
export ZSH="/opt/oh-my-zsh"
обратите внимание что файл перестал быть скрытым, то есть убираемточку перед . oh-my-zsh.

Ниже прописываем путь к плагинам
export ZSH_CUSTOM="/opt/oh-my-zsh/custom"
Теперь, когда вы активируете любой плагин (например, zsh-autosuggestions), Oh My Zsh смотрит на настройку ZSH_CUSTOM и сразу понимает: нужно смотреть в общую системную папку /opt/oh-my-zsh/custom/plugins
Скачиваем плагины oh-my-zsh.sh
zsh-syntax-highlighting (Подсветка синтаксиса)
В обычном терминале весь текст белый, и вы узнаете об опечатке только после того, как нажмете Enter и получите ошибку. Этот плагин красит текст в реальном времени прямо по мере ввода. Как это выглядит: Если вы ввели команду правильно (и она существует в системе), слово подсветится зелёным цветом (например, ls, cd, nano).Если вы допустили опечатку или такой программы нет на сервере, слово сразу станет красным (например, nnao, clearr). Пути к файлам, параметры запуска (флаги вроде -la) и текст в кавычках окрашиваются в свои уникальные цвета.
Чтобы скачать введите
git clone "https://github.com/zsh-users/zsh-syntax-highlighting.git" /opt/oh-my-zsh/custom/plugins/zsh-syntax-highlighting
zsh-autosuggestions (Умные автоподсказки)
Этот плагин работает как автозаполнение в поисковиках или клавиатуре смартфона. Он запоминает абсолютно все команды, которые вы когда-либо вводили на сервере.
Как это выглядит: Когда вы начинаете писать команду (например, na), плагин на основе вашей истории мгновенно дописывает остаток строки бледно-серым цветомnano или цветом выбранной вами темы zsh, например темно синим. Нажимаете стрелку вправо и команда появляется полностью.
git clone "https://github.com/zsh-users/zsh-autosuggestions.git" /opt/oh-my-zsh/custom/plugins/zsh-autosuggestions
fzf (Интерактивный «умный» поиск по всей системе)
Этот плагин интегрирует в ваш Zsh утилиту Fuzzy Finder (размытый поиск).Что делает: Полностью меняет стандартный поиск по истории команд (Ctrl + R). Вместо унылого перебора по одной строчке открывается красивое интерактивное меню. Вы можете написать буквально пару букв из середины команды, которую вводили три дня назад, и плагин мгновенно найдет её.Дополнительная фишка: Позволяет быстро искать файлы на сервере. Например, вы пишете nano ** и нажимаете Tab — открывается удобный список всех файлов в текущей папке и подпапках, где можно выбрать нужный стрелочками.Примечание: Для его работы на сервере должна быть установлена сама утилита поиска. Её можно поставить одной командой:
apt install -y fzf.
safe-rm (Защита от случайного удаления)
Главный страх любого администратора — случайно выполнить команду rm -rf не в той папке и снести важные файлы конфигурации или базу данных.Что делает: Добавляет предупреждение и подтверждение при попытке удалить важные системные директории. Он заменяет стандартную команду удаления на более «умную» версию.
Стандартная команда удаления в Linux (rm -rf) безжалостна. Если вы случайно введете лишний пробел или опечатку (например, rm -rf / путь/к/папке вместо rm -rf /путь/к/папке), Linux молча и мгновенно сотрет весь корневой диск сервера.
safe-rm перехватывает каждую команду rm. Сверяет путь, который вы хотите удалить, со своим встроенным черным списком критически важных папок. Если вы попытаетесь удалить системную папку (например, /etc, /usr, /var или /root), утилита заблокирует команду и выдаст предупреждение:safe-rm: skipping /etc (Удаление пропущено в целях безопасности).
apt update && apt install -y safe-rm
папку программы в нашей общей папке с плагинами
mkdir -p /opt/oh-my-zsh/custom/plugins/safe-rm
Создаем и открываем файл
nano /opt/oh-my-zsh/custom/plugins/safe-rm/safe-rm.plugin.zsh
Добавляем в файл проверку программы и ссылку на нее алиас
if (( $+commands[safe-rm] )); then alias rm='safe-rm' fi
Выставляем права доступа для всех пользователей.
Чтобы этот плагин могли читать и запускать другие пользователи (а не только root), дайте папке стандартные права:
chmod -R 755 /opt/oh-my-zsh/custom/plugins/safe-rm
Как добавить свои папки под защиту?
По умолчанию safe-rm уже защищает все главные папки Linux. Но если у вас на сервере появится важный проект (например, папка с сайтом или игровым сервером в /home/server), вы можете добавить её в список «неприкасаемых».
Откройте (или создайте) глобальный файл конфигурации защиты.
Устанавливаем.
nano /etc/safe-rm.conf
Просто впишите туда полные пути к папкам, которые нельзя удалять (каждый путь с новой строки): например /root/pip. Первый пустой слеш не удаляем, а пишем после него.
/ /root/pip /etc /home

Установить такой же терминальный мультиплексор Zellij, как на скрине. Инструкция в статье. Zellij Установка
Подключение плагинов в zsh.
Заходим в файл настроек zsh
nano ~/.zshrcИ подключаем установленные выше плагины и описанные ниже, которые также могут пригодиться в работе.
plugins=(z sudo fzf git safe-rm zsh-autosuggestions zsh-syntax-highlighting)
source $ZSH/oh-my-zsh.sh
Перезапускаем oh-my-zsh
omz reload
Если встроенный алиас по какой-то причине не срабатывает, используйте классический способ перечитывания конфигурационного файла:
source ~/.zshrcЕсли вы устанавливали новые плагины или системные утилиты, которые требуют полной очистки окружения, лучше всего заменить текущий процесс оболочки на новый:
exec zsh
Мы подключили еще плагины
z (Мгновенный прыжок по папкам)
Это один из самых мощных плагинов для навигации. Он анализирует, в какие директории на сервере вы заходите чаще всего, и строит их внутреннюю карту. Как это выглядит:
Чтобы перейти в папку, вам больше не нужно писать полный путь вроде cd /opt/oh-my-zsh/custom/plugins.
Зачем нужен: Вам достаточно написать букву z и любое уникальное слово из названия папки. Плагин сам поймет, куда вы хотите попасть.Пример использования: Вы можете находиться в корневой папке /root и просто ввести: z plugins жмем Enter и попадаем в папку /opt/oh-my-zsh/custom/plugins
git (Ускорение работы с репозиториями)
Это стандартный встроенный плагин Oh My Zsh. Он не добавляет визуальных эффектов, но предоставляет сотни коротких псевдонимов (алиасов) для работы с Git, а также выводит статус проекта прямо в вашу строку ввода (благодаря теме Spaceship).
Как это выглядит: Вместо того чтобы писать длинные команды, вы используете сокращения из двух-трёх букв. Примеры сокращений:
Вместо git status вы пишете просто: gst
Вместо git pull вы пишете просто: gl
Вместо git add. вы пишете просто: ga
Вместо git commit -m «сообщение» вы пишете просто: gc -m «сообщение»
Зачем нужен: Если вы ведете разработку или скачиваете проекты с GitHub, этот плагин сокращает количество нажатий на клавиши в 3–4 раза.
sudo (Быстрое исправление ошибок доступа)
Бывало ли у вас так: вы пишете длинную команду, нажимаете Enter, а сервер выдает ошибку Permission denied (Доступ запрещен), потому что вы забыли добавить в начало слово sudo? Что делает: Позволяет не переписывать команду заново. Вы просто дважды нажимаете клавишу Escape (два раза Esc), и плагин сам берет вашу прошлую команду, дописывает в ее начало слово sudo и оставляет на экране. Вам остается только нажать Enter.Зачем нужен: Экономит кучу нервов и времени при работе под обычными пользователями.
Установка специальных шрифтов
Для того чтобы в темах отображались символы и знаки, установим шрифты. Зайдите по ссылке nerdfonts и выберете.
Я использую шрифт Courier New, Version: 1.211. Скачать по ссылке выше, смотрите в разделе Cousine Nerd Font.
Нажав на Preview вы сможете посмотреть, как выглядят шрифты. Нажмите Download и скачайте архив Cousine на ваш компьютер. Распакуйте и добавьте шрифты в Виндовс.
В вашем терминале например в PuTTy, зайдите в раздел Window,
- Appearance
- Change
- Выберет шрифт, у меня Courier New
- Стиль обычный или жирный
- Размер шрифта
Посмотрите ниже или выбран Набор символов Западноевропейский.
Нажимаете Ок и заходите на сервер.

Чтобы проверить, работают ли у вас специальные шрифты, выполните в терминале команду:
echo -e "\ue0b0 \u2b80 \ue0a0 \u2b82 \ue0b2 \u2b81 \ue0a2 \u2b83"
У вас появится знаки как на скрине нижу. Цвет шрифта у вас может быть другой.

А такие часики в теме ZSH_THEME=«amuse».
С таким программами и плагинами администрирование сервера выглядит куда приветливее, ну и это еще не все, подписывайся чтобы ничего не пропустить.
