Оболочка Томпсона ( англ. Thompson shell ) - первая оболочка Unix в первой версии Unix в 1971 году, и написана Кеном Томпсоном. Была простым командным интерпретатором, не предназначенным для скриптов. В оболочке появился ряд инновационных функций для интерфейса командной строки и она побуждала к развитию будущих оболочек Unix.
История
Название «оболочка» для командной строки интерпретатора и концепция преобразования корпуса пользователей программы вне ядра операционной системы были введены в Unix прекурсоров MULTICS.
Одной из первых особенностей oболонкы Томпсона был компактный синтаксис для входа / вывода перенаправление. В MULTICS, перенаправления ввода или вывода команды требуется отдельная команда для запуска и остановки перенаправления, и в Unix, можно просто добавить аргумент в командной строке, состоящей из символа <и следующего имени файла для ввода или> для обозначения вывода, оболочка будет перенаправлять ввод / вывод в течение срока действия команды. Этот синтаксис был уже присутствует в первой версии Unix в 1971 году.
Кроме этого, в оболочке была расширена концепция конвейеров. По предложению Дугласа MакИлроу синтаксис конвейеров был расширен тем, что вывод одной команды может быть принят на вход другой команды. Сначала синтаксис конвейеров заключался в следующем:
команда1> команда2>
Этот синтаксис оказался слишком двусмысленным и его было легко спутать с перенаправлением файлов. По версии 4, синтаксис изменили на использование как | и ^ символов для обозначения конвейеров:
команда1 | команда2
Это оказывало точно такой же результат, как:
команда1 ^ команда2
Этот синтаксис для перенаправлений с <и>, а также конвейеров с |, оказался жизнеспособным и был принят в большинстве других оболочек Unix и командных оболочек ряда других операционных систем, в первую очередь на DOS, OS / 2 и Microsoft Windows.
Упадок оболочки
Дизайн оболочки был умышленно минималистский, даже if и goto, необходимые для контроля программного потока, выполненных в виде отдельных команд. В результате в 1975 году с 6-й версии Unix стало понятно, что оболочка Томпсона недостаточна для серьезных задач программирования.
Наконец, в Unix версии 7 оболочка Томпсона был заменен в качестве главной оболочки на оболочку Борна ( англ. Bourne Shell ) i оболочку C ( англ. C Shell ) в 2BSD, выпущенную в 1979 году. Поскольку практически все современные Unix и Unix-подобные системы являются потомками 7-й версии Unix и 2BSD, то оболочка Томпсона, как правило, не используются. Однако оболочка Томпсона был портирован на современные Unix как исторический экспонат.