Оболочка (zsh) представляет собой командный интерпретатор.
По своим свойствам она ближе всего к Korn оболочке (ksh). С момента
появления
zsh ее совместимость с ksh значительно улучшилась. Улучшились
свойства редактирования командной строки, возможности определения
поведения оболочки, особенности, позволяющие пользователям знакомым с
языком C
и оболочкой (csh) чувствовать себя уверенней, а также часть полезных
возможностей, взятых из tcsh (дополнительная "пользовательская" оболочка).
Трудно утверждать, что лишь zsh аккумулирует
полезные свойства всех остальных оболочек, поскольку все они в той или
иной степени наследуют полезные свойства более ранних оболочек. Тем не
менее, можно обратить внимание на═следующие позиции, по которым zsh
имеет некоторое преимущества по сравнению с другими оболочками (csh, bash,
tcsh).
редактирование командной строки:
программируемое завершение: встроенная возможность использовать
всю мощность свойства глобализации имен файлов (compctl-g),
редактирование команд, состоящих из нескольких строк, как
единый буфер (даже файлы!),
редактирование переменных (vared),
стек команд,
печать текста прямо в буфер для последующего редактирования
print -z),
выполнение не связанных (unbound) команд,
меню завершения,
расширение внутри строки переменных, команд═из истории.
глобализация имен файлов (globbing) - исключительно мощная:
рекурсивная глобализация (сравни с find),
задание параметров файла (размер, тип, прочее, снова
сравни с find),
полные альтернативы и отрицания образцов имен файлов.
Управление множественными перенаправлениями (проще, тем известная
команда tee).
Большое количество возможностей подстройки.
Расширение пути поиска программы (=foo -> /usr/bin/foo).
Подстраиваемые сообщения (включая условные выражения).
Именованные каталоги.
Гибкая целочисленная арифметика.
Манипулирование массивами (включая обратное индексирование).