Файл: Министерство образования и науки российской федерации университет итмо д. А. Зубок, А. В. Маятин.docx
ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 11.01.2024
Просмотров: 281
Скачиваний: 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
Задание на лабораторную работу
-
Создайте свой каталог в директории /home/user/ Все скрипты создавайте внутри этого каталога или его подкаталогов. (mkdir lab1) -
Напишите скрипты, решающие следующие задачи:
-
В параметрах скрипта передаются две строки. Вывести сообщение о равенстве или неравенстве переданных строк. -
В параметрах при запуске скрипта передаются три целых числа. Вывести максимальное из них. -
Считывать строки с клавиатуры, пока не будет введена строка "q". После этого вывести последовательность считанных строк в виде одной строки. -
Считывать с клавиатуры целые числа, пока не будет введено четное число. После этого вывести количество считанных чисел. -
Создать текстовое меню с четырьмя пунктами. При вводе пользователем номера пункта меню происходит запуск редактора nano, редактора vi, браузера links или выход из меню. -
Если скрипт запущен из домашнего директория, вывести на экран путь к домашнему директорию и выйти с кодом 0. В противном случае вывести сообщение об ошибке и выйти с кодом 1.
-
Предъявите скрипты преподавателю и получите вопрос или задание для защиты лабораторной работы. -
После защиты лабораторной работы удалите созданный директорий со всем его содержимым:
(rm –R lab1)
Лабораторная работа №2. Обработка текстовых потоков в ОС GNU/Linux
Рассматриваемые вопросы
-
Понятие стандартного ввода и стандартного вывода процесса -
Перенаправление стандартного вывода в файл -
Связь процессов по вводу/выводу -
Использование вывода процесса как параметра другого процесса -
Регулярные выражения и фильтрация текстовых потоков
Методические рекомендации:
Основным интерфейсом в операционных системах GNU/Linux является консольный интерфейс с текстовым вводом и выводом данных. Это определяет подход к управлению объектами операционной системы в их текстовом отображении. Например, состояние процессов отображается в виде набора текстовых файлов в псевдофайловой системе /proc, сведения о событиях в системе хранятся в текстовых файлах журналов, настройки отдельных пакетов в текстовых конфигурационных файлах. Это делает необходимым для решения дальнейших задач управления операционной системы освоение инструментария работы с текстовыми потоками.
Управление вводом-выводом команд (процессов)
У любого процесса по умолчанию всегда открыты три файла – stdin (стандартный ввод, клавиатура), stdout (стандартный вывод, экран) и stderr (стандартный вывод сообщений об ошибках на экран). Эти и любые другие открытые файлы могут быть перенаправлены. В данном случае термин "перенаправление" означает: получить вывод из файла (команды, программы, сценария) и передать его на вход в другой файл (команду, программу, сценарий). Дескрипторы файлов открытых по умолчанию:
0 = stdin
1 = stdout
2 = stderr
команда > файл – перенаправление стандартного вывода в файл, содержимое существующего файла удаляется.
команда >> файл – перенаправление стандартного вывода в файл, поток дописывается в конец файла.
команда1 | команда2 – перенаправление стандартного вывода первой команды на стандартный ввод второй команды = образование конвейера команд.
команда1 $(команда2) – передача вывода команды 2 в качестве параметров при запуске команды 1. Внутри скрипта конструкция
$(команда2) может использоваться, например, для передачи результатов работы команды 2 в параметры цикла for … in.
Работа со строками (внутренние команды bash)
${#string} – выводит длину строки (string – имя переменной);
${string:position:length} – извлекает $length символов из
$string, начиная с позиции $position. Частный случай:
${string:position} извлекает подстроку из $string, начиная с позиции
$position.
${string#substring} – удаляет самую короткую из найденных подстрок
$substring в строке $string. Поиск ведется с начала строки. $substring
– регулярное выражение (см. ниже).
${string##substring} – удаляет самую длинную из найденных подстрок
$substring в строке $string. Поиск ведется с начала строки.
$substring – регулярное выражение.
${string/substring/replacement} – замещает первое вхождение
$substring строкой $replacement. $substring
– регулярное выражение.
${string//substring/replacement} – замещает все вхождения
$substring строкой $replacement. $substring – регулярное выражение.
Работа со строками (внешние команды)
Длякаждойкомандыдоступноуправлениеспомощьюпередаваемыхкоманде параметров. Рекомендуем ознакомиться с документацией по этимкомандамспомощьюкомандыman.
sort – сортирует поток текста в порядке убывания или возрастания, в зависимости от заданных опций.
uniq – удаляет повторяющиеся строки из отсортированного файла.
cut – извлекает отдельные поля из текстовых файлов (поле –
последовательность символов в строке до разделителя).
head – выводит начальные строки из файла на stdout. tail – выводит последние строки из файла на stdout.
wc – подсчитывает количество слов/строк/символов в файле или в потоке
tr – заменяет одни символы на другие.
Полнофункциональныемногоцелевыеутилиты:
grep – многоцелевая поисковая утилита, использующая регулярные выражения.
grep pattern [file...] – утилита поиска участков текста в файле(ах), соответствующих шаблону pattern, где pattern может быть как обычной строкой, так и регулярным выражением.
Sed – неинтерактивный "потоковый редактор". Принимает текст либо с устройства stdin, либо из текстового файла, выполняет некоторые операции над строками
и затем выводит результат на устройство stdout или в файл. Sed определяет, по заданному адресному пространству, над какими строками следует выполнить операции. Адресное пространство строк задается либо их порядковыми номерами, либо шаблоном. Например, команда 3d заставит sed удалить третью строку, а команда /windows/d означает, что все строки, содержащие "windows", должны быть удалены. Наиболее часто используются команды p – печать (на stdout), d – удаление и s – замена.
awk – утилита контекстного поиска и преобразования текста, инструмент для извлечения и/или обработки полей (колонок) в структурированных текстовых файлах. Awk разбивает каждую строку на отдельные поля. По умолчанию поля – это последовательности символов, отделенные друг от друга пробелами, однако имеется возможность назначения других символов в качестве разделителя полей. Awk анализирует и обрабатывает каждое поле в отдельности.
Регулярные выражения – это набор символов и/или метасимволов, которые наделены особыми свойствами.
Их основное назначение – поиск текста по шаблону и работа со строками. При построении регулярных выражений используются нижеследующие конструкции (в порядке убывания приоритета), некоторые из которых могут быть использованы только в расширенных версиях соответствующих команд (например, при запуске grep