Книга: Вопросы истории: UNIX, Linux, BSD и другие

История tcsh

История tcsh

Как уже говорилось, оболочка csh привнесла в шеллы элементы интерактивности. Однако и её возможности в этом отношении были далеки от идеала. Что особенно почувствовалось в начале 90-х годов, когда, с одной стороны, произошло освобождение BSD-систем в лице NetBSD и FreeBSD от тяжёлого наследия проприетарного режима лицензирования. А с другой – началось победное шествие Linux'а с его стандартной оболочкой GNU bash, обходящей древний csh на несколько корпусов.

И тогда разработчики FreeBSD вспомнили об оболочке tcsh, которая, основываясь на синтаксисе C-shell, с давних времён разрабатывалась сначала Кэном Григом в университете Карнеги-Меллона, а затем Полом Плэйсвэем в университете Огайо. Чем она была примечательна? Сейчас увидим.

Изначально tcsh создавалась по образу и подобию командного интерпретатора операционной системы TENEX -- собственно, имя её и означает TENEX csh. А особенностью TENEX -- древней, ещё до-UNIX'овой, операционки (из недр которой, кстати, происходит и знаменитая «собака» в адресах электронной почты) были чрезвычайно длинные команды, да ещё и с избыточными словами «для ясности». С такими командными директивами было бы трудно работать без развитых средств навигации и редактирования командной строки. Каковые и стали отличительными особенностями её командного интерпретатора, получившего имя TENEX C-shell.

Разработчики FreeBSD, взяв за основу TENEX C-shell, адаптировали его для своей операционной системы. В которой он и утвердился в качестве стандартного login shell администратора. В OpenBSD же и DragonFly tcsh изначально стал шеллом по умолчанию «для всех». Применяется он и в таком юзер-ориентированном отпрыске BSD-клана, как PC-BSD. Более того, первое время tcsh выступал шеллом по умолчанию в MacOS X, пока его не наменили на bash.

Однако и поныне имя /bin/csh (как и соовтетствующие ему конфигурационные файлы /root/.cshrc и $HOME/.cshrc) сохранилось в файловой иерархии всех BSD-систем как реликт предшествующей эпохи. Однако теперь оно соответствует не самостоятельной оболочке, а было лишь жесткой ссылкой на тот же tcsh. Поведение же последней по умолчанию абсолютно идентично изначальному C-Shell. Это вызвано не эмуляцией предшественника, как в случае с bash, запускаемых в качестве /bin/sh, а исключительно настройками – точнее, почти полным отсутствием таковых по умолчанию.

Оглавление книги


Генерация: 1.473. Запросов К БД/Cache: 3 / 0
поделиться
Вверх Вниз