Єдиний реальний спосіб пояснити всі ці терміни - це урок історії.
Тож ми починаємо прямо на початку, з UNIX у 70-х. Повернувшись до графічних інтерфейсів, командний рядок - це ваш єдиний інтерфейс до ОС. А враховуючи, що центр ОС називається «ядром», деяка гайка вирішила, що зовнішній шар повинен бути « оболонкою ». Страшні каламбури залишаються темою в UNIX.
І сьогодні Terminal.app по суті є просто імітацією фізичних терміналів, які використовувались для доступу до оболонок 40 років тому. Ми «відкриваємо термінал» замість того, щоб піднімати стілець, але це справді найсуттєвіша зміна.
Оскільки UNIX написали програмісти, спочатку для себе вони зробили цю оболонку програмованою. Ми називаємо ці сценарії - так само, як актор може слідувати сценарію, так і оболонка може слідувати « сценарію оболонки ». Зазвичай (сподіваємось) не повноцінні програми, але дуже корисний рівень автоматизації.
Більшість частин UNIX можна (і були замінені), включаючи оболонку. Отже, коли Стівен Борн написав заміну для оболонки Кена Томпсона, вона стала шкаралупою Борна - і Кена, оболонкою Томпсона . А з часом С-раковина (морська мушля? Дуже каламутна), Корнова оболонка , і далі, і далі.
З цього моменту " оболонка UNIX " стає загальним терміном для будь-якої оболонки UNIX. Хоча між ними є синтаксичні відмінності, майже будь-яка команда UNIX може бути записана в будь-яку оболонку UNIX. Отже, цей термін використовується, коли різниця просто не мала значення. Це достатньо специфічно, щоб уникнути плутанини з не-UNIX-середовищем (хтось пам'ятає DOS Shell ?), Але досить загальним, що нам не байдуже sh vs csh vs tsch vs ksh ...
Коли GNU прийшов на зміну Bourne Shell, вони назвали заміну Bourne-Again Shell - «ударом». Останній каламбур, обіцяю. Незважаючи на те, що це просто ще одна оболонка UNIX, вона в даний час є найбільш широко розповсюдженою - і була найпоширенішою протягом усіх років буму в Linux та Internet. Таким чином, ви почуєте "команда", "команда UNIX", "команда термінала" і "команда bash", що використовуються взаємозамінно, "оболонка UNIX" і "оболонка bash", що використовуються взаємозамінно і т. Д. Однак через синтаксичні відмінності між різними оболонок, коли вони говорять "bash script", вони зазвичай означають bash - і також "скрипт оболонки" зазвичай також означає "bash script", якщо не вказано інше.