Шпаргалка по ОС. 1. Понятие операционной системы, ее отношение к аппаратуре и программному обеспечению
Скачать 123.67 Kb.
|
Командные файлы представляют собой текстовые файлы, предназначенные для выполнения с помощью соответствующего интерпретатора команд. В Windows используется интерпретатор cmd.exe, а в Linux возможно использовать широкое многообразие интерпретаторов, но стандартным (наиболее широко используемым) считается bash. В отличие от Windows здесь имеется возможность явно указать в самом командном файле, какой интерпретатор следует использовать. Это достигается специальным построением первой строки командного файла в виде #!/bin/имя_интерпретолра, в частности используя текст #!/bin/bash. Для Windows командный файл должен иметь расширение имени .bat или .cmd, а в Linux на имена командных файлов не накладывается никаких ограничений. Сами команды задают специальные действия для операционной системы, объектами которых служат в первую очередь файлы целиком, каталоги, запуски из текстового режима исполняемых программ, изменение приоритета выполнения и множество других действий на собственно именованными объектами ОС. Кроме того, командные файлы позволяют использовать специфические для них управляющие структуры выполнения фрагментов такого файла по записанному или формируемому в них условию, выполнение циклов внутри командного файла и множество других возможностей. 40 Они могут использовать имена собственных переменных и специальные имена служебных переменных на основе применения специальных символов. Задание значения переменной в Windows записывается в виде set имя_переменной=значение Элемент значение может быть непосредственно текстом без дополнительных знаков, если он не содержит пробелов, или же такой текст внутри кавычек. Пробелы до и после символа = не допустимы. Задание значения переменной в Linux записывается аналогично, но использовать служебное слово set не надо. Особенностью имен переменных в командных файла является необходимость указания использования их значений путем специального оформления. Стандартное обозначение таких переменных в Window требует записи специального символа процента непосредственно перед первым и после последним символом собственного имени переменной. Стандартное обозначение использования значения переменных в Linux допускает два варианта записи. Если после имени переменной то тексту командного файла идет пробельный символ, то достаточно использовать всего один специальный символ $ непосредственно перед ее именем. Если же ситуация более сложная, то используется запись вида ${имя_переменной}. Для ввода в переменную любого текста от пользователя командного файла Linux использует команду вида read имя_переменной а Windows предлагает более громоздкую конструкцию вида set /p имя_переменной=текст приглашения ко вводу Для вывода текстов в командном режиме в простейшем случае используется команда echo, применяемая в виде echo текст где текст может включать обозначения использования переменных. Поэтому одно из простейших частичных применений переменных, в котором вводится значение переменной, а затем сообщается о полученном значении может быть построено как командные файлы с текстами set /p var=Vvedite name echo получено имя %var% (для Windows), а для Linux текст командного файла может быть echo Vvedite name read var echo получено имя $var 41 Внутри командного файл цикл по повторению в Windows записывается в виде for %%имя_перем in (набор_объектов) do команда где имя_перем должно быть задано одной латинской буквой (ограничение от MS). Это так называемая специальная локальная переменная. Параметр задает набор файлов либо путем перечисления через пробел, либо указанием через метасимволы (см. в разделе Файловые систему пособия []). Так запись в виде prog* обозначает все файлы текущего каталога, начинающиеся на сочетание букв prog. Параметр команда как правило использует ту же локальную переменную для действий над различными объектами используемого набора. Например, конструкция for %%k in (lab*) do echo %%k может быть использована для вывода в консоль всех файлов текущего каталога, имена которых начинаются на префикс lab. Конструкция цикла в Linux имеет вид for переменная in набор_значений do команды тела цикла done Здесь тело цикла допускает любое число команд, а конец этого тела задается специальным ключевым словом done. Аналогичное по действиям выше рассмотренного примера построение командного файла в Linux может быть записано как for k in lab* do echo k done Если программисту не хочется писать много строк, то в качестве разделителя служебных слов от предшествующей команды можно использовать символ «точка с запятой», так что то же пример можно записать в одну строку как for k in lab* ; do echo k ; done Примитивное исходное построение структуры цикла в Windows требовало использование только одной команды внутри цикла. Для решения более сложных задач в дальнейшем предлагаются два возможных варианта конструкции. В первом из них последовательность команд формально превращается в одну путем указания связывающего символа &, что соответствует в отдельно выпол42 няемой строке командного режима соединению нескольких команд в одну и дает в этом случае возможность записывать несколько команд в один вызов интерпретатора. Второй вариант заключается в построении подпрограммы (функции) внутри командного файла, что организуется записью тела функции внутри круглых скобок. Тогда составляющие команды пишутся каждая в отдельной строке, а символы & разделителей не используются. Следует учитывать, что в подавляющем большинстве ситуаций разделителями между элементами командных файлов должны служить исключительно пробельные символы, а запятые по правилам используемых стандартных языков построения командных файлов для этого не используются. Команды копирования файлов в Windows задаются в виде copy имя_исходного_файла имя_файла_копии где в параметре имя_файла_копии вместо собственно нового имени файла допускается указывать некоторый каталог, куда будет происходить копирование файла с сохранением имени у копии. Команды копирования файлов в Linux задаются практически так же, но имя собственно команды записывается в виде буквосочетания cp (практически в разработке было использовано сокращение названия действия). Для перемещения файла вместо наименований copy, cp используются, соответственно, наименования move и mv. Для создания каталога служит команда с именем mkdir, задающая в качестве параметра имя создаваемого каталога.1>254>256> |