/OS_bash

Primary LanguageShell

OS_bash

Лабораторная 1


  1. В параметрах скрипта передаются две строки. Вывести сообщение о равенстве или неравенстве переданных строк.
  2. В параметрах при запуске скрипта передаются три целых числа. Вывести максимальное из них.
  3. Считывать строки с клавиатуры, пока не будет введена строка "q". После этого вывести последовательность считанных строк в виде одной строки.
  4. Считывать с клавиатуры целые числа, пока не будет введено четное число. После этого вывести количество считанных чисел.
  5. Создать текстовое меню с четырьмя пунктами. При вводе пользователем номера пункта меню происходит запуск редактора nano, редактора vi, браузера links или выход из меню.
  6. Если скрипт запущен из домашнего директория, вывести на экран путь к домашнему директорию и выйти с кодом 0. В противном случае вывести сообщение об ошибке и выйти с кодом 1.

Лабораторная 2


1) Создать файл errors.log, в который поместить все строки из всех доступных для чтения файлов директории /var/log/, начинающиеся c последовательности символов ACPI, без указания имени файла, в котором встретилась строка. Вывести на экран те строчки из получившегося файла, которые содержат полные имена каких-либо файлов.
2) Создать full.log, в который вывести строки файла /var/log/Xorg.0.log, содержащие предупреждения и информационные сообщения, заменив маркеры предупреждений и информационных сообщений на слова Warning: и Information:, чтобы в получившемся файле сначала шли все ошибки, а потом все предупреждения. Вывести этот файл на экран.
3) Создать файл emails.lst, в который вывести через запятую все адреса электронной почты, встречающиеся во всех файлах директории /etc.
4) Найти в директории /bin все файлы, которые являются сценариями, и вывести на экран полное имя файла с интерпретатором, наиболее часто используемым в этих сценариях (только полное имя файла).
5) Вывести список пользователей системы с указанием их UID, отсортировав по UID. Сведения о пользователей хранятся в файле /etc/passwd. В каждой строке этого файла первое поле – имя пользователя, третье поле – UID. Разделитель – двоеточие.
6) Подсчитать общее количество строк в файлах, находящихся в директории /var/log/ и имеющих расширение log.
7) Вывести три наиболее часто встречающихся слова из man по команде bash длиной не менее четырех символов.

Лабораторная 3


  1. Посчитать количество процессов, запущенных пользователем user, и вывести в файл пары PID:команда для таких процессов.
  2. Вывести на экран PID процесса, запущенного последним (с последним временем запуска).
  3. Вывести в файл список PID всех процессов, которые были запущены командами, расположенными в /sbin/
  4. Для каждого процесса посчитать разность резидентной и разделяемой части памяти процесса (в страницах). Вывести в файл строки вида PID:разность, отсортированные по убыванию этой разности.
  5. Для всех зарегистрированных в данный момент в системе процессов выведите в один файл строки ProcessID=PID : Parent_ProcessID=PPID : Average_Sleeping_Time=SleepAVG. Значения PPid и Pid возьмите из файлов status, значение SleepAVG из файла sched поле avg_atom, которые находятся в директориях с названиями, соответствующими PID процессов в /proc . Отсортируйте эти строки по идентификаторам родительских процессов.
  6. В полученном на предыдущем шаге файле после каждой группы записей с одинаковым идентификатором родительского процесса вставить строку вида Average_Sleeping_Children_of_ParentID=N is M, где N = PPID, а M – среднее, посчитанное из SleepAVG для данного процесса.