Контрольная работа
Контрольная работа включает 1 теоретический вопрос и 3 задачи.
В ответе на теоретический вопрос указать ссылки на использованные источники.
Решение задач отобразить следующим образом: команда или текст скрипта с пояснениями для каждой команды и использованных ключей; результат выполнения задания (в виде скриншота экрана командной строки).
Вариант выбирается по первой букве фамилии студента (таблица 1).
Вариант 1Теоретический вопрос:1. Понятие операционной системы. Архитектура и функции операционных систем.
Задание:1. Найти все файлы в системе, которые были созданы не более суток назад.
2. Напишите скрипт, который считает количество запущенных пользователем процессов. Имя пользователя вводится с клавиатуры. Перед этим выводится список пользователей, работающих в системе.
Вариант 2Теоретический вопрос:1. Основные принципы построения операционных систем. Классификация операционных систем по структуре и назначению.
Задание:1. Получите имена всех пользователей системы, у которых в качестве командной оболочки используется программа /bin/bash.
2. Скрипт записывает в файл, заданный в первом параметре, слово, заданное во втором параметре, столько раз, сколько задано в третьем параметре.
Вариант 3Теоретический вопрос:1. Типы ядер ОС. Основные функции ядра. Состав ядра Unix.
Задание:1. Получите с помощью одной команды файл, содержащий все числовые идентификаторы пользователей, зарегистрированных в системе.
2. Написать скрипт, который рекурсивно выводит все файлы из заданного каталога, переданного в качестве параметра, в следующем формате: Имя_файла – Тип_файла.
Вариант 4Теоретический вопрос:1. Файловая система Unix. Функции файловой системы. Структура ФС.
Задание:1. Задайте право на чтение для всех пользователей всем файлам, имена которых содержат букву «а».
2. Написать скрипт, который производит рекурсивно поиск заданной подстроки в файлах указанного каталога. Подстрока и каталог для поиска задаются в качестве параметров. Если каталог не задан, то использовать в качестве каталога текущий.
Вариант 5Теоретический вопрос:1. Стандартные каталоги ФС Unix. Виды имён файла.
Задание:1. Создать файл, содержащий имена всех файлов, созданных в текущем месяце, и имена пользователей, их создавших.
2. Скрипт рекурсивно просматривает файлы, начиная с указанного в параметре каталога, и выдаёт сообщение при появлении в списке имени файла, заданного в параметре.
Вариант 6Теоретический вопрос:1. Файловая система Unix. Типы файлов. Атрибуты файлов.
Задание:1. Создать сжатый архив всех файлов, размер которых превышает 1 Кбайт.
2. Подсчитать количество строк во всех файлах с заданными правами доступа каждого класса пользователей.
Вариант 7Теоретический вопрос:1. Файловая система Unix. Основные команды работы с файлами и с текстом файлов.
Задание:1. Определить количество файлов или подкаталогов в корневом каталоге, к которым все имеют полные права доступа.
2. Найти файл, содержащий максимальное число упоминаний слова, заданного в параметре скрипта.
Вариант 8Теоретический вопрос:1. Понятие директории. Команды работы с директориями.
Задание:1. В одном из текстовых файлов перенести третью от начала строку в конец файла.
2. В параметрах скрипта задан список имён файлов. Файлы, содержащие чётное количество строк, скопировать в один файл, а с нечётным количеством строк – в другой файл.
Вариант 9Теоретический вопрос:1. Управление пользователями и правами доступа в Unix. Стандартный ввод/вывод. Средства подстановки команд.
Задание:1. Сформируйте файл со списком файлов в домашнем каталоге, выведите на экран этот список в алфавитном порядке и общее количество файлов.
2. Написать скрипт, копирующий файлы с расширением, заданным в параметре, из текущего каталога и его подкаталогов во вновь созданный.
Вариант 10Теоретический вопрос:1. Процессы в Unix: понятие процесса, типы процессов, контекст процесса, операции над процессами.
Задание:1. Определить количество подкаталогов в /home, к которым нет публичных прав доступа.
2. В заданном каталоге определить, какие имена файлов являются жёсткими ссылками на один и тот же файл.
Формат вызова: команда каталог.
Команда ls с опцией –l выдаёт числа файловых индексов. Файлы, у которых эти числа совпадают, и являются жёсткими ссылками на один и от же файл.Вариант 11Теоретический вопрос:1. Процессы в Unix: свойства, атрибуты, состояния процессов.
Задание:1. Создать файл, содержащий список процессов системы, имеющих ненулевой приоритет.
2. Вычислить среднее арифметическое чисел, заданных в параметрах скрипта.
Вариант 12Теоретический вопрос:1. Командный интерпретатор Shell. Работа с переменными и параметрами. Средства группировки команд.
Задание:1. В одном из текстовых файлов поменять местами первую и последнюю строки файла.
2. Написать скрипт, который рекурсивно выводит все файлы из заданного каталога, переданного в качестве параметра, в следующем формате: Имя_файла – Тип_файла.
Вариант 13Теоретический вопрос:1. Управление памятью в Unix. Страничная организация памяти. Физическая память и виртуальное адресное пространство.
Задание:1. Придумайте регулярное выражение, соответствующее URL, с использованием протокола http. Найдите все строки, содержащие такие URL в файлах каталога /etc.
2. Написать скрипт, который выводит количество строк в каждом файле из каталога, переданного в качестве параметра. В конце должно выводиться общее количество файлов и строк в них. Если каталог не задан, то необходимо в качестве каталога взять текущий.
Вариант 14Теоретический вопрос:1. Вычисления в Shell. Структурные операторы Shell.
Задание:1. В одном из текстовых файлов после строк, которые заканчиваются запятой или точкой, вставить пустую строку.
- Написать скрипт, позволяющий при входе в систему пользователю-владельцу присваивать все права доступа на все файлы домашней директории и подкаталогов.
Вариант 15Теоретический вопрос:1. Средства взаимодействия процессов в Unix. Понятие конвейера. Именованные каналы. Команды управления процессами.
Задание:1. С помощью одной команды найти все файлы с расширением .html в каталоге /usr и скопировать их в локальный каталог shtml.
2. Написать скрипт, который вычисляет корни квадратного уравнения ax
2 + bx + c = 0. Коэффициенты уравнения a, b, c передаются в качестве параметров.
Вариант 16Теоретический вопрос:1. Средства взаимодействия процессов в Unix. Сигналы и их применение. Способы посылки сигналов процессу.
Задание:1. Найти все файлы в системе, которые были созданы не более месяца назад.
2. Создать сжатый архив, включающий все файлы домашней директории и подкаталогов с правом на запуск.
Вариант 17Теоретический вопрос:1. Понятие среды окружения в Unix. Переменные окружения.
Задание:1. Создать файл, содержащий размер и имена 6-и файлов домашней директории, имеющих наименьший размер.
2. Создать скрипт, завершающий интерактивный процесс предыдущей сессии, запущенный последним.
Вариант 18Теоретический вопрос:1. Архивация в Unix.
Задание:1. Задайте право на чтение и запись для всех пользователей всем файлам, имена которых содержат букву «с».
2. Создать сжатый архив, содержащий все ненулевые файлы домашней директории и подкаталогов.
Вариант 19Теоретический вопрос:1. Типы ядер ОС. Основные функции ядра. Состав ядра Unix.
Задание:1. Создать файл, содержащий имена всех файлов, созданных в текущем месяце, и имена пользователей, их создавших.
2. Написать скрипт, позволяющий вывести список всех каталогов, перечисленных в переменной окружения PATH, и для каждого вывести права доступа к нему.
Вариант 20Теоретический вопрос:1. Командный интерпретатор Shell. Работа с переменными и параметрами. Средства группировки команд.
Задание:1. Создать сжатый архив всех файлов, размер которых не превышает 4 Кбайт.
2. В качестве параметра скрипта указывается имя файла. Если в файле не более 10 строк, вывести число символов в нём, иначе – число строк.
Вариант 21Теоретический вопрос:1. Управление пользователями и правами доступа в Unix. Стандартный ввод/вывод. Средства подстановки команд.
Задание:1. Создать файл, содержащий размер и список каталогов домашней директории, в имени которых есть буква а.
2. Написать скрипт, который добавляет к именам всех файлов каталога, заданного в первом параметре, расширения, заданные во втором параметре.
Вариант 22Теоретический вопрос:1. Загрузка ОС Unix. Этапы и уровни загрузки.
Задание:1. Присвоить переменным А, В и С значения 10, 100 и 200 соответственно. Вычислить и вывести результат по формуле D = (A*2 + B/3)*C. Результат должен содержать 6 цифр.
2. Создать сжатый архив всех файлов, в имени и тексте которых есть буква f.
Вариант 23Теоретический вопрос:1. Управление памятью в Unix. Страничная организация памяти. Физическая память и виртуальное адресное пространство.
Задание:1. Определить количество файлов в каталоге /etc, которые являются символическими ссылками.
2. Написать скрипт, производящий поразрядную конъюнкцию задаваемых в DEC-форме чисел
a и
b (задаются из файла в виде двух массивов чисел
a и
b, в массиве не менее 20 строк).
Вариант 24Теоретический вопрос:1. Файловая система Unix. Типы файлов. Атрибуты файлов.
Задание:1. Написать скрипт, выполняющий поиск в домашней директории и поддиректориях файлов с правом на запуск с последующим запуском найденных с приоритетом «10». Запустить скрипт в фоновом режиме. Перевести его в активный режим.
2. В параметрах скрипта задан список имён файлов. Имена файлов, содержащие чётное количество строк, скопировать в один файл, нечётное количество – в другой.
Вариант 25Теоретический вопрос:1. Вычисления в Shell. Структурные операторы Shell.
Задание:1. Запустить процесс поиска файлов системы, имена которых начинаются на «m», и в тексте которых есть «*» с указанием номера строки. Перевести процесс в фоновый режим. Завершить его по имени.
2. В зависимости от первого параметра командной строки для каталога, заданного во втором параметре, определить: 1 – число подкаталогов; 2 – число обычных файлов; 3 – число символических ссылок.
Лабораторная работа №1
Выполнить указанные действия. Создать отчет, в котором отразить выполняемое задание, команды, с помощью которых выполняются указанные действия и результат, полученный после выполнения команды.
1. Создать файл a1 с помощью команды cat; ввести в файл текст из 6-ти строк вида (строка начинается с цифры порядкового номера строки): 1. my name is … 2. my surname is … 3. login is … 4. <текст произвольного содержания (не менее 2-х слов)> 5. <текст произвольного содержания (не менее 2-х слов)> 6. <текст произвольного содержания (не менее 2-х слов)>
2. Создать файл a2 с помощью команды touch; в редакторе vi ввести в файл текст из 6-ти строк аналогичного с содержимым файла a1 вида.
3. Убедиться, что файлы созданы (команда ls -l); просмотреть их содержимое (команда cat). Результат вывода команды ls –l занести в отчет.
4. Изменить права доступа к этим файлам: владельцу все права, группе только чтение, остальным никаких прав доступа. Прочитать новые права доступа и занести в отчет.
5. Первые две строки файла a1 занести в файл a3. Добавить в файл a3 две последние строки файла a1. Просмотреть содержимое файла a3.
6. Отсортировать файл a2 в обратном порядке. Результат сортировки, используя опцию команды сортировки, вывести в файле a2_s.
7. Отсортировать файл a2 по 2-му столбцу. Результат сортировки, используя опцию команды сортировки, вывести в файле a2_s2. Убедиться, что файлы a2_s и a2_s2 созданы; просмотреть их содержимое.
8. С помощью команды grep найти в файлах домашней директории строки, содержащие цифру “3”. Результат выполнения команды занести в файл a_g.
9. С помощью команды cut выделить в файле a2 первый столбец.
10. С помощью команды cut выделить в файле a_g имена файлов, отделив их от строки, содержащей цифру “3”.
11. Создать в домашней директории каталоги с именем D1 и D1_1.
12. Перенести в директорию D1 файл a2; скопировать в директорию D1 файл a3 под именем a3d1; скопировать в директорию D1_1 файл a3 под именем a3d1_1. Проверить наличие в директориях D1 и D1_1 указанных файлов.
13. Перейти из домашней директории в директорию D1. Убедиться, что текущей директорией стала директория D1.
14. Создать в текущей директории D1 жесткую связь с файлом a1, находящимся в домашней директории (создать новое имя существующему файлу), с именем a1_h.
15. Создать в текущей директории D1 файл символической связи с файлом a1, находящимся в домашней директории, с именем a1_sym.
16. Создать в директории D1 каталог с именем D2. Перенести в директорию D2 файл a2; скопировать в директорию D2 файл a3d1 под именем a3d2. Проверить наличие в директории D2 указанных файлов. a) Установить директорию D2 в режим “темной” директории; b) Произвести попытку прочитать содержимое директории D2; c) Прочитать содержимое файлов “темной” директории.
17. Перейти в директорию /home. Убедиться, что текущей директорией стала директория /home.
18. Прочитать рекурсивно содержимое текущей директории. Исключить вывод потока ошибок на терминал.
19. Перейти в домашнюю директорию. Убедиться, что она стала текущей директорией.
20. С помощью команды du вывести размеры каталогов. Исключить вывод потока ошибок на терминал. 21. Используя команды grep, cut и sort, получить список имён тех файлов в каталоге /etc/, в тексте которых содержится 192.168.0. Список имен файлов не должен иметь повторений. Результат занести в файл g192.
22. То же. Используя конвейер выполнить действия в одну строку
Лабораторная работа №2
1. Написать 2 скрипта: - add_phone, создающий список телефонных номеров и фамилии пользователей; - search_phone, осуществляющий поиск телефонных номеров по фамилии или по шаблону.
2. Написать скрипт, осуществляющий вывод сообщений о наличии или отсутствии зарегистрированного в системе пользователя, имя которого задано параметром (список пользователей, зарегистрированных в системе, находится в файле /etc/passwd).
3. Написать скрипт, проверяющий наличие в домашней директории файла profile. Если этот файл отсутствует, то скопировать его из директории /etc.
4. Написать скрипт, проверяющий тип файла. Если файл - каталог, то вывести его содержимое, иначе - вывести сообщение о типе файла.
5. Написать скрипт, в котором создать каталог save, переписать в него содержимое текущего каталога рекурсивно т.е. с поддиректориями и установить на директорию все права для всех.
6. Создать в текущем каталоге и в поддиректориях файлы нулевой длины (пустые файлы). Написать скрипт, удаляющий рекурсивно файлы нулевой длины.
7. Написать скрипт, в котором в качестве параметров командной строки заданы имена файлов. Если задан один файл, то подсчитать число букв в этом файле; если задано два файла – подсчитать число слов; если задано три файла – подсчитать число строк; иначе вывести сообщение об ошибке.
8. Написать скрипт, проверяющий тип файла; если файл текстовый, то загрузить редактор vi, если исполняемый, то выполнить его.