zsh и oh my zsh

Wab IT

zsh и oh my zsh

Установка 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.   

MethodCommand
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.Зачем нужен: Экономит кучу нервов и времени при работе под обычными пользователями.

При создании нового пользователя добавляем ему все ссылки и подключения.

Открываем под новым пользователем 

nano ~/.zshrc

И вставляем код с подключениями. 

export ZSH="/opt/oh-my-zsh"
export ZSH_CUSTOM="/opt/oh-my-zsh/custom"
ZSH_THEME="spaceship"
plugins=(z sudo fzf git safe-rm zsh-autosuggestions zsh-syntax-highlighting)
source $ZSH/oh-my-zsh.sh  

Перегружаем zsh 

 source ~/.zshrc

Для себя (сменит оболочку текущему пользователю):

chsh -s /bin/zsh

Установка специальных шрифтов

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

Я использую шрифт Courier New, Version: 1.211. Скачать по ссылке выше, смотрите в разделе Cousine Nerd Font.

Нажав на Preview вы сможете посмотреть, как выглядят шрифты. Нажмите Download и скачайте архив Cousine на ваш компьютер. Распакуйте и добавьте шрифты в Виндовс.
В вашем терминале например в PuTTy, зайдите в раздел Window,

  1. Appearance
  2. Change
  3. Выберет шрифт, у меня Courier New
  4. Стиль обычный или жирный
  5. Размер шрифта

Посмотрите ниже или выбран Набор символов Западноевропейский.
Нажимаете Ок и заходите на сервер.

Чтобы проверить, работают ли у вас специальные шрифты, выполните в терминале команду:

echo -e "\ue0b0 \u2b80 \ue0a0 \u2b82 \ue0b2 \u2b81 \ue0a2 \u2b83"

У вас появится знаки как на скрине нижу. Цвет шрифта у вас может быть другой.

А такие часики в теме ZSH_THEME=«amuse». 

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

14:25
6
Lit
RSS
Нет комментариев. Ваш будет первым!