Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Методичка по лекциям.doc
Скачиваний:
29
Добавлен:
20.09.2019
Размер:
1.52 Mб
Скачать

12.2. Командные и операционные оболочки (shells)

Как правило, все современные операционные системы имеют внутренний набор текстовых команд, которые позволяют раздельно задавать отдельные действия в операционной системы. Эти команды относятся к средствам управления сеансом командной строки (термин MS Windows) или просто к командам командной строки (термин Unix).

Указанные команды позволяют выполнять действия над объектами операционной системы. С точки абстрактной теории, именно в этих командах сосредоточены наиболее общие абстракции объектно-ориентированного программирования, причем применительно к самой операционной системе. Заметим, что обычные языки программирования имеют дело преимущественно с информационными объектами, гораздо более примитивными по своему строению.

Основными объектами манипулирования посредством командной строки являются файлы, процессы, потоки информации и взаимодействия. Причем файлы рассматриваются как неделимые объекты, а не как совокупности байтов, требующих обработки.

Основные действия, задаваемые в командной строке, следующие: запуск процесса по задаваемой программе, манипуляции с файлами (копирование, переименование, создание нового файла, создание каталога и переход в него как в текущий), изменение текущих свойств перечисленных выше объектов операционной системы. Последние действия включают изменение атрибутов и прав доступа файлов, изменение характера выполнения вычислительного процесса (изменение приоритета, перевод его в фоновый режим или передний план), изменение характеристик работы консоли и множества других. (Опять же, как видим, для этих действий нет аналогов в обычном программировании.)

С учетом важности выполнения перечисленных команд для полноценного функционирования операционной системы под управлением опытного администратора, созданы вспомогательные программные средства – командные оболочки, называемые (по традиции Unix) shell. Эти командные оболочки позволяют, кроме приема и запуска собственно команд ОС, использовать специальные командные тексты – сценарии команд, называемые также сценариями shell или командными файлами. Практически эти сценарии есть текстовые файлы, содержащие последовательности команд, и, может быть, – вспомогательные средства организации таких команд для их повторений или условного выполнения. По существу, сценарии команд представляют собой специализированные программы, написанные на языке сценариев для конкретной командной оболочки.

Командные оболочки, с точки зрения программиста, представляют собой интерпретаторы команд. Иначе говоря, они выполняют команду непосредственно после ее ввода с клавиатуры или по очереди записи в командном файле.

В старой операционной системе MS DOS, вызываемой обычно из-под ОС типа Windows 9x, выполнение отдельных команд и командных файлов обеспечивается командным интерпретатором COMMAND.COM. Это же наименование имеет командный интерпретатор и в ОС типа Windows 9x. В операционных системах OS/2 и Windows NT командный интерпретатор называется CMD.EXE.

В операционных системах типа Unix – наиболее широкое семейство командных интерпретаторов (shells). Это традиционный и наиболее широко используемый интерпретатор bash (Bourn Again Shell), модификации командного интерпретатора С-Shell, приближенного к возможностям языка С, и иногда ряд других, но частично похожих на упомянутые. В применении к Linux будем рассматривать два его основных командных интерпретатора – bash и tcsh. Первый из них представляет в Linux расширенный типовой интерпретатор Bourn'а, а второй усовершенствованную разновидность С-Shell.

Заметим, что современные командные интерпретаторы не ограничиваются базовыми или типовыми интерпретаторами для конкретной ОС. В последнее время резко возрос интерес к универсальным командным интерпретаторам, позволяющим управлять операционной системой. К ним отчасти можно отнести интерпретаторы языка JavaScript и, главное, одну из последних очень эффективных новинок – интерпретаторы языка Tcl/Tk (Tool Command Language/Tool Kit). В современной терминологии все командные интерпретаторы и подобные им программные системы относятся к классу интерпретаторов языков сценариев или script-языков. Язык Tcl/Tk называют языком системной интеграции. Он был создан вначале для ОС типа Unix и особенно для поддержки в режиме интерпретации графической оболочки X Window этих ОС. К настоящему времени Tcl/Tk реализован интерпретаторами для Windows 3.1/9x/NT, Macintosh, AIX, QNX, VMS и OS/2.

В заключение следует подчеркнуть, что базовые командные интерпретаторы ОС фирмы Microsoft очень бедны инструментальными средствами и по своим возможностям только едва-едва подтягиваются к "мощности" интерпретируемого языка Basic.