- Zsh установка и настройка
- Содержание
- Установка zsh, oh-my-zsh, fast-syntax-highlighting, zsh-autosuggestions.
- Настройка.
- Делаем Linux терминал красивым и удобным
- Добавляем функциональность
- Командная оболочка
- Настройка Zsh
- Настраиваем внешний вид
- Zsh (Русский)
- Contents
- Установка
- Первоначальная настройка
- Установка Zsh в качестве оболочки по умолчанию
- Файлы Запуска/Завершения
- Настройка Zsh
- Простой .zshrc
- Настройка переменной $PATH
- Автозавершение команд
- Обработчик неизвестных команд
- Игнорирование повторяющихся строк в истории
- Команда ttyctl
- Назначение клавиш
- Назначение клавиш в оболочке
- Назначение клавиши в ncurses
- Альтернативный путь назначения клавиш в ncurses
- Горячие клавиши в файловом менеджере
- История поиска
- Настройка строки приглашения (PROMPT)
- Настройка командной строки (PROMPT)
- Цвета
- Цветной вывод команд
- Пример
- Стек Каталогов
- Команда Help
- Подсветка синтаксиса как в Fish
- Примеры файла .zshrc
- Фреймворки настроек
- Автозапуск приложений
- Постоянный rehash
- Функции
- Распаковка архива
- Упаковка в архив
- Удаление
- Смотрите также
Zsh установка и настройка
/.zshrc , конечный результат примерно такой. Рекомендую установить и использовать терминал urxvt о настройке которого я писал в прошлом посте.
Содержание
Установка zsh, oh-my-zsh, fast-syntax-highlighting, zsh-autosuggestions.
- oh-my-zsh: надстройка над zsh.
- fast-syntax-highlighting: подсветка синтаксиса.
- zsh-autosuggestions: автодополнение.
Переключение шелла на zsh: chsh -s /usr/bin/zsh , обратно на bash(при необходимости): chsh -s /usr/bin/bash .
Настройка.
Мой конфиг .zshrc, необходимо сохранить в домашнюю директорию
/.zshrc , если файл существует замените.
Так как oh-my-zsh установлен через yay, то строка ZSH=/usr/share/oh-my-zsh/ идет от корня, это косается и плагинов.
Тема оформления строки приветствия задается в данной строке ZSH_THEME=»af-magic» . Сами темы можно выбрать тут.
Плагинов из набора oh-my-zsh полно, но я их не использую, вот тут они прописываются.
Использую только то, что установил дополнительно, путем экспорта в файл. Полный путь до .zsh файла. В зависимости от способа установки путь может отличаться, в данном случае такой.
Тут задаем дерикторию кэша и условие проверки.
Экспорт путей со скриптами и бинарниками.
Экспорт различных переменных.
Условие проверки и загрузки файла. Алиасы можно и не выносить в отдельный файл, но так удобнее.
Данный блок не обязателен, отвечает за fzf поиск.
В момент набора и появления автодополнения можно перемещаться по словам Ctrl+стрелка вправо, а просто стрелка вправо прыжок в конец подсвеченной строки.
Вот собственно и все, немного пробежался по этой теме.
Источник
Делаем Linux терминал красивым и удобным
Добавляем функциональность
Командная оболочка
Большинство дистрибутивов поставляется со встроенным Bash. Используя дополнения можно сделать из него все что захотите, но гораздо проще этого добиться с Zsh. Почему?
Настройка Zsh
Для начала, установим Zsh (если он уже установлен, например, как в Manjaro, можете пропустить этот пункт):
Когда вам предложат установить Zsh как оболочка по-умолчанию, нажмите Y , чтоб подтвердить.
Oh-My-Zsh — популярный и активно развивающийся фреймворк Zsh, который позволяет гибко настроить оболочку терминала. Установим его:
Подсветка синтаксиса. Гораздо проще ориентироваться по содержимому терминала, когда разные части команд подсвечены разными цветами. Например, директории будут подчеркиваться, а команды — выделяться цветом, отличным от обычного текста. Установим плагин zsh-syntax-highlighting :
Чтоб плагин заработал, его надо подключить.
/.zshrc меняем строку с plugins= :
Если такой строки нет — добавьте её.
Готово! Получаем удобный и функциональный терминал. Теперь сделаем его визуально приятным.
Настраиваем внешний вид
Скачиваем и добавляем в систему шрифт JetBrains Mono Nerd (c иконками):
Выберитеодин из списка, в папке шрифт/complete выберите шрифт без «Windows Compatible», с окончанием «Mono».
Подключаем шрифт и тему.
Если в файле эти строки уже есть — замените их.
Цвета. Важная часть оформления терминала — цветовая схема. Я перебрал много разных схем, редактировал их, остановился на Monokai Dark. Не режет глаза, но при этом приятная и яркая. Список цветов:
В разных терминалах по-разному меняется цветовая схема (обычно, это делается через настройки терминала), но порядок цветов везде одинаковый. Вы можете импортировать этот шаблон в формате Termite и экспортировать его для вашего терминала через terminal.sexy
Запускаем конфигурацию темы: p10k configure .
Настройте тему, выбирая варианты отображения, которые вам больше нравятся.
Финальный штрих — меняем конфиг темы и заменяем встроенные цвета.
Если в файле эти строки уже есть — замените их. Коды цветов можно получить командой
- Отображение только текущей директории:
Источник
Zsh (Русский)
Zsh является мощной современной оболочкой, которая работает как в интерактивном режиме, так и в качестве интерпретатора языка сценариев. Он совместим с bash (не по умолчанию, только в режиме emulate sh ), но имеет преимущества, такие как улучшенное завершение и подстановка.
Еще больше причин, по которым стоит использовать Zsh, перечислено в Zsh FAQ EN.
Contents
Установка
Перед установкой вы можете посмотреть, какая оболочка используется в данный момент:
Установите пакет zsh . Чтобы значительно расширить возможности автодополнения команд, установите также пакет zsh-completions .
Первоначальная настройка
Убедитесь, что Zsh был установлен правильно, выполнив следующую команду в терминале:
После этого вы должны увидеть скрипт zsh-newuser-install, который проведет вас через некоторые основные настройки. Если вы хотите пропустить первичную настройку, нажмите q . Если скрипт не запустился, вы можете вызвать его вручную:
Установка Zsh в качестве оболочки по умолчанию
/.zshrc (например, приглашение командной строки и псевдонимы), а также из
Файлы Запуска/Завершения
При запуске Zsh по умолчанию он будет загружать следующие файлы в этом порядке:
/etc/zsh/zshenv Используется для установки общесистемных переменных environment variables (Русский); Он не должен содержать команд, которые производят вывод, или предполагает, что shell подключен к tty. Этот файл всегда будет источником, это нельзя переопределить. $ZDOTDIR/.zshenv Используется для установки переменных среды пользователя; Он не должен содержать команд, которые производят вывод, или предполагает, что shell подключен к tty. Этот файл всегда будет источником. /etc/zsh/zprofile Используется для выполнения команд при запуске, будет вызван при запуске как login shell. Обратите внимание, что в Arch Linux по умолчанию в нем содержится одна строка, в которой источником является /etc/profile . /etc/profile Этот файл должен быть загружен всеми Bourne-совместимыми оболочками при входе в систему: он устанавливает $PATH и другие переменные окружения и специфичные для приложения ( /etc/profile.d/*.sh ) при входе в систему. $ZDOTDIR/.zprofile Используется для выполнения пользовательских команд при запуске, будет вызван при запуске как login shell. /etc/zsh/zshrc Используется для настройки интерактивной конфигурации оболочки и выполнения команд, будет вызван при запуске как interactive shell. $ZDOTDIR/.zshrc Используется для настройки интерактивной конфигурации пользователя и выполнения команд, будет вызван при запуске как interactive shell. /etc/zsh/zlogin Используется для выполнения команд при завершении прогресса инициализации, будет вызван при запуске как login shell. $ZDOTDIR/.zlogin Используется для выполнения пользовательских команд при завершении начального прогресса, будет вызван при запуске как login shell. $ZDOTDIR/.zlogout Будет получен, когда login shell завершится. /etc/zsh/zlogout Будет получен, когда login shell завершится.
Настройка Zsh
Хотя Zsh может использоваться “из коробки”, он настроен не так, как хотело бы большинство пользователей. Из-за наличия огромных возможностей настройки, доступных в Zsh, этот процесс может оказаться сложным и трудоемким.
Простой .zshrc
Ниже приведён пример файла настроек, который обеспечивает достойный набор опций по умолчанию, а также предоставляет примеры многих вариантов настройки Zsh. Для того, чтобы использовать этот пример, сохраните его в виде файла с именем .zshrc .
Вот простой .zshrc :
Настройка переменной $PATH
Информацию о настройке в zsh системных путей отдельно для каждого пользователя можно найти на странице проекта. Вкратце, добавьте в файл
/.zshenv следующие строки:
Смотрите также примечание в разделе #Фреймворки настроек.
Автозавершение команд
Возможно, наиболее убедительной стороной Zsh является его передовые возможности автозавершения. Включите автозавершение в .zshrc . Добавив следующую строку в ваш
Настройки выше включают в себя также ssh/scp/sftp завершения хостов, но для того, чтобы эта функция работала, пользователи должны предотвратить SSH от хеширования хостов имён в
/.ssh/known_hosts где-то еще, так что ssh создаст новый с un-hashed хостами (ранее известные хосты, таким образом, будут утеряны). Для получения более подробной информации смотрите тут кэшированные-хосты.
Для автозавершения с использованием клавиши-стрелки, добавьте следующие строки в:
Для активации меню нажмите TAB дважды.
Для автозавершения командной строки для алиасов (псевдонимов), добавьте следующее:
Позволяем разворачивать сокращенный ввод, к примеру cd /u/sh в /usr/share
Обработчик неизвестных команд
В утилиту pkgfile входит Zsh скрипт, содержащий функцию command_not_found_handler . При вводе неизвестной команды функция автоматически осуществляет поиск в официальных репозиториях.
Чтобы включить хук, нужно его прочитать. Например, добавьте с файл .zshrc следующую строку:
Игнорирование повторяющихся строк в истории
Чтобы игнорировать повторяющиеся строки в истории, используйте следующее:
Чтобы освободить историю от уже созданных дубликатов, запустите:
Команда ttyctl
[1] описывает ttyctl команды в Zsh. Это можно применить для «замораживания / размораживания» терминала. Многие программы изменяют состояние терминала, и часто не восстанавливают настройки терминала нормально при выходе. Чтобы избежать необходимости вручную сбрасывать терминал, используйте следующее:
Назначение клавиш
Zsh не использует Readline, вместо этого он использует свой собственный и более мощный ZLE. Т.е. не читает /etc/inputrc или
/.inputrc . Zle имеет emacs режим и vi режим. По умолчанию, он пытается взять клавиши emacs или vi из переменной среды $EDITOR . Если она пуста, то по умолчанию будет Emacs. Измните это bindkey -e или bindkey -v соответственно в режиме Emacs или режиме VI.
Назначение клавиш в оболочке
Настраиваем нормальное поведение клавиш (не как в vi и emacs). Для этого в
/.zshrc добавьте следующее:
Назначение клавиши в ncurses
Bind a ncurses application to a keystoke, but it will not accept interaction. Use BUFFER variable to make it work. The following example lets users open ncmpcpp using Alt+\ :
Альтернативный путь назначения клавиш в ncurses
Этот метод будет содержать всё, что вы ввели в строку перед вызовом приложения
Горячие клавиши в файловом менеджере
Могут пригодится настройки клавиш использующиеся в графическом файловом менеджере. Первая комбинация показывает историю каталогов (Alt + Left), вторая позволяет пользователю перейти в родительский каталог (Alt + Up). Они также отображают содержимое каталогов.
История поиска
Добавьте эти строки в .zshrc
Doing this, only past commands beginning with the current input would have been shown.
Настройка строки приглашения (PROMPT)
Существует быстрый и легкий способ создать цветное приглашение в Zsh. Убедитесь что prompt установлен в autoload в файле .zshrc . Это может быть сделано путем добавления этих строк:
Доступные цветовые схемы можно перечислить с помощью команды:
Для просмотра всех доступных тем (с примерами), используйте команду:
Например, чтобы использовать цветовую схему bigfade , введите:
Чтобы использовать цветовую схему с заданным цветом (если доступен в теме), введите:
Настройка командной строки (PROMPT)
В отличие от bash zsh имеет два промта — левый и правый. Правый промт исчезает при вводе длинных команд, что делает его очень удобным для отображения не самой полезной информации, типа времени или текущего каталога. Промты настраиваются с помощью переменных PROMPT (левый) и RPROMPT (правый):
export PROMPT=’%n@%m> ‘ export RPROMPT='[%
Некоторые из специальных последовательностей, которые можно в них использовать: Последовательность — Описание %n — Имя пользователя %m — Имя компьютера (до первой точки) %M — Полное имя компьютера %
— Путь к текущему каталогу относительно домашнего %d — Полный путь к текущей директории ($PWD) %T — Время в формате HH:MM %* — Время в формате HH:MM:SS %D — Дата в формате YY-MM-DD %B, %b — Начало и конец выделения жирным
Цвета
Zsh устанавливает цвета иначе, чем Bash. Добавьте autoload -U colors && colors до PROMPT= в .zshrc чтобы воспользоваться. Usually you will want to put these inside % < [. ] %>so the cursor does not move.
$fg[color] будет установлен цвет текста (значения, подставляемые вместо “color”, к примеру: red, green, blue, и т.д.. — по умолчанию установлены в любом формате до текста)
Команда | Описание |
---|---|
%F | фактически то же самое, что и предыдущий, но с меньшим набором. Можно также вставить префикс с номером F. |
$fg_no_bold[color] | будет использоваться не толстый текст с заданным цветом. |
$fg_bold[color] | будет использоваться толстый текст с заданным цветом. |
$reset_color | сбросит цвет текста, на цвет по умолчанию. Не сбрасывает толщину текста. Используйте %b для отмены утолщения. Saves typing if it’s just %f though. |
%K | устанавливает цвет фона. Того же цвета, как цвет без текста полужирным. Prefixing with any single-digit number makes the bg black. |
Возможные значения цвета | |
---|---|
black или 0 | red или 1 |
green или 2 | yellow или 3 |
blue или 4 | magenta или 5 |
cyan или 6 | white или 7 |
Цветной вывод команд
Раскрашивание вывода команд при помощи скрипта grc. Поставьте пакет grc (доступен для установки из репозитория [community]) И добавьте следующие строки в ваш
Пример
Это пример двустороннего промта:
А вот как оно будет отображаться:
Стек Каталогов
Zsh можно настроить, чтобы он помнил DIRSTACKSIZE (последние посещённые каталоги). Это пригодится для более быстрой работы с cd. Вам нужно добавить несколько строк, в файл настройки:
Для вывода стека директорий. Используйте cd — чтобы вернуться к посещённому каталогу. Используйте автозавершение (нажав TAB ) после тире.
Команда Help
В отличие от bash, zsh не позволяет использовать встроенный в help команду для автодополнения. Чтобы использовать help в zsh, добавьте следующие строки в ваш
Подсветка синтаксиса как в Fish
Fish обеспечивает очень мощную подсветку синтаксиса. Для использования в zsh, вы можете установить zsh-syntax-highlighting из официального репозитория и обязательно добавьте в ваш
Примеры файла .zshrc
- Пакет grml-zsh-config , доступный в официальном репозитории взятый с https://grml.org/zsh содержит zshrc файл, который включает в себя множество настроек для Zshell. Эта настройка используется по умолчанию для ежемесячного ISO релиза.
- Базовая настройка с динамической строкой приглашения (Prompt) и заголовком окна / Hardinfo =>https://github.com/MrElendig/dotfiles-alice/blob/master/.zshrc;
- https://github.com/slashbeast/things/blob/master/configs/DOTzshrc [устаревшая ссылка 2020-08-06] — zshrc с несколькими функциями, — смотрите комментарии в файле. Известные особенности: подтверждение выключения, если пользователь запустил poweroff, а также запрос подтверждения на reboot или hibernate, поддержка GIT в Prompt (сделано без vcsinfo), завершение по TAB с меню, вывод текущей выполняемой команды в заголовке окна, и многое другое.
Фреймворки настроек
- oh-my-zsh управляемый сообществом, популярный фреймворк для настройки вашего Zsh. Он поставляется в комплекте с тонной полезных функций, помощников, плагинов, тем.
- Prezto — мгновенно прекрасный Zsh (доступен в prezto-gitAUR ) настроенный фреймворк Zsh. Он поставляется с модулями, разумно расширяющих среду интерфейса командной строки (по умолчанию), псевдонимами (алиасами), функциями, атодополнением, и темами Prompt.
- Antigen (дступен в antigen-gitAUR ) — менеджер плагинов для zsh, вдохновлённый oh-my-zsh и vundle.
Автозапуск приложений
Zsh всегда выполняет /etc/zsh/zshenv и $ZDOTDIR/.zshenv так что не раздувайте эти файлы.
При входе в оболочку, читаются команды из /etc/profile а потом $ZDOTDIR/.zprofile . Затем, если оболочка является интерактивной, команды читаются из /etc/zsh/zshrc а потом $ZDOTDIR/.zshrc . Наконец, если в оболочку выполнен вход, читаются /etc/zsh/zlogin и $ZDOTDIR/.zlogin .
Смотрите также секцию STARTUP/SHUTDOWN FILES в zsh(1) .
Постоянный rehash
Обычно compinit не находит новые исполняемые файлы в $PATH. Например после установки нового пакета, файлы в /usr/bin не сразу будут включены в автодополнение. Чтобы включить их в работу, выполните:
‘rehash’ может выполняться автоматически. Включите его в вашем zshrc :
Функции
Zsh позволяет пользователю определять собственные функции, которые могут выполняться точно также как и обычные программы. Функции выполняются в том же процессе, что и вызвавшая их программа. При вызове функции аргументы передаются как позиционные параметры.
Распаковка архива
Чтобы распаковать архив не указывая тип распаковщика и его аркументы, а выполнив всего лишь команду вида ex имя_архива.bz2 Добавьте следующий код в
Упаковка в архив
Упаковка в архив командой pk 7z /что/мы/пакуем имя_файла.7z — при этом архив будет в Домашней папке.
Удаление
Измените оболочку по умолчанию перед удалением пакета zsh .
Запустите следующую команду:
Где user — имя пользователя.
Используйте эту команду для каждого пользователя с установленной оболочкой zsh (в том числе и root при необходимости). После, удалите пакет zsh .
Кроме того, изменить оболочку по умолчанию обратно в Bash, можно редактируя /etc/passwd от root.
Например, изменить следующие:
Смотрите также
Рекомендуем обязательно обратится к следующим Русскоязычным статьям, для более полного и лучшего понимания.
Источник