Перейти к содержанию

Командная оболочка Unix

Эта статья находится на начальном уровне проработки, в одной из её версий выборочно используется текст из источника, распространяемого под свободной лицензией
Материал из энциклопедии Руниверсалис
Командный язык POSIX оболочки (стандарт 2017).

Кома́ндная оболо́чка Unix (англ. Unix shell, часто просто «шелл» или «sh») — командный интерпретатор, используемый в операционных системах семейства Unix, в котором пользователь может либо давать команды операционной системе по отдельности, либо запускать скрипты, состоящие из списка команд. В первую очередь, под shell понимаются POSIX-совместимые оболочки, восходящие к Bourne shell (шелл Борна), появившемуся в Unix Version 7.

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

  • sh — оригинальный шелл Борна; dash, bash, zsh — другие современные клоны Bourne shell (расположены по возрастанию функциональности).
    • ksh (KornShell) — клон шелла Борна, разработанный Дэвидом Корном из AT&T Labs. Синтаксис совместим, функциональность интерактивности увеличена[1].
    • pdksh (public domain ksh) — открытая (почти целиком является общественным достоянием[2]) реализация ksh.
    • bash (bourne again shell) (эмуляция совместимости POSIX[1]) расширенная Борном свободная (разработанная в рамках проекта GNU) оболочка ash, сходная с pdksh. Стандартная оболочка в Linux.
  • C shell — (несовместима с POSIX shell) оболочка, с синтаксисом на основе Си, созданная Университетом Беркли в рамках проекта по реализации BSD Unix.
    • csh (C-Shell) — оболочка из состава дистрибутива BSD, имеет Си-образный синтаксис и не является POSIX-совместимой. Впервые введены возможности управления заданиями и произведены другие улучшения.
    • tcsh (csh) — реализация csh с интерактивными возможностями, не уступающими bash[1]. Удобна для интерактивной работы. Совместима с csh.
  • ash (Almquist shell, оболочка Альмквиста), BusyBox — современные микроверсии, предназначенные для встраиваемых систем, а также используемые в мини-дистрибутивах.
  • xsh (Xiki shell, от executable wiki) — новая командная оболочка, совмещающая командный и графический режимы работы
  • fish (Friendly Interactive SHell) — (несовместима с POSIX) командная оболочка, отличиетельными особенностями которой являются продвинутое автодополнение и подсветка синтаксиса "из коробки", а также упрощённый язык скриптов

Программирование

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

  • expr используется для вычисления арифметических выражений;
  • test используется для сравнения чисел и строк, а также для определения наличия или атрибутов файлов;
  • sed, tr, awk, head, tail, cut и другие — для работы с текстом.

См. также

Примечания

  1. 1,0 1,1 1,2 Алексей Федорчук. Введение в Zsh (shell zsh). OpenNET (23 декабря 2003). Дата обращения: 10 июня 2010. Архивировано 21 июля 2011 года.
  2. pdksh. Дата обращения: 10 июня 2010. Архивировано 23 августа 2011 года.

Ссылки

Шаблон:Командные оболочки Unix