Наши партнеры

UnixForum






Книги по Linux (с отзывами читателей)

Библиотека сайта rus-linux.net

На главную -> MyLDP -> Тематический каталог -> Работа в консоли Linux

13 разных оболочек (о некоторых вы, возможно, никогда не слышали)

Оригинал: 13 Types of Shell (Some You Never Probably Heard About)
Автор: linuxhaxor.net
Дата: 12 декабря 2007
Перевод: Андрей Матвеев aka arilou649
Дата перевода: 19 декабря 2007

При копировании материала обязательны указание автора, переводчика и ссылки на оригинал статьи и настоящую страницу как первоисточник перевода!

1. sh: Оболочка Борна (Bourne shell), или sh, использовалась по умолчанию в 7-й версии Unix, придя на смену оболочке Томпсона (Thompson shell). Исполняемый файл нового командного интерпретатора имел прежнее имя - sh. Разработчиком sh был сотрудник AT&T Bell Laboratories Стивен Борн (Stephen Bourne). Релиз появился в 1977 году в составе 7-й версии Unix, которая распространялась в колледжах и университетах. Командный интерпретатор sh по-прежнему широко используется в качестве оболочки по умолчанию в Unix. В большинстве Unix-систем путь к sh или совместимой программе одинаков: /bin/sh. Во многих современных вариантах Unix оболочка Борна используется по умолчанию для суперпользователя root.

2. ash: Оболочка Альмквиста (Almquist shell, известная также как A Shell или ash) изначально была создана Кеннетом Альмквистом (Kenneth Almquist) и являлась клоном варианта SVR-4 оболочки Борна. ash - быстрый, компактный, POSIX-совместимый командный интерпретатор Unix, разработанный в качестве смены для оболочки Борна в поздних версиях BSD. В ash сознательно не были включены механизмы редактирования командной строки и истории команд, так как Альмквист полагал, что такие функции должны быть перемещены в драйвер терминала. Современные варианты ash имеют режимы emacs и vi.

3. dash: Debian Almquist Shell (dash) - POSIX-совместимый командный интерпретатор Unix гораздо меньшего размера, чем bash. dash требует меньшего дискового пространства, но также и обладает меньшим набором функций. dash - прямой потомок версии ash для NetBSD. Оболочка ash была портирована на Linux Гербертом Cю (Herbert Xu) в начале 1997 г. В 2002 году она была переименована в dash. dash выполняет скрипты быстрее, чем bash и зависит от меньшего количества библиотек. Считается, что dash более надежен в случае проблем с обновлением и отказом дисков.

4. bash: - Unix-оболочка, написанная для проекта GNU. Имя исполняемого файла - bash. Название - акроним Bourne-again shell - игра слов на основе одинакового произношения фамилии создателя sh (Bourne) и слова born: "Bourne again" ("снова Борн") - "born-again" ("перерожденный"). Оболочка bash был создана в 1987 году Брайаном Фоксом (Brian Fox). В 1990 году главным мэйнтэйнером стал Чет Рэйми (Chet Ramey). Bash используется по умолчанию в большинстве систем под управлением Linux и Mac OS X и работает практически во всех системах, родственных Unix.

5. fish: Unix-оболочка, приоритетом которой является интерактивное использование, понятность и дружественный пользователю интерфейс. Название - акроним Friendly Interactive Shell ("дружественная интерактивная оболочка"). Замысел создателей fish - дать пользователю набор мощных функций, которые легко освоить, запомнить и использовать.

6. ksh: Оболочка Корна (Korn shell) была разработана Дэвидом Корном (AT&T Bell Laboratories) в начале 1980-х годов. ksh обладает обратной совместимостью с оболочкой Борна, а также содержит множество функций оболочки csh, таких как история команд, которая была включена в ksh по просьбам пользователей лаборатории Bell Labs. Главное преимущество оболочки ksh перед традиционной Unix-оболочкой - возможность ее использования в качестве языка программирования. С момента появления в ksh постепенно были добавлены новые функции, но при этом строго сохранялась обратная совместимость с оболочкой Борна.

7. csh: Оболочка C shell разработана Биллом Джоем (Bill Joy) для BSD Unix. Оболочка csh изначально была производной командного интерпретатора /bin/sh из 6-й версии Unix, то есть оболочки Томпсона - предшественницы оболочки Борна. Синтаксис csh смоделирован по образцу языка C. Многие функции оболочки Борна - такие как алиасы и история команд - были улучшены в csh. Сегодня оболочка csh в оригинальном виде не находит широкого применения в Unix-системах; на смену ей пришли другие оболочки такие как Tenex C shell (tcsh), которая основывается на коде csh, но имеет дополнение имен файлов и функции редактирования командной строки, сравнимиые с аналогичными функциями в оболочке Корна (ksh) и GNU bash.

8. tcsh: tcsh (произносится как "ти-си шелл" или "ти-шелл") представляет собой по сути csh c (программируемым) дополнением имен файлов, редактированием командной строки и некоторыми другими функциями.

9. es: оболочка es - интерпретатор командной строки, использующий скриптовый язык, похожий на язык оболочки rc. Замысел разработчиков - создать полнофункциональный язык программирования, который являлся бы оболочкой Unix. Наиболее интенсивно оболочка es разрабатывалась в начале 1990-х годов. В отличие от других современных оболочек, es не имеет механизма управления заданиями. Для восполнения этого недостатка был предложен ряд патчей, но те из них, которые доступны сегодня, имеют проблемы с утечкой памяти.

10. rc: интерпретатор командной строки в операционных системах Unix версии 10, Plan 9 и Inferno. Оболочка rc похожа на оболочку Борна, но имеет несколько упрощенный синтаксис. Создатель rc - Том Дафф (Том Duff), который более известен как создатель необычной конструкции в языке программирования C, называемой устройством Даффа (Duff's device).

11. scsh: scsh - интерфейс прикладного программирования POSIX на базе языка программирования Scheme (в настоящее время существует лишь версия на основе реализации Scheme-интерпретатора 48, но планируются новые). Оболочка scsh ограничивается 32-битными платформами.

12. sash: Stand-alone shell ("автономная оболочка") - предназначена для использования при востановлении после различных сбоев. Встроенные команды sash собраны статически, поэтому, в отличие от большинства оболочек, стандартные команды Unix в sash не зависят от внешних библиотек. Например команда копирования cp, которая собирается в Linux из набора утилит GNU coreutils, требует наличия библиотек linux-gate.so, libc.so и ld-linux.so. Если какая-либо из этих библиотек повреждена, команда cp из комплекта coreutils не будет работать, в то время как встроенная в sash команда cp окажется работоспособной.

13. zsh: Z shell - оболочка Unix, которая может использоваться как интерактивная регистрационная оболочка (login shell), а также как мощный интерпретатор для написания скриптов. Zsh можно рассматривать как расширенную оболочку Борна с большим количеством улучшений, включая некоторые полезные функции bash, ksh и tcsh.

[Вся приведенная в статье информация взята из Wikipedia]