Оболочка – это интерпретатор команд в операционной системе, такой как Unix или GNU/Linux. Это программа, которая выполняет другие программы. Она предоставляет пользователю компьютера интерфейс к системе Unix/GNU Linux, чтобы пользователь мог выполнять различные команды или утилиты/инструменты с некоторыми входными данными.
Когда оболочка завершает выполнение программы, она отправляет вывод пользователю на экран, который является стандартным устройством вывода. По этой причине ее называют “интерпретатором команд”.
Оболочка – это не только интерпретатор команд, но и собственный язык программирования с полными конструкциями языка программирования, такими как условное выполнение, циклы, переменные, функции и многие другие.
Вот почему Unix/GNU Linux shell более мощный по сравнению с Windows shell.
В этой статье мы рассмотрим некоторые из наиболее часто используемых открытых оболочек в Unix/GNU Linux.
1. Bash Shell
Bash Shell, или просто “Bash“, расшифровывается как “Bourne Again SHell“. Это улучшенная версия оригинального Bourne Shell (sh) и была представлена в 1989 году Брайаном Фоксом.
Со временем Bash стал одним из самых популярных и широко используемых интерпретаторов командной строки в многих дистрибутивах Linux и macOS (до Catalina, после чего он был заменен на zsh).
Bash предоставляет пользователям возможность выполнять команды, перемещаться по файловой системе и запускать скрипты. Пользователи могут использовать такие функции, как история команд, автодополнение по табуляции и возможности скриптинга для автоматизации задач и упрощения рабочих процессов.
С Bash Shell связана важная роль в развитии вычислительных технологий с открытым исходным кодом, предлагая согласованный интерфейс для взаимодействия пользователей с их системами.

2. Tcsh/Csh Shell
С Tcsh (произносится как “ти-шелл“) и Csh (произносится как “си-шелл“) знакомы многие пользователи Unix-подобных командной оболочки, существующие десятилетиями. Csh, или C shell, была разработана Биллом Джоем в конце 1970-х годов в Калифорнийском университете в Беркли.
Ввело несколько функций и синтаксиса скриптов, которые были вдохновлены языком программирования C, что сделало его популярным среди программистов, знакомых с C.
Tcsh – это улучшенная версия оригинального Csh, который означает “Tenex C Shell”, причем “Tenex” является отсылкой к операционной системе TENEX.
Tcsh включает в себя все функции Csh вместе с дополнительными улучшениями, такими как редактирование командной строки, контроль задач и завершение команд.
Оба этих shell’а оказали влияние на мир Unix, многие пользователи ценят их уникальный синтаксис скриптов и функции. Однако со временем другие shell’ы, такие как bash, получили большую популярность благодаря своим обширным функциям и широкому распространению.
Тем не менее, Tcsh и Csh остаются неотъемлемой частью истории Unix shell.

3. Ksh Shell
The KornShell, обычно известный как ksh, является Unix shell, который был разработан Дэвидом Г. Корном в AT&T Bell Laboratories в начале 1980-х годов.
Он сочетает в себе функции как из C shell (csh), так и из Bourne shell (sh), стремясь предоставить лучшее из обоих миров. На протяжении многих лет ksh хвалили за его продвинутые возможности скриптинга, что сделало его любимцем многих системных администраторов и продвинутых пользователей.
Одна из выдающихся особенностей ksh – это ассоциативные массивы, которые были редкостью в оболочках того времени. Он также ввел конструкцию select, которая делает создание меню в скриптах простым.
Еще одним значительным преимуществом являются возможности редактирования командной строки и истории, которые позже были приняты другими оболочками, такими как bash.

4. Zsh Shell
Оболочка Zsh, часто называемая просто ” Zsh “, является мощной оболочкой Unix, которая завоевала заметную популярность среди программистов и системных администраторов.
Родившись как расширение Bourne Shell, Zsh включает в себя функции из других оболочек, таких как Bash, ksh и tcsh, предлагая богатый набор функций и улучшенный интерактивный режим.
Одной из отличительных особенностей Zsh является его мощные возможности автодополнения. В отличие от других оболочек, автодополнение Zsh является контекстно-зависимым, предлагая релевантные команды, пути к файлам и даже ветки Git, делая пользовательский опыт более гладким и интуитивным.
Кроме того, Zsh является высоко настраиваемым с использованием Oh My Zsh фреймворка, пользователи могут легко применять темы и плагины, улучшая как эстетические, так и функциональные аспекты своего терминального окружения.

5. Fish
Fish Shell – это современная, удобная командная оболочка, ориентированная на предоставление интерактивного и интуитивного интерфейса для пользователей.
В отличие от традиционных оболочек, таких как Bash или Zsh, Fish предлагает умные подсказки из коробки, что облегчает как начинающим, так и опытным пользователям навигацию и выполнение команд.
Одной из выдающихся особенностей Fish является его автоподсказки, которые предоставляют реальное время обратная связь на основе вашей истории команд, что позволяет выполнять команды быстрее.
Fish также славится ярким и красочным интерфейсом с подсветкой синтаксиса, что облегчает чтение и понимание команд. Его веб-основанная конфигурация позволяет пользователям настраивать свой опыт работы с оболочкой, не углубляясь в сложные конфигурационные файлы.
Кроме того, у Fish есть обширная и растущая коллекция плагинов и тем, разработанных сообществом, улучшающих его функциональность и внешний вид.

Резюме
Это не единственные оболочки, доступные в Unix/GNU Linux, но они являются одними из самых часто используемых, помимо тех, которые идут предустановленными с различными дистрибутивами Linux.
I hope you find this article useful. For any additional information, please don’t hesitate to post a comment.
Source:
https://www.tecmint.com/different-types-of-linux-shells/