Cintu и Zsh. Вступление
Алексей Федорчук
Эта серия набросков (или шпаргалок) посвящена приёмам работы к командной строке вообще и в Zsh в особенности. Именно эта командная оболочка принята в Cintu как регистрационная (login shell) по умолчанию, вместо традиционного для почти всех дистрибутивов Linux оболочки Bash. Причин такого выбора несколько. и основные из них — следующие:
- бесспорное превосходство Zsh над всеми другими шеллами при интерактивной работе;
- наличие некоторых уникальных функций, не реализованных ни в одной другой командной оболочке;
- лёгкая, вследствие этого, интеграция Zsh с менеджером пакетов APT.
Не все из перечисленных возможностей работает в Zsh «из коробки» — большая их часть требует соответствующей настройки. В Cintu включён главный конфигурационный файл этой оболочки ~/.zshrc
для пользователя, чей аккаунт создаётся при установке системы. В него включены все опции, необходимые для работы описываемого функционала. Файл этот по возможности прокомментирован на русском языке. А поскольку консоль в Cintu корректно русифицирована, его можно прочитать даже при крахе графической оболочки.
В следующих релизах Cintu оболочка Zsh будет по умолчанию определяться как login shell для каждого вновь создаваемого аккаунта, наследующего аналогичный конфиг из /etc/skel/.zshrc
. А в предыдущих релизах для достижения того же результата следует, во-первых, в файле /etc/adduser.conf.
строку
DSHELL=/bin/bash
заменить на
DSHELL=/bin/zsh
А во-вторых, следует скопировать пользовательские конфиги .zshrc
и .zshenv
:
$ sudo cp ~/.zsh* /etc/skel/
Обращаю внимание на файл .zshenv
. Раньше он был жизненно необходим для работы всего одной, но очень полезной функции Zsh — поиска в истории по фрагменту строки (см. следующий набросок). Нынче надобность в нём отпала, и он сохраняется «на всякий пожарный».
Ну и напоследок рецепт для тех потенциальных применителей Cintu, которые категорически не пожелают расставаться с привычным Bash’ем. Вернуть его в качестве регистрационной оболочки текущего пользователя можно командой
$ chsh -s /bin/bash
А чтобы сделать Bash регистрационной оболочкой для всех вновь создаваемых пользователей, достаточно оставить нетронутым файл /etc/adduser.conf.
в текущих релизах, или заменить в нём /bin/zsh
на /bin/bash
в релизах грядущих.
И совсем под занавес — я таки надеюсь, что потенциальные применители Cintu оценят несравненные достоинства Zsh как интерактивной оболочки. И необходимости выполнять послендние две процедуры у них не возникнет. Для чего, собственно, и сочинялись эти наброски.