Файл: Министерство образования и науки российской федерации университет итмо д. А. Зубок, А. В. Маятин.docx
ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 11.01.2024
Просмотров: 306
Скачиваний: 1
СОДЕРЖАНИЕ
Виртуальная среда для выполнения лабораторных работ
Лабораторная работа №1. Основы использования консольного интерфейса ОС GNU/Linux.
Задание на лабораторную работу
Лабораторная работа №2. Обработка текстовых потоков в ОС GNU/Linux
Управление вводом-выводом команд (процессов)
Работа со строками (внутренние команды bash)
Работа со строками (внешние команды)
Задание на лабораторную работу
Лабораторная работа №3. Мониторинг процессов в ОС
Получение общих сведений о запущенных процессах
Получение детальных сведений о запущенных процессах
Получение данных об оперативной памяти
Задание на лабораторную работу
ProcessID=PID : Parent_ProcessID=PPID : Average_Time=avg_atom.
Лабораторная работа №4. Управление процессами в ОС
Директивы (команды) объединения команд
Команды для управления процессами
минута час день_месяца месяц день_недели команда
Организация взаимодействия двух процессов
Задание на лабораторную работу
Лабораторная работа №5. Работа с файлово-каталожной системой в ОС GNU/Linux
Основные команды для работы с файлами и каталогами
Задание на лабораторную работу
Лабораторная работа №6. Консольный интерфейс ОС
Основные команды, необходимые для выполнения лабораторной работы:
if [not] errorlevel число команда [else команда]
if [not] строка1==строка2 команда [else команда]
if [not] exist имя_файла команда [else команда]
for {%переменная | %%переменная} in (множество) do
Оператор присваивания "=". При использовании оператора присваивания нельзя ставить пробелы слева и справа от знака равенства. Если в процессе присваивания требуется выполнить арифметические операции, то перед записью арифметического выражения используют оператор 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.
-
Стандартный – for переменная in список_значений; do;
команды; done. Например:
for i in 0 1 2 3 do
echo $i done
-
С-подобный
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 передает управление в начало цикла, минуя все последующие команды в теле цикла.