За что я люблю Zsh. Так начиналась любовь

Алексей Федорчук

Это случилось в далёком 2001 году, когда я впервые поставил себе на домашнюю машину FreeBSD. В которой login shell по умолчанию был — /bin/sh для пользователя и /bin/csh для администратора. Первый, точно соответствуя спецфикациям пресловутого POSIX Shell, не умел ничего, что выходило за их пределы, в том числе авотдополнения, ни нормальной истории команд, ни даже управляющих последовательностей, кроме Control+H. Впрочем, представить себе возможности (точнее, невозможности) POSIX Shell может каждый — для этого достаточно в строке свого любимого Bash’е запустить /bin/sh.

Что же до /bin/csh, то это на самом деле была оболочка Tcsh, но запускавшаяся таким образом, чтобы точно воспроизводить функционал того самого Csh, который некогда изобрёл Билл Джой. Возможностей здесь, конечно, было поболее, чем в /bin/sh — например, имелось автодополнение для путей (но не для команд). Однако и он выглядел убого по сравнению даже с тогдашним Bash’ем, давно уже ставшим стандартным в Linux’е.

И я занялся сравнительным изучением различных шеллов. Быстро вяснилось, что и Bash во FreeBSD можно установить из портов, и Tcsh, запущенный нормально и должным образом настроенный, по своим интерактивным возможностям не уступает Bash’у. А в те времена далёкие — даже его превосходил (ИМХО, разумеется). Причём настолько, что после него Bash казался мне скучноватым. А у Tcsh, при всех его многочисленных достоинствах, был один недостаток, но недостаток неискоренимый: несовметсимость со стандартом POSIX Shell. Так что даже виртуозное владение им как интерактивным инструментом не избавляло от хоть какого-нибудь знания оболочек, с последним совместимых, дабы разбирать системные скрипты и при необходимости править их.

И тут мне в руки попалась книжка Андрея Шевеля под названием: Linux. Обработка текстов. Специальный справочник, изданная в 2001 году издательством «Питер». Изрядная часть её была посвящена командным оболочкам посвящена командным оболочкам вообще и характеристике конкретных их представителей, в том числе и Zsh. Про который было сказано, что он аккумулировал в себе весь функционал предшественников, в том числе Bash и Tcsh. Такая оценка вдохновила меня на установку этого шелла, который оказался доступен в портах FreeBSD, и освоение его. Благо уже в те далёкие времена Zsh был документирован просто образцово, хотя и на английском.

И с тех пор Zsh стал моим неизменным спутником в скитаниях по всем системам и дистрибутивам. Вместе с первым конфигом ~/.zshrc, составленным в том же далёком году по собственному разумению и примерам из Интернета, тогда ещё не очень многочисленным. И за все эти годы он подвергался лишь косметической правке, связанной с появлением нового функционала. А когда, с появлением в нём возможности автоконфигурирования при первом запуске, я попробовал создать новый конфиг «с нуля», оказалось, что он почти точно совпал с тем самым, имеющим геологический возраст.

Изменил я Zsh’у лишь на период сочинения книжки про Ubuntu и Kubuntu: поскольку она была рассчитана (в том числе и) на совсем начинающих пользователей, я на короткое время обратился к стандартному для Linux’а Bash’у. Надо сказать, что, хотя последний и развился к тому времени (2005-й год), но до возможностей Zsh не дотягивал (как, скажу по секрету, не дотягивает и сейчас). И когда необходимость снивелироваться до общего стандарта отпала, я с облегчением вернулся к своей любимой командной среде.

Содержание

За что я люблю Zsh. Так начиналась любовь: 1 комментарий

  1. Доброго времени суток,

    Алексей, Благодарю за очерк-инструкцию так как сказать по установке и замене с Bash на Zsh login shell
    проделал этот процесс на компюьтре интересно и познавательно.

Добавить комментарий