Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Основы OC UNIX_часть3.doc
Скачиваний:
21
Добавлен:
18.04.2015
Размер:
543.23 Кб
Скачать

2.1. Типы командных процессоров

Существует несколько широко распространенных командных процессоров и еще несколько малораспространенных, специфичных для конкретных версий UNIX.

Все разговоры об оболочках сводятся к тому, что существуют оболочки, имеющие много общего с оболочкой Bourne, и оболочки, имеющие много общего с С–оболочкой. Вопрос состоит в том, какие оболочки есть в вашей системе? И с какой оболочкой вы хотели бы работать?

Рассмотрим список имеющихся командных процессоров с кратким описанием их лучших возможностей.

  1. sh–ОболочкаBourneнаписана Стефаном Борном (StephenBourne) вBellLaboratoriesфирмыAT&T– там, где разрабатывалась сама ОСUNIX. С тех пор многие поставщики компьютеров, создавая собственные платформенно–ориентированые версииUNIX, сохранили совместимость с основными элементами оболочкиBourne.

  1. csh– C–оболочкаимеет управление заданиями (+) и псевдонимы с аргументами (+). Это разработка Билла Джоя (Bill Joy– автор текстового редактораvi) в Калифорнийском университете. В качестве модели синтаксиса Б. Джой выбрал язык программированияСи. Команды оболочкиСии операторы структурного программирования – близки по синтаксису эквивалентным операторамСи. Поэтому она называется С–оболочкой.

Управление заданиями(job control) – это возможность выполнять задание в фоновом режиме без специальных команд.

Псевдоним(alias) – это другое имя для команды.

  1. ksh–ОболочкаKornимеет управление заданиями (+) и псевдонимы без аргументов (–).

Оболочка Kornназвана по имени ее автора Дэвида Г. Корна (David G. Korn), работающего вBellLaboratoriesфирмыAT&T. Он написал первую версию программы в 1986 г. Таким образом, оболочкаKornявляется прямой наследницей оболочкиBourne. Она почти полностью совместима с оболочкойBourne: практически любой сценарий оболочки, написанный для оболочкиBourne, может быть корректно выполнен оболочкой Korn. Однако сценарии оболочкиKorn, как правило, не могут корректно обрабатываться оболочкойBourne.

Перечень усовершенствований, имеющихся в оболочке Korn, весьма обширен: от тривиальных до весьма существенных. Наиболее серьезные улучшения связаны с упрощением клавиатурного взаимодействия с оболочкой, значительно расширен синтаксис и технология программирования оболочки.

Усовершенствования можно разделить на следующие категории:

  • Псевдонимы команд.Псевдонимы позволяют сокращать часто используемые команды, не обращаясь к программированию оболочки, тем самым повышая общую производительность при работе с клавиатурой.

  • История команд.Механизм истории команд можно использовать сам по себе или в сочетании с редактированием для изменения и повторного использования ранее введенных команд. Историю команд можно также использовать в качестве журнала, регистрирующего все действия на клавиатуре.

  • Редактирование команд. ОболочкаKornобеспечивает два стиля редактирования команд, которые предоставляют возможность просматривать и корректировать команды в процессе их ввода. Редактирование команд может значительно уменьшить время, затрачиваемое на повторный ввод команд.

  • Управление каталогами. ОболочкаKornобеспечивает расширения командыcd, новый синтаксис записи путей и новые переменные оболочки, способствующие упрощению перехода между каталогами и сокращению длинных имен путей.

  • Арифметические выражения. ОболочкаKornобладает встроенными возможностями выполнения арифметических операций, обработки строк и массивов.

  • Улучшение синтаксиса. ОболочкаKornпредоставляет усовершенствования синтаксиса оператораif, встроенной командыtestи выражений подстановки команд, которые расширяют возможности и улучшают удобочитаемость сценариев оболочки.

  • Шаблоны. ОболочкаKornподдерживает большее число форматов шаблонов, что снижает объем работы с клавиатурой.

  • Последовательная обработка. Привычный канал оболочкиBourneрасширен для обеспечения более гибкого программного взаимодействия между сценарием оболочки и вызываемыми командами.

  • Выполнение заданий. ОболочкаKornвключает в себя свойства мониторинга пакетных заданий, упрощающих выполнение процессов в фоновом режиме и предоставляющих возможность одновременного выполнения большего числа заданий.

Многие свойства оболочки Kornдублируют свойства оболочкиС, но с другим синтаксисом. Это сделано умышленно. Хотя оболочка С предоставляет множество необходимых свойств, ее общий синтаксис несовместим с оболочкойBourne, что делает эту оболочку несколько выпадающей из общего стиляUNIX. ОболочкаKornразрешает это долго существовавшее противоречие с миреUNIX, предоставляя требуемые свойства клавиатуры и программирования оболочки, но в форме, совместимой со старым, хорошо проработанным стандартом оболочкиBourne.

  1. bash –оболочкаBourne–Againимеет много возможностей, аналогичных возможностям оболочкиKorn. Ее можно встретить в некоторых разновидностях UNIX, таких как LINUX. Это новая комбинация стиля программирования оболочкиBourneи возможностейС–оболочки, предоставляется бесплатно.

  2. tcsh–расширениеcsh, совместимое с ним по командам, макроопределениям и синтаксисуязыка скриптов.tcshбыл написан в конце 1970–х годов Кеном Гриром (KenGreer). Он начал работу надtcshв Университете Карнеги–Мелон (Carnegie–Mellon University), а продолжил ее Пол Плэйсвэй (PaulPlaceway) в восьмидесятые годы в Университете Огайо (OhioState). Основные отличияtcshотcshсводятся к усовершенствованиюредактированиякомандной строкии ряду дополнений в помощь создателям скриптов (например, переменныесреды окружения, доступные только для чтения).

Завершение имени файла(file name completion) – это способность оболочки угадывать вводимое имя файла по нескольким первым буквам.

Каждый командный процессор имеет свои преимущества и свои недостатки. Нельзя сказать ни об одном, что он лучше другого. Для различных приложений можно выбрать наиболее подходящий shell. Обычно работают с одним, максимум с двумя командными процессорами.

Какую бы оболочку вы ни выбрали, все они имеют одно и то же назначение – предоставить пользователю интерфейс к UNIX.

В Solaris по умолчанию устанавливаются несколько командных процессоров, в том числе sh,csh,tcsh,bashи другие; командным процессором по умолчанию являетсяsh.