Организация UNIX-систем и ОС Solaris



         

Семейство командных процессоров


При интерактивной работе с системой пользователь постоянно сталкивается с необходимостью отдавать ей команды. В CDE это можно делать, выбирая мышью требуемые пункты меню. В текстовом окне или текстовом режиме команды набираются вручную в командной строке. После нажатия Enter производится интерпретация и синтаксический анализ команды (то есть определяется, где - имя программы, где - ключи, где - аргументы, где - спецсимволы). Затем будут запущены один или несколько процессов.

В UNIX эту работу выполняет программа, которая называется командным процессором (shell). Иногда командный процессор называют шеллом или интерпретатором команд (последнее неточно, потому что круг задач командного процессора шире, чем интерпретация команд).

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

Первый в мире UNIX командный интерпретатор в 1976 году написал Стив Баурн (Steve Bourne), когда он работал в Bell Laboratories в AT&T. По другим данным, Стив написал его в 1974 году. Через некоторое время в University of California Berkeley был написан C-shell (csh, произносится "си шелл"), а потом число разных командных процессоров стало быстро расти. Самые популярные из них сейчас - это Bourne again shell (bash), разработанный в рамках проекта GNU, и Korn shell (ksh) Дэвида Корна (David Korn).

С-shell был разработан студентом Университета в Беркли (University of California Berkeley) Биллом Джоем (Bill Joy), который по окончании Berkeley основал компанию Sun Microsystems. Еще Билл Джой написал самый известный в UNIX редактор vi и был одним из авторов первой версии BSD UNIX.

Таблица 10.1. Популярные командные процессоры в UNIX

НазваниеИмя в системеПлюсыМинусы
Bourne Shellshобладает легким и удобным языком скриптов, прост и понятенмало средств редактирования введенных ранее команд, нет возможности управления заданиями
C Shellcshесть управление заданиями и приемлемое редактирование введенных ранее командсложный язык скриптов, некоторые версии содержат много ошибок
Korn Shellkshсовместим с sh по командам и содержит ряд возможностей csh, имеет средства редактирования команд, введенных ранее (history)редактировать команды неудобно, язык скриптов так развит, что все трудно запомнить
Bourne Again Shellbashпохож на ksh по возможностям, имеет легкий удобный интерфейс, простое интуитивно ясное редактирование введенных ранее команд, стандарт де-факто в Linux, в Solaris 9 устанавливается по умолчанию, но не является командным процессором по умолчаниюпока не обнаружено




Содержание    Вперед