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

Интерпретатор shell

Интерпретатор SHELL является оболочкой над всей ОС и выполняет интерфейсные функции между пользователем и ОС. Он перехватывает и интерпретирует все команды пользователя: формирует и выводит ответные сообщения.

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

Процедуре shell могут быть переданы аргументы при запуске. Каждому из первых девяти аргументов ставится в соответствие позиционный параметр от$1 до $9 ($0 - имя самой процедуры), и по этим именам к ним можно обращаться из текста процедуры.

Прежде, чем начать рассмотрение некоторых операторов shell, .следует обратить внимание на использование в командах некоторых символов.

\ знак отмены специального символа перевода строки, следующего непосредственно вслед за этим знаком.

‘’ одинарные кавычки: используются для обрамления текста: передаваемого как единый аргумент команды.

“” двойные кавычки, используются для обрамления текста, содержащего имена переменных для подстановки ($имя) или стандартные команды, заключенные в символы тупого ударения (`команда`).

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

Echo вывод сообщений.

Пример. Выводна экран содержимого текущего каталога.

echo “Текущий каталог: \

`pwd` \

`ls`”

Будет выведено: Текущийкаталог: имя_каталога

файл_1

файл_2

. . . . ..

Переменные языка shell

Язык shell позволяет работать с переменными (безпредварительного объявления). Имена переменных начинаются с буквы и могут включать буквы и цифры. Обращение к переменным начинается со знака$.

Пример. Переход к начальному каталогупользователя.

cd $HOME

Оператор присваивания

Присвоение значений переменным осуществляется с помощью оператора‘=’ без пробелов.

Пример. s=Hello

echo $s

Вычисление выражений

Осуществляется с помощью команды expr и операторов:

арифметических логических

+ сложение = равно

- вычитание !- не равно

\* умножение \<меньше

/ деление \<= меньше или равно

% остаток от деления\> больше

\>= больше или равно

Результат операций сравнения -вывод 1 (true) или 0(false).Все операторы и имена переменных должны отделяться друг от друга пробелами.

Пример.

a=5 b=12

a=’expr $a + 4’

d=’expr $b - $a’

echo$a $b $d

Будет выведено:

9 12 3

Условные выражения

Ветвление вычислительногопроцесса осуществляется с помощью оператораif:

ifсписок_команд1

thenсписок_команд2

[elseсписок_команд3]

fi

Список_команд - это одна или несколько команд (для задания пустого списка используется двоеточие - ‘:’). Список_команд1предает оператору if код возврата последней команды из списка. Если он равен 0,то выполняются команды из списка_команд2, таким образом нулевой код возврата эквивалентен значению «истина». В противном случае выполняются команды изсписка_команд3, если он существует.

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

· проверка файлов: test -ключимя_файла

Ключи: -r файл существует и доступен для чтения;

-w файл существует и доступен для записи;

-x файл существует и доступен для исполнения;

-f файл существует и имеет тип‘-‘, т.е. это обычный файл;

-s файл существует, имеет тип‘-‘ и не пуст;

-d файл существует и имеет тип‘d‘, т.е. это каталог.

· сравнение чисел: test число1-ключ число2

Ключи: -eq равно;

-ne неравно;

-lt меньше;

-le меньше или равно;

-gt больше

-ge больше или равно.

· сравнение строк:

test[-n] строка строка непуста;

test-z строка строка пуста;

testстрока1 = строка2 строки равны;

testстрока1 != строка2 строки не равны.

Построение циклов

В языке shell есть три типа циклов:while,until иfor.

· цикл while:

whileсписок_команд1{;|перевод строки}

do список_команд2{;|перевод строки}

done

В условии учитывается код возврата последней выполненной команды из списка_команд1, при этом 0 интерпретируется как «истина».

· цикл until:

untilсписок_команд1{;|перевод строки}

do список_команд2{;|перевод строки}

done

Проверка условия выполняется перед выполнением цикла. Учитывается код возврата последней выполненной команды изсписка_команд1, при этом цикл выполняется до тех пор, пока код возврата не примет значение «истина».

· цикл for:

for переменная[in список_значений]{;|перевод строки}

do список_команд{;|перевод строки}

done

Переменной присваивается значение очередного слова из списка_значений и для этого значения выполняется список_команд. Количество итераций равно количеству цепочек символов всписке_значений, разделенных пробелами. Если слово in и список_значений опущены как необязательные,то переменной поочередно присваиваются значения параметров, переданных при запуске данной программы. В качестве списка можно использовать шаблоны имен файлов, тогда интерпретатор превращает этот шаблон в требуемый синтаксисом список имен файлов, удовлетворяющий шаблону.

Пример. Печать списка имен текстовых файловиз текущего каталога.

list=`ls *.txt` forval in $list do echo «$val»й done

  1. Файловая система NTFS.

Файловая система явл важной частью любой ОС, кот отвечает за организацию, хранение и доступ к информации на каких-либо носителях. Жёсткий диск может содержать до 4 разделов. В первом физ секторе жёсткого диска расположена главная загрузочная запись MasterBootRecord Файловая система берёт на себя организацию взаимодействия программ и файлов.

NTFS

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

Реализована отказоустойчивость.

Поддержка PSIX – различает регистр букв в именах. Имена до 255.

NTFS обладает способностью самовосстанавливаться при системном сбое или сбое оборудования.

NTFS делит всё полезное место на кластеры. Диск NTFS условно делится на 2 части:

    1. 12% отводится под MFT зону –т пространство Master File Tabke, сюда нельзя писать. Эта зона пустая, чтобы файлы MFT не фрагментировались.

    2. 88% - обычное свободное пространство.

MFT

MFT - зона

Место под файлы

Код первых записей

_____________________

NTFS резервирует первые 16 записей табл для спец информации.

Записи в главной файловой таблице: 3)файл журнала транзакции; 4)файл тома; 5)таблица атрибутов; 6)корневой каталог; 7)битовый массив использования (файл битовой карты); 8)bootfile; 9)файл плохих кластеров; 10)описатель защищённых файлов; 11)таблица преобразования регистров; 12)расширение квоты 13)-16) зарезервировано; 17)файлы пользователя.

В NTFS определено 13 атрибутов, которые могут появляться в записях MFT. Каждая запись MFT содержит заголовок записи и последовательность файлов. Атрибуты: 1) Стандартная информация. 2) Имя файла – в кодировке UNICODE. 3) Описатели защиты. 4) Список атрибутов. 5) Интерпритатор объекта – 64разрядный. 6) Точка повторения анализа. 7) Название типа – используется только $Value 8) Информация о томе – версия тома. 9) Корневой индекс – используется для каталогов. 10) Размещение индекса. 11) Битовый массив. 12) Поток данных утилиты регистров. 13) Данные.

19

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]