Обзор оболочек
Оболочка ранних версий Unix была довольно примитивной, без хронологического списка, средств редактирования командной строки и управления заданиями. Однако в семидесятые годы, с появлением Bourne Shell и С Shell, оболочки стали превращаться в объекты серьезного внимания в мире Unix. Сейчас пользователям Unix предлагается на выбор множество оболочек, каждая из которых имеет уникальный набор средств.
Существует два основных семейства оболочек. Одно из них берет начало от оболочки Bourne Shell, другое – от С Shell. Прежде чем приступить к основательному изучению оболочки Bourne Again Shell, устанавливаемой по умолчанию в большинстве дистрибутивов Linux, рассмотрим основные оболочки Unix.
Совет
Чтобы быть в курсе новейших разработок в области оболочек Unix, подпишитесь на группу новостей соmр.unix.shell.
Bourne Shell (sh)
Bourne Shell (sh) считается исходной оболочкой Unix. Во многих отношениях эта довольно ограниченная оболочка, в которой недостает таких средств, как хронологический список или редактирование командной строки. Но многие средства Bourne Shell, именно как исходной версии, входят в ряд современных оболочек. Пример – основной набор команд. В современных системах Bourne Shell, как оболочка по умолчанию, применяется редко. В большинстве дистрибутивов Linux установлены Bourne Again Shell или Enhanced С Shell.
Оболочка Bourne Shell – источник множества концептуальных новшеств: например, проверки успешного или аварийного завершения работы программ, что позволяет писать сложные сценарии. Теперь это средство – стандарт оболочек Unix.
С Shell (csh)
С Shell (csh) – ранняя оболочка Unix с набором команд и языком сценариев на основе синтаксиса популярного языка программирования С. Как и в ранней Bourne Shell, в С Shell отсутствуют некоторые важные функции, наподобие редактирования командной строки. Однако в этой оболочке впервые реализовано несколько важных идей, например, алиасы команд и хронологические списки. Усовершенствованный вариант Enhanced С Shell (tcsh) с редактированием командной строки и другими функциями, позаимствованными из Bash, входит в большинство дистрибутивов Linux как альтернативная оболочка.
Оболочка С Shell известна рядом концептуальных нововведений, вошедших даже в оболочки, производные от Bourne Shell. Среди прочих, идея реализации в оболочке некоторых арифметических функций и сравнительной проверки. В Bourne Shell для этого требовалось обращение к внешним программам.
Bourne Again Shell (bash)
Это оболочка, устанавливаемая в дистрибутивах Linux чаще других. Известная как Bash, она является производной от Bourne Shell (что следует из названия), но имеет дополнительные функции: редактирование командной строки, хронологический список и дополнение частично введенных имен файлов. В Bash можно писать сложные сценарии на синтаксисе, близком к синтаксису Bourne Shell. Поскольку в настоящее время Bash – наиболее распространенная оболочка Linux, большая часть главы посвящена именно ей. Она же подразумевается во всех примерах, приводимых в книге.
Коm Shell (ksh)
Еще одна оболочка, производная от Bourne Shell. По некоторым оценкам, это наиболее популярная оболочка Unix, но в дистрибутивах Linux она редко устанавливается по умолчанию. Оболочка Korn Shell была, вероятно, одной из первых, в которой впервые появилось множество популярных функций, реализованных в настоящее время в Bash, в том числе редактирование командной строки. Она же помогла перенести в мир Bourne Shell многие функции, введенные в С Shell.
Другие оболочки
Существует множество других оболочек, каждая из которых обеспечивает интерфейс командной строки, обладающий уникальными свойствами. Но ни одна из них не завоевала достаточной популярности, чтобы быть включенной в большинство дистрибутивов Linux. Среди них можно упомянуть Adventure Shell (ash), представляющую подмножество Bourne Shell, полностью перепрограммируемую Extensible Shell (es), эргономичную ERGO Shell (esh), Z Shell (zsh), объединившую, подобно оболочке Bash, функции многих оболочек, что, в конце концов, привело к некоторому подобию Korn Shell.
Совет
Превосходным источником альтернативных оболочек для системы Linux служит архив Linux SunSite с каталогом оболочек ftp://metalab.unc.edu/pub/Linux/system/sheiIs.
Здесь можно найти все распространенные оболочки, а также и малоизвестные ish, pash или pdksh.