Zsh. Так что же будем настраивать?
Разобравшись с назначением dot-файлов, можно, наконец, подумать о собственно конфигурировании. Процесс этот начнём с того, что отделим зерна от плевел, то есть решим: а какие же именно файлы нужно настроить.
Для начала я оставил бы в покое все файлы из каталога /etc
. Почему? Да потому, что во многих дистрибутивах Linux имеются либо предварительно настроенные общесистемные конфиги, либо предусмотрены средства для их автоматического создания и обновления. А во FreeBSD в каталоге /etc
принято хранить только профильные файлы общесистемного шелла (сиречь /bin/sh
, тогда как настройка пользовательского шелла -- сугубо личное дело пользователя.
Так что ограничиваемся только нашим домашним каталогом. Однако и здесь многое зависит от ОС и дистрибутива. Так, в user-ориентированных дистрибутивах Linux первый кандидат на удаление (или не-копирование) -- файл ~/.zshenv
. Конечно, его можно создать в предельно облегчённом виде (например, настройка приёмов неинтерактивной работы здесь абсолютно лишняя). Характерно, что в штатном примере zshenv
присутствует только переменная PATH
. Но ведь её можно получить из общесистемного /etc/profile
, не так ли?
Особенно лишним выглядит ~/.zshenv
в тех системах, где предусмотрен какой-либо механизм установки общих переменных -- а это практически все современные user-ориентированные дистрибутивы Linux. Так что при отсутствии ~/.zshenv
все необходимое (в актуальном виде) будет браться оттуда. В присутствии же его -- zsh
откажется от считывания /etc/profile
, в результате чего такие переменные, как локаль, EDITOR
, PAGER
и тому подобные, придётся определять дополнительно.
А вот во FreeBSD и тех дистрибутивах Linux, которые (как, например, CRUX) не имеют средств автоматизации установки общесистемных переменных, файл ~/.zshenv
оказывается практически необходимым. И ниже я попытаюсь обосновать это (а заодно и продемонстрировать, что в нем может содержаться).
Далее, решаем, а нужен ли нам отдельный конфиг для login shell
, и если нужен -- то какой из них -- ~/.zlogin
или ~/.zprofile
. Теоретически, можно обойтись и без того, и без другого. Уж без последнего -- так наверняка, не зря же его нет ни среди штатных примеров, ни среди многочисленных конфигов, которыми поделились с народом активные пользователи zsh
.
Не помешает и файл ~/.zlogout
-- его возможное содержание также будет рассмотрено позднее.
Остаётся главный (по крайней мере, самый большой) конфиг -- ~/.zshrc
. Что с ним делать? На этот вопрос существует несколько ответов.
В прежние времена можно было
- создать свой
~/.zshrc
с нуля; - взять один из примеров этого файла и доводить его до ума по собственному разумению;
- подобрать в сети подходящий конфиг -- благо таковых народ выложил немало.
Нынче же проще всего начать с автоконфигурирования. Именно этим мы и займёмся на следующих страницах.
. .