Единственный реальный способ объяснить все эти термины - урок истории.
Итак, мы начинаем с самого начала, с UNIX в 70-х годах. Еще до графических интерфейсов командная строка - ваш единственный интерфейс с ОС. И учитывая, что центр операционной системы называется «ядром», какой-то орех решил, что внешний слой должен быть « оболочкой ». Страшные каламбуры остаются темой в UNIX.
До сих пор Terminal.app по сути только эмулирует физические терминалы, используемые для доступа к оболочкам 40 лет назад. Мы «открываем терминал» вместо того, чтобы поднимать стул, но это действительно самое фундаментальное изменение.
Поскольку UNIX был написан программистами, изначально для себя, они сделали эту оболочку программируемой. Мы называем эти сценарии - так же, как актер может следовать сценарию, так и оболочка может следовать « сценарию оболочки ». Обычно (надеюсь) не полноценные программы, но очень полезный уровень автоматизации.
Большинство частей UNIX могут быть (и были) заменены, включая оболочку. Поэтому, когда Стивен Борн написал замену для оболочки Кена Томпсона, она стала оболочкой Борна, а Кена - оболочкой Томпсона. А со временем C Shell (морская раковина? очень хилый), Корн Шелл, и так далее.
На этом этапе « оболочка UNIX » становится общим термином для любой оболочки UNIX. Хотя между ними есть синтаксические различия, практически любая команда UNIX может быть написана в любой оболочке UNIX. Так что этот термин используется, когда разница просто не имеет значения. Он достаточно специфичен, чтобы избежать путаницы с не-UNIX средами (кто-нибудь помнит DOS Shell?), Но достаточно универсален, чтобы нам было все равно: ш vs csh vs tsch vs ksh ...
Когда GNU пришла на смену Bourne Shell, они назвали замену Bourne-Again Shell - «bash». Последний каламбур, обещаю. Хотя это на самом деле просто еще одна оболочка UNIX, в настоящее время она является наиболее распространенной - и была самой распространенной в годы бума и Интернета в Linux и в Интернете. Таким образом, вы услышите, что «команда», «команда UNIX», «команда терминала» и «команда bash» используются взаимозаменяемо, «оболочка UNIX» и «оболочка bash» используются взаимозаменяемо и т.д. Однако из-за синтаксических различий между различными оболочками, когда они говорят «сценарий bash», они обычно означают bash - и аналогично «сценарий оболочки» обычно также означает «сценарий bash», если не указано иное.