14. Командный интерпретатор shell - назначение, роль в системе, виды shell-ов (некоторые).

Shell (оболочка)

Оболочки (командные интерпретаторы, процессоры, shells) представляют собой промежуточные уровень между пользователем и ОС. Они анализируют командную строку, выполняют преобразования аргументов команд, находя и выполняя команды.

Shell это обычная прикладная программа. Она не является частью ядра, и поэтому может быть заменена на любую другую, например, на игрушку или текстовый редактор. Из оболочки может быть запущена другая оболочка (или такая же), что дает дополнительные возможности.

Виды shell: sh, csh, ksh, zsh, tcsh, ash и другие.

Bourne Shell

Сценарий (скрипт) оболочки представляет собой текстовый файл, который задает выполнение последовательности действий. Сценарий может содержать любую последовательность команд (как внутренних команд оболочки, так и внешних команд UNIX, с аргументами или без них), вызовов программ или других написанных ранее сценариев. Про Shell можно сказать, что это и программа и язык программирования. Работа пользователя в командной сроке ничем не отличается от выполнения длинного запутанного скрипта. Механизм работы скрипта: при запуске скрипта из командной строки запускается копия интерпретатора, для которого вводом служит скрипт (как-будто пользователь сам вводил эти команды). Для запуска по имени, файл скрипта должнен иметь атрибут X (eXecutable - исполняемый).

Разновидности:

sh является удобным и часто используемым интерпретируемым языком программирования. Он содержит стандартные конструкции для циклов, ветвления, объявления функций и т. п. Данный язык часто используется в UNIX-подобных системах при создании различных сценариев (скриптов) работы, в частности, сценариев автоматического конфигурирования исходных кодов программ перед их компиляцией. Отличительная особенность языка sh — многие операции, которые в традиционных языках программирования являются встроенными, выполняются с помощью вызова внешних программ.