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

Материал из Википедии — свободной энциклопедии
Перейти к: навигация, поиск

Кома́ндная оболо́чка 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 — современные микро-версии, предназначенные для встраиваемых систем, а также используемые в мини-дистрибутивах.

Программирование[править | править исходный текст]

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

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

См. также[править | править исходный текст]

Примечания[править | править исходный текст]

  1. 1 2 3 Алексей Федорчук. Введение в Zsh (shell zsh) (рус.). OpenNET.ru (23 декабря 2003). Проверено 10 июня 2010. Архивировано из первоисточника 24 августа 2011.
  2. pdksh (рус.). Проверено 10 июня 2010. Архивировано из первоисточника 24 августа 2011.

Ссылки[править | править исходный текст]