Bash (Bourne Again Shell) — основная оболочка большинства дистрибутивов Linux. Её возможностей вполне достаточно как для начинающих, так и для опытных пользователей.

Но Open Source — это прежде всего разнообразие. Не исключено, что для повышения эффективности своей работы, некоторым пользователям следует посмотреть на альтернативные оболочки, каждая из которых имеет как свои плюсы, так и свои минусы.

Sh (Bourne Shell)

Оболочка Bourne Shell названа по имени её создателя Стивена Борна. Её первый выпуск состоялся в 1977 г., и именно на её основе создавался привычный всем командный интерпретатор bash.

В своё время именно Bourne Shell являлась стандартом де факто в Unix-системах. Сегодня же во многих дистрибутивах Linux /bin/sh — всего лишь ссылка на bash или dash.

Sh полностью совместима с bash — написанные на ней скрипты будут работать в любой основанной на bash системе. А вот обратная совместимость отсутствует.

Dash (Debian Almquist Shell)

Dash, как это следует из названия — командная оболочка системы Debian. Её первый выпуск состоялся в 1997 г., когда Хербертом Сюем была портирована Almquist shell, предназначенная для NetBSD.

Основная отличительная особенность Dash — очень небольшие размеры. Правда, по этой же причине она уступает bash по функциональности.

В Ubuntu, одном из самых популярных основанных на Debian дистрибутивов, в качестве оболочки по умолчанию вместо dash используется традиционный bash. По всей видимости, это вызвано ограниченными возможностями Dash.

Csh (C Shell)

Языки программирования Cи и C++ очень популярны, и на них написана значительная часть кода Linux. Оболочка csh создана в 1979 г. Биллом Джоем именно для удобства использования знатоков этих языков.

К сожалению, в csh было множество ошибок и поэтому со временем она была заменена на tcsh. Интересно, что Билл Джой — автор знаменитого текстового редактора vi, который постигла примерно та же участь — сейчас он практически не используется, но стал основой для vim, заслуженно считающегося одной из лучших программ в своём классе.

Поскольку csh и tcsh ориентированы на знатоков Cи и C++, синтаксис скриптов там заметно отличается от принятого в bash. Это приводит к их взаимной несовместимости.

Ksh (Korn Shell)

Ksh — оболочка, разработанная Дэвидом Корном. Её первый выпуск увидел свет в 1983 г.

Её отличительные особенности — полная обратная совместимость с bash в сочетании с высокой функциональностью. Несмотря на это она не получила большого распространения, поскольку до 2000 г. все права на Ksh принадлежали компании AT&T и её код был закрыт.

Zsh (Z Shell)

Если перечисленные выше оболочки созданы в основном в 1970-х и успели пройти долгой путь, то zsh по сравнению с ними довольно молода — она создана Паулем Фалстадом в 1990 году. По сути это тот же bash, но с большим количеством улучшений и дополнений.

В настоящее время zsh всё чаще выбирается опытными пользователями в силу высокой функциональности и гибкости. Эту оболочку имеет смысл установить всем, кому стали тесны рамки bash.

Fish (Friendly Interactive Shell)

Fish — самая молодая командная оболочка. Она вышла в 2005 г., и её код не был основан на sh.

Эту оболочку отличает оригинальный синтаксис, ориентированный прежде всего на новичков. В частности, пользователю fish нет необходимости часто использовать клавишу Tab для завершения команды, поскольку оболочка делает это автоматически.

Также fish предлагает пользователям графический интерфейс для конфигурирования, что существенно облегчает настройку рабочего окружения. Наряду с прочими достоинствами именно эта оболочка выглядит наиболее перспективной.

Однако революционный подход пока не способствует её популярности. Она очень сильно отличается от других оболочек, что создаёт заметные затруднения пользователям со стажем.