Файл: Министерство образования и науки российской федерации университет итмо д. А. Зубок, А. В. Маятин.docx

ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 11.01.2024

Просмотров: 302

Скачиваний: 1

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

СОДЕРЖАНИЕ

Содержание

Введение

Виртуальная среда для выполнения лабораторных работ

Лабораторная работа №1. Основы использования консольного интерфейса ОС GNU/Linux.

Рассматриваемые вопросы:

Методические рекомендации:

Арифметические операторы:

Условный оператор.

Операции сравнения:

Задание на лабораторную работу

Лабораторная работа №2. Обработка текстовых потоков в ОС GNU/Linux

Рассматриваемые вопросы

Методические рекомендации:

Управление вводом-выводом команд (процессов)

0 = stdin

2 = stderr

Работа со строками (внутренние команды bash)

$position.

Работа со строками (внешние команды)

Классы символов POSIX

Задание на лабораторную работу

Лабораторная работа №3. Мониторинг процессов в ОС

Рассматриваемые вопросы

Методические рекомендации:

Идентификация процессов

Получение общих сведений о запущенных процессах

Получение детальных сведений о запущенных процессах

Обработка данных о процессах

Получение данных об оперативной памяти

Задание на лабораторную работу

ProcessID=PID : Parent_ProcessID=PPID : Average_Time=avg_atom.

Лабораторная работа №4. Управление процессами в ОС

Рассматриваемые вопросы

Методические рекомендации:

Директивы (команды) объединения команд

{

Команды для управления процессами

минута час день_месяца месяц день_недели команда

Организация взаимодействия двух процессов

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

Задание на лабораторную работу

Лабораторная работа №5. Работа с файлово-каталожной системой в ОС GNU/Linux

Рассматриваемые вопросы

Методические рекомендации

Основные команды для работы с файлами и каталогами

./../../home/user/file будет соответствовать пути к файлу в домашнем каталоге, как и описанный выше пример абсолютного пути.Для того, чтобы перейти к корню файловой системы можно использовать команду cd /Для обозначения домашнего каталога активного пользователя можно использовать символ . Тогда запись cd

Задание на лабораторную работу

Лабораторная работа №6. Консольный интерфейс ОС

Рассматриваемые вопросы

Методические рекомендации

Основные команды, необходимые для выполнения лабораторной работы:

if [not] errorlevel число команда [else команда]

if [not] строка1==строка2 команда [else команда]

if [not] exist имя_файла команда [else команда]

for {%переменная | %%переменная} in (множество) do

Задание на лабораторную работу

LAB6.

LAB6.

Рекомендуемая литература

Кафедра информационных систем

ОПЕРАЦИОННЫЕ СИСТЕМЫ

методические указания

это ссылка на ее значение. "Чистые" имена переменных, без префикса $, могут использоваться только при объявлении переменной или при присваивании переменной некоторого значения. В отличие от большинства других языков программирования, Bash не производит разделения переменных по типам. По сути, переменные Bash являются строковыми переменными, но, в зависимости от контекста, Bash допускает целочисленную арифметику с переменными. Определяющим фактором здесь служит содержимое переменных.
Оператор присваивания "=". При использовании оператора присваивания нельзя ставить пробелы слева и справа от знака равенства. Если в процессе присваивания требуется выполнить арифметические операции, то перед записью арифметического выражения используют оператор let, например:
Let a=2\*2

(оператор умножения является специальным символом и должен быть экранирован).


Арифметические операторы:



"+" сложение "–" вычитание "*" умножение

"/" деление (целочисленное) "**" возведение в степень "%" остаток от деления

Специальные переменные. Для Bash существует ряд зарезервированных имен переменных, которые хранят определенные значения.

  • Позиционные параметры. Аргументы, передаваемые скрипту из командной строки, хранятся в зарезервированных переменных $0, $1, $2, $3..., где $0 – это название файла сценария, $1 – это первый аргумент, $2 – второй, $3 – третий и так далее. Аргументы, следующие за $9, должны заключаться в фигурные скобки, например: ${10}, ${11}, ${12}. Передача параметров скрипту происходит в виде перечисления этих параметров после имени скрипта через пробел в момент его запуска.

  • Другие зарезервированные переменные:

$DIRSTACK содержимое вершины стека каталогов

$EUID эффективный UID.

$UID – ... содержит реальный идентификатор, который устанавливается только при логине.

$GROUPS массив групп к которым принадлежит текущий пользователь

$HOME домашний каталог пользователя

$HOSTNAME hostname компьютера

$HOSTTYPE архитектура машины.

$PWD рабочий каталог

$OSTYPE тип ОС

$PATH путь поиска программ

$PPID идентификатор родительского процесса

$SECONDS время работы скрипта секундах)

$# общее количество параметров, переданных скрипту

$* все аргументы, переданные скрипту (выводятся в строку)


$@ то же самое, что и предыдущий, но параметры выводятся в столбик

$! PID последнего запущенного в фоне процесса

$$ PID самого скрипта

Код завершения. Команда exit может использоваться для завершения работы сценария, точно так же как и в программах на языке C. Кроме того, она может возвращать некоторое значение, которое может быть проанализировано вызывающим процессом. Команде exit можно явно указать код возврата, в виде exit nnn, где nnn это код возврата (число в диапазоне 0– 255).

Оператор вывода. Echo переменные_или_строки

Оператор ввода. Read имя_переменной. Одна команда read может прочитать (присвоить) значения сразу для нескольких переменных. Если переменных в read больше, чем их введено (через пробелы), оставшимся присваивается пустая строка. Если передаваемых значений больше, чем переменных в команде read, то лишние игнорируются.

Условный оператор.


If команда1 then команда2 [else команда3] fi.

Если команда1 вернула после выполнения значение "истина", то выполняется команда2 после then. Если есть необходимость сравнивать значения переменных и/или констант, после if используется специальная команда

[[ выражение ]]. Обязательно ставить пробелы между выражением и скобками, например:
if [[ "$a" –eq "$b" ]] then echo "a = b"

fi

Операции сравнения:



Операции сравнения целых чисел:

-eq # равно

-ne # не равно

-lt # меньше

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

-gt # больше

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

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

-z # строка пуста

-n # строка не пуста

= или == # строки равны

!= # строки не равны

< # меньше (сравниваются коды символов)

<= # меньше или равно (сравниваются коды символов)

> # больше (сравниваются коды символов)

>= # больше или равно (сравниваются коды символов)
! # отрицание логического выражения

-a,(&&) # логическое «И»

-o,(||) # логическое «ИЛИ»

Множественный выбор. Для множественного выбора может применяться оператор case.

case переменная in значение1 ) команда 1

;;

значение2 )

команда 2

;;

esac

Выбираемые значения обозначаются правой скобкой в конце значения.

Разделитель ситуаций ;;

Цикл for. Существует
два способа задания цикла for.

  1. Стандартный for переменная in список_значений; do;

команды; done. Например:

for i in 0 1 2 3 do

echo $i done

  1. С-подобный


for ((i=0; c <=3; i++)) do

echo $i done

Цикл while: while условие; do; команда; done. Синтаксис записи условия такой же, как и в условном операторе, например:
i=0

while [ i –le 3 ] do

echo $i let i+=1 done

Управление циклами. Для управления ходом выполнения цикла служат команды break и continue. Они точно соответствуют своим аналогам в других языках программирования. Команда break прерывает исполнение цикла, в то время как continue передает управление в начало цикла, минуя все последующие команды в теле цикла.