За что я люблю Zsh. Повод первый: документированность

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

Как я уже сказал, Zsh прекрасно документирован. Правда, по первости можно удивиться отсутствию для его текущих версий (5.0.X) стандартных man-страниц. Раньше они были, причём во множестве — вот их список, который, как скоро будет ясно, представляет не только исторический интерес:

  • zshroadmap — введение к прочим руководствам;
  • zshmisc — то, что не вошло в остальные страницы;
  • zshexpn — расширения и подстановки;
  • zshparam — параметры;
  • zshoptions — опции;
  • zshbuiltins — встроенные команды и функции;
  • zshzle — редактор командной строки (ZLE);
  • zshcompwid — виджеты автодополнения;
  • zshcompsys — система автодополнения;
  • zshcompctl — управление автодополнением;
  • zshmodules — загружаемые модули;
  • zshcalsys — встроенные календарные функции;
  • zshtcpsys — встроенные функции TCP;
  • zshzftpsys — встроенный FTP-клиент;
  • zshcontrib — дополнительные функции и утилиты.

Но со временем суммарный объём man-документации достиг такого размера, что ей практически стало невозможно пользоваться в том режиме, в котором мы все привыкли общаться с любимой тётей Маней. И потому разработчики Zsh от man-страниц в составе самого пакета отказались.

Но зато, во-первых, пакет zsh и жёстко с ним связанный zsh-common сопровождается пакетом zsh-doc, который в большинстве дистрибутивов следует устанавливать специально. Он содержит материалы в форматах info и html общим объёмом 6 МБ, а также включает PDF-руководство на 400 страниц.

Во-вторых, Zsh сопровождается также пакетом zsh-lovers — его, если нужно, также требуется установить отдельно. Он содержит, во-первых, большинство тех самых man-страниц, которые были изъяты из основного пакета — в чисто текстовом формате или в виде gz-компрессированных файлов. Их можно посмотреть по прямым путям утилитами less и zcat, например, так:

$ less /usr/share/doc/zsh-lovers/zsh_people/strcat/zlogin
# $Id: .zlogin,v 1.1 2004/06/10 09:59:46 dope Exp dope $
#
# .zlogin is sourced in login shells.  It should contain commands that
# should be executed only in login shells.  It should be used to run a
# series of external commands (fortune, msgs, etc).
...

Или вот так:

$ zcat /usr/share/doc/zsh-lovers/zsh_people/strcat/zshmisc.g
#  ,----
#  | [dope@painless:~]% ulimit -a
#  | -t: cpu time (seconds)         2000
#  | -f: file size (blocks)         500000
#  | -d: data seg size (kbytes)     100000
#  | -s: stack size (kbytes)        8192
#  | -c: core file size (blocks)    0
#  | -m: resident set size (kbytes) unlimited
#  | -u: processes                  1791
#  | -n: file descriptors           1024
#  | -l: locked-in-memory size (kb) 50000
#  | -v: address space (kb)         unlimited
#  | -N 10: file locks              unlimited
#  | [dope@painless:~]%
#  `----
...

Далее, в этом пакете содержится обращение к тёте Мане от его собственного имени:

$ man zsh-lovers

Оно имеется и в версиях HTML и PDF. А рядышком с ними лежит файл /usr/share/doc/zsh-lovers/README, содержащий сведения об авторах всех компонентов пакета. Каковыми, кроме указанных, являются многочисленные примеры конфигов для отдельных модулей Zsh, а также просто полезные советы по его применению в жизни.

В-третьих, неисчислимое по объёму количество информации о Zsh’е имеется в Интернете — и всё это богачество доступно по ссылкам с официальный сайт, главнейшей из которых является ссылка на zsh.sourceforge.net. Здесь можно найти руководства по этому шеллу на любой вкус — от «юзерофильного» до исчерпывающего, а также ссылки на книги, wiki, статьи и прочие материалы. Разбираться в этом океане я предоставляю заинтересованным (или заинтересовавшимся) читателям.

Наконец, в-третьих с половиной, официальными или полуофициальными ресурсами информация о Zsh не исчерпывается — существует много «неучтённых» на zsh.sourceforge.net сайтов и блогов, ведомых любителями этого шелла. И на них часто можно найти освещение мелких, но неожиданных и интересных нюансов его конфигурирования.

Так что первым поводом полюбить Zsh была полнота и организованность сетевых источников информации по этому шеллу. Правда, в те времена — только англоязычной, на сайтах Рунета он в лучшем случае только упоминался. Потому я взялся за исправление этой несправедливости. Чем занимаюсь и по сей день, хотя с той поры число русскоязычных материалов по данной теме изрядно прибавилось (из них хотелось бы отметить подборку статей на сайте Михаила Мищенкова aka muhas). Однако тема эта столь необъятна, что всегда найдётся что сказать по ней из несказанного.

Сначала, я хотел собрать, актуализировать и дополнить материалы, сочинявшиеся мной на протяжении 10 лет (последний по времени — этот). Однако быстро понял, что если выполнить эту программу по максимуму — получился бы пересказ монументального A User’s Guide to the Z-Shell Петера Стефенсона (Peter Stephenson). Что мне было сделать слабо. А по программе-минимум всё уже было сказано. И тогда я решил написать просто отдельные очерки, посвящённые тем вопросам применения Zsh, которые в своё время вызвали моё восторженное к нему отношение. И которые могут привлечь к нему внимание применителей всех стран и народов.

Содержание

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