Кома́ндная оболо́чка Unix (, часто просто «шелл» или «sh») — командный интерпретатор, используемый в операционных системах семейства Unix, в котором пользователь может либо давать команды операционной системе по отдельности, либо запускать скрипты, состоящие из списка команд. В первую очередь, под shell понимаются POSIX-совместимые оболочки, восходящие к Bourne shell (шелл Борна), появившемуся в Unix Version 7.
Разновидности sh — оригинальный шелл Борна; dash, bash, zsh — другие современные клоны Bourne shell (расположены по возрастанию функциональности). ksh (KornShell) — клон шелла Борна, разработанный Дэвидом Корном из AT&T Labs. Синтаксис совместим, функциональность интерактивности увеличена. pdksh (public domain ksh) — открытая (почти целиком является общественным достоянием) реализация ksh. bash (bourne again shell) (эмуляция совместимости POSIX) расширенная Борном свободная (разработанная в рамках проекта GNU) оболочка ash, сходная с pdksh. Стандартная оболочка в Linux. C shell — (несовместима с POSIX shell) оболочка, с синтаксисом на основе Си, созданная Университетом Беркли в рамках проекта по реализации BSD Unix. csh (C-Shell) — оболочка из состава дистрибутива BSD, имеет Си-образный синтаксис и не является POSIX-совместимой. Впервые введены возможности управления заданиями и произведены другие улучшения. tcsh (csh) — реализация csh с интерактивными возможностями, не уступающими bash. Удобна для интерактивной работы. Совместима с csh. ash (Almquist shell, оболочка Альмквиста), BusyBox — современные микроверсии, предназначенные для встраиваемых систем, контейнеров (например, на основе Alpine Linux), а также используемые в сборках, где важна легковесность. xsh (Xiki shell, от executable wiki) — новая командная оболочка, совмещающая командный и графический режимы работы fish (Friendly Interactive SHell) — (несовместима с POSIX) командная оболочка, отличительными особенностями которой являются продвинутое автодополнение и подсветка синтаксиса "из коробки", а также упрощённый язык скриптов
Программирование sh является удобным и часто используемым интерпретируемым языком программирования. Он содержит стандартные конструкции для циклов, ветвления, объявления функций Данный язык часто используется в UNIX-подобных системах при создании различных сценариев (скриптов) работы, в частности, сценариев автоматического конфигурирования исходных кодов программ перед их компиляцией. Отличительная особенность языка sh — многие операции, которые в традиционных языках программирования являются встроенными, выполняются с помощью вызова внешних программ. Так, например: expr используется для вычисления арифметических выражений; test используется для сравнения чисел и строк, а также для определения наличия или атрибутов файлов; sed, tr, awk, head, tail, cut и другие — для работы с текстом.
Примечания
Ссылки
Категория:Командные оболочки Unix Категория:Языки программирования по алфавиту Категория:POSIX