Релиз командной оболочки zsh 5.1
Представлен релиз командной оболочки zsh 5.1. Оболочка поддерживает набор команд bourne shell и обладает рядом расширенных функций, направленных на увеличение удобства интерактивной работы в командной строке. В частности, zsh отличается гибкой системой выборки файлов, возможностью редактирования многострочных команд и мощными средствами автоматического дополнения ввода, в том числе с поддержкой автодополнения аргументов для различных популярных команд.
Основные новшества:
- Изменена нумерация выпусков, вместо трёх цифр (x.y.z) для релизов теперь будет применяться упрощённый формат «x.y», где x — номер значительной ветки, y — номер корректирующего выпуска;
- Поддержка нового синтаксиса назначений переменных после встроенных ключевых слов, таких как «local», «declare», «export», «readonly» и «typeset». Для данных ключевых слов введены зарезервированные наименования и изменён порядок присвоения значений — все перечисляемые после ключевых слов отдельные присвоения теперь трактуются как присвоения, заданные с новой строки. Например, при указании «local scalar=`echo one word` array=(several words)» в локальную переменную scalar будет записан текст «one word», а в массив значения «several» и «words»;
- Добавлена защита от атак по подстановке команд в терминал: текст теперь передаётся в форме экранированного набора символов, что требует явного нажатия Enter на клавиатуре для выполнения команды, без возможности инициировать данное действие через спецсимвол перевода строки. Защита реализована через новый режим ZLE, осуществляющий принудительное обрамления в кавычки текста, вставляемого из буфера обмена;
- Усовершенствованы средства автодополнения ввода;
- В команду print добавлены опции -x и -X для раскрытия символов табуляции в пробелы;
- В «fc» добавлены опции для разделения внутренней и совместной истории;
- Все эмуляции, включая «sh», переведены по умолчанию на использование мультибайтовой кодировки;
- Улучшена совместимость встроенной команды getopts с POSIX (в режиме POSIX_BUILTINS);
- Новый параметр setopt APPEND_CREATE для включения POSIX-совместимого поведения NO_CLOBBER;
- Для управления откатом изменений добавлен новый параметр UNDO_LIMIT_NO;
- Многочисленные изменения в работе с дочерними процессами и обработке сигналов, внесённые для избежания состояний гонки и взаимных блокировок при использовании файловых дескрипторов и управлении памятью;
- В модуле zsh/system реализована новая встроенная команда sysopen для детального управления режимами файловых дескрипторов.
© OpenNet