
- •История возникновения и развития ос
- •Основные версии unix.
- •Основные версии ос Windows
- •Установка unix-подобной ос Краткие сведения по установке Unix-подобных систем (на примере FreeBsd)
- •Установка ос Windows.
- •Ядро и вспомогательные модули ос
- •Ядро в привилегированном режиме
- •Микроядерная архитектура
- •Многослойная структура ос
- •Физическая память и виртуальное адресное пространство.
- •Виртуальное адресное пространство процесса
- •9.Способы доступа к памяти в защищенном режиме.
- •10. Многозадачность ос
- •11. Динамически подключаемая библиоте
- •Формат файлов dll придерживается тех же соглашений, что и формат исполняемых файлов, сочетая код, таблицы и ресурсы, отличаясь лишь интерпретацией некоторых полей. Цели введения
- •12) Файловая подсистема ос.
- •13) Типы файлов.
- •14) Блочные и символьные устройства
- •15) Файлы, проецируемые в память
- •16) Сокеты
- •17) Корневой каталог.
- •18) Права доступа к файлам в ос.
- •Возможные действия над файлом
- •Указание прав доступа с помощью буквенной нотации
- •Указание прав доступа с помощью числовой нотации
- •19. Системные процессы ос.
- •20. Прикладные процессы ос
- •21. Взаимодействие между процессами.
- •22. Сигналы межпроцессного взаимодействия
- •23. Алармымежпроцессного взаимодействия.
- •24. Каналы fifOмежпроцессного взаимодействия.
- •25. Сообщения межпроцессного взаимодействия.
- •Семафоры межпроцессорного взаимодействия. Семафоры
- •Командный интерпретатор ос.
- •Программирования на языке командного интерпретатора ос.
- •Команда в общем виде:
- •Цикл for
- •Операторы цикла while и until
- •Переменные в скриптах командного интерпретатора ос.
- •Перенаправление ввода/вывода командного интерпретатора ос.
- •Команды more и sort
- •Ветвления в скриптах командного интерпретатора ос. Оператор выбора
- •Условный оператор
- •Циклы в скриптах командного интерпретатора ос.
- •Цикл for
- •Операторы цикла while и until
- •33. Настройка локальной сети.
- •34. Протоколы tcp/ip сети.
- •35. Служба доменных имен.
- •36.Сетевая файловая система.
- •37. Методы управления локальной сетью.
- •38. Методы настройки служб ос.
- •39. Методы управления учетными записями пользователей ос.
- •Сервис печати ос.
- •Методы повышения отказоустойчивости ос.
- •Методы диагностики процесса загрузки ос.
- •Методы диагностики текущего состояния ос.
- •Актуальность защиты операционной системы.
- •Виды атак на ос.
- •Способы защиты ос от типовых атак.
Команда в общем виде:
<команда> ::=
<простая команда> | <оператор управления> | <определение функции> | <список> | (<список>) | { <список>; }
Цикл for
Цикл for имеет следующий синтаксис:
<цикл for> ::=
for <имя переменной> [in<список слов>] do <команды> done
<список слов> ::=
<слово>{<пробел><слово>}
<команды> ::=
<команда> {<; или перевод строки><команда>}
Операторы цикла while и until
Командный интерпретатор поддерживает также традиционные циклы по условию со следующим синтаксисом:
<оператор while> ::=
while <команды> do <команды> done
<оператор until> ::=
until <команды> do <команды> done
Оператор выбора
Командный интерпретатор поддерживает выполнение того или иного блока команд в зависимости от значения некоторого слова. Для этого предлагается оператор case со следующим синтаксисом:
<оператор выбора> ::=
case <слово>in <описание варианта> ) <команды> ;; {<описание варианта> )<команды> ;; } esac
<описание варианта> ::=
<шаблон>{ | <шаблон>}
<команды> ::=
<команда> {<разделитель><команда>}
<разделитель> ::=
<перевод строки> | ;
Условный оператор
Командный интерпретатор поддерживает условный оператор следующего общего вида:
<условный оператор> ::=
if <команды> then <команды> {elif <команды> then <команды>} [else <команды>] fi
Переменные в скриптах командного интерпретатора ос.
Командный интерпретатор использует переменные как временное хранилище данных, необходимое ему для нормальной работы: например, переменные могут использоваться в скриптах интерпретатора или для передачи настроек. Переменные также обеспечивают удобный доступ к среде окружения программ.
Таблицаназначение разделителей
Приоретет выполнения |
Разделитель |
Интерпретация |
|||
- |
| |
Конвейер |
|||
0 |
() |
Выполнить в порожденном интерпритаторе |
|||
0 |
{} |
Группировка команд (аналог системного вызова exec) |
|||
1 |
&& |
Следующий список выполняется только в случае успешного выполнения предыдущего (то есть предыдущий имеет нулевой статус выхода) p1&&p2 |
|||
1 |
|| |
Следующий список выполняется только тогда когда предыдущий процесс завершился неудачно (то есть предыдущий имел не нулевой статус выхода) p1||p2 |
|||
2 |
; |
Последовательное выполнение предшествующего конвейера (т.е. командный интерпретатор ожидает окончания конвейера перед выполнением любых команд, следующих за точкой с запятой). Может быть любое количесвто. |
|||
2 |
& |
Вызывает асинхронное выполнение предшествующего конвейера (т.е. командный интерпретатор не ожидает окончания работы конвейера). |
Метасимволы командного интерпретатора
Метасимвол |
Интерпретация |
||
> |
prog>file - переключить стандартный выходной поток в файл |
||
>> |
prog>>file - добавить стандартный выходной поток к файлу |
||
< |
prog<file - извлечь стандартный входной поток из файла |
||
| |
p1 | p2 - передать стандартный выходной поток p1 как стандартный входной поток p2 |
||
<<str |
"Документ здесь": стандартный входной поток задается в последующих строках до строки, состоящей только из символов str. |
||
* |
Задает в имени файла любую строку из нуля или более символов |
||
? |
Задает любой символ в имени файла |
||
[abc] |
Задает любой символ из [abc] в имени файла, при этом допускаются диапазоны, задаваемые при помощи дефиса -. Если первым символом после [ является !, с этой конструкцией сопоставляется любой символ, не входящий в квадратные скобки. |
||
; |
Разделитель команд: p1; p2 - выполнить p1, затем p2. |
||
& |
Выполняет предшествующую команду в фоновом режиме |
||
`...` |
Инициирует выполнение команд(ы) в ...; `...` заменяется на полученный в результате выполнения стандартный выходной поток |
||
$1,$2,...$9 |
Заменяются аргументами командного файла |
||
$var |
Значение переменной (ключевого параметра) var в сеансе |
||
${var} |
Значение var: исключает коллизии в случае конкатенации переменной с последующим текстом |
||
\ |
\c - использовать непосредственно символ c, \перевод строки - отбрасывается |
||
'...' |
Непосредственное использование того, что в кавычках |
||
"..." |
Непосредственное использование, но после того, как будут интерпретированы метасимволы $, `...` и \ |
||
# |
Начало комментария |
||
#!/путь |
Стандартное начало скрипта |
Таблица Позиционные и специальные параметры командного интерпретатора
Параметр |
Назначение |
$0 |
Имя выполняемой команды |
$1,$2,...$9 |
Заменяются аргументами командного файла |
$# |
Количество аргументов |
$* |
Все аргументы, передаваемые интерпретатору. "$*" является единым словом, образованным из всех аргументов, объединенных вместе с пробелами. |
$@ |
Аналогично $*. "$@" идентично аргументам: пробелы в аргументах игнорируются, и получается список слов, идентичных исходным аргументам. |
$- |
Флаги, установленные в интерпретаторе. |
$? |
Значение, возвращенное последней выполненной командой (статус выхода). |
$$ |
Номер процесса интерпретатора. |
$! |
Номер процесса последней команды, запущенной асинхронно с помощью &. |
Операторы
Оператор |
Коментарий |
= |
Присваивание. Без пробелов, если в значении содержаться пробелы, то их стоит взять в кавычки. var=value |
Export |
Экспортирование переменной из процесса в среду. Для просмотра значений всех переменных среды предназначена команда env. |
For |
цикл for - цикл по списку слов. Синтакси |
While |
Оператор цикла. Выполняется пока истина то есть последняя операция закончилась с результатом ноль (истина). Синтаксис: |
Until |
Оператор цикла. Выполняется пока ложь то есть последняя операция закончилась с результатом не ноль (ложь) Синтаксис: |
Case |
Оператор выбора блока команд в зависимости от условия: |
if |
Оператор условия. Истиной в данном случае ситуация когда команда заканчивается с результатом ноль Синтаксис |
Read |
Запрос информации у пользователя. Пример readgreeting. В данном случае вводимое значение занесется в переменныюgreeting. |
test |
Проверка условия. Об этом операторе стоит рассказать подробнее. |
Встроенные переменные командного интерпретатора
Переменная |
Значение |
$HOME |
Начальный каталог пользователя. |
$PATH |
Путь для поиска выполняемых команд. |
$CDPATH |
Путь поиска для команды cd. |
$IFS |
Список символов, разделяющих слова в аргументах |
Файл почтового ящика. Командный интерпретатор информирует пользователя о получении почты в указанный файл. |
|
$MAILCHECK |
Эта переменная определяет, как часто (в секундах) интерпретатор будет проверять поступление почты в файл, определяемый переменной MAIL. По умолчанию принято значение 600 секунд. При установке в 0, интерпретатор будет проверять почту перед каждой выдачей строки-приглашения. |
$PS1 |
Строка-приглашение, по умолчанию принята '$ ' |
$PS2 |
Строка-приглашение при продолжении командной строки, по умолчанию принята '> ' |