Лабораторная работа №2
.docxМинистерство цифрового развития связи и массовых коммуникаций
Ордена Трудового Красного Знамени
Федеральное государственное бюджетное образовательное учреждение
высшего образования
«МОСКОВСКИЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ
СВЯЗИ И ИНФОРМАТИКИ»
Кафедра «Системное программирование»
Отчёт по лабораторной работе №2
по дисциплине «Современные операционные системы»
на тему «Работа с командной оболочкой bash в ОС семейства Linux»
Выполнил: студент группы М092501(70)
Ягудин Р.Р.
Проверил: доц. Трухманов В.Б.
Москва 2025 г.
СОДЕРЖАНИЕ
№ стр.
Цель лабораторной работы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
Задачи работы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
Теоретическая часть . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
Экспериментальная часть . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
Запуск и подготовка виртуального терминала . . . . . . . . . . . . . . . . . . . 4
Навигация . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
Манипулирование файлами . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
Ключи и аргументы команд . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
Ответы на контрольные вопросы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
Выводы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
ЦЕЛЬ ЛАБОРАТОРНОЙ РАБОТЫ
Научиться работать с командной оболочкой bash операционной системы семейства Linux и изучить основные команды файловой системы.
ЗАДАЧИ РАБОТЫ
Включить запись действий в терминале с помощью script
Сгенерировать задание с помощью приложенного файла lab2.py
Выполнить задание Task 1 – исследовать файловую структуру, сгенерированную скриптом, найти и вывести содержимое текстового файла в файловой иерархии
Выполнить задание Task 2 – создать 3 файла, наполнить их данными, использовать копирование, перемещение и удаление файлов поштучно и по паттерну.
Выполнить задание Task 3 – исследовать возможности утилиты tar, создать новый архив, распаковать сгенерированный архив
ТЕОРЕТИЧЕСКАЯ ЧАСТЬ
Командная оболочка (command shell) — это программа, которая интерпретирует введённые пользователем команды, преобразуя их в инструкции ОС. В разных дистрибутивах ОС семейства Linux могут применяться разные командные оболочки. Видов командных оболочек несравнимо меньше, чем количество видов дистрибутивов Linux. На самых популярных дистрибутивах чаще всего стоит оболочка bash. Доступ к командной оболочке осуществляется через виртуальные терминалы либо через эмулятор терминала.
ЭКСПЕРИМЕНТАЛЬНАЯ ЧАСТЬ
Запуск и подготовка виртуального терминала
Запускаем ВМ, дожидаемся загрузки ОС и запускаем терминал
Рисунок 1 – Запуск терминала ВМ
Запускаем запись терминала
Рисунок 2 – Запись терминала ВМ
Вводим команду ls -l и видим, что файл создался
Рисунок 3 – Вывод созданного файла
Навигация
Проверяем версию python, после чего создаём файл на рабочем столе
Рисунок 4 – Проверка версии python и создание файла на рабочем столе
Рисунок 5 – Содержимое файла lab2.py
Выводим путь текущей рабочей директории и список всех файлов и каталогов в ней
Рисунок 6 – Вывод пути текущей рабочей директории
Рисунок 7 – Вывод списка всех файлов и каталогов текущей рабочей директории
Переходим на рабочий стол и выводим список всех файлов и каталогов в нём. Видим, что файл lab2.py есть в выводе
Рисунок 8 – Вывод списка всех файлов и каталогов рабочего стола
Запускаем генерацию варианта задания
Рисунок 9 – Запуск генерации варианта задания
Выводим список всех файлов и каталогов рабочего стола. Видим директорию (синий цвет)
Рисунок 10 – Вывод списка всех файлов и каталогов рабочего стола
Переходим в данную директорию и ищем текстовый файл
Рисунок 11 – Переход в директорию и поиск текстового файла
Переходим в следующую директорию и выводим содержимое текстового файла
Рисунок 12 – Переход в директорию и вывод содержимого текстового файла
Для построения дерева, соответствующего структуре исследованной папки, установим пакет tree и выведем дерево, находясь в корневой директории текстового файла
Рисунок 13 – Установка пакета tree для построения дерева
Рисунок 14 – Построение дерева
Манипулирование файлами
Создаём соответствующую дереву структуру директорий с помощью терминала
Рисунок 15 – Создание структуры директорию, соответствующую дереву
Рисунок 16 – Дерево директории
Переходим в корневую папку дерева, создаём там три файла и записываем туда данные
Рисунок 17 – Переход в корневую папку дерева и создание файлов
Рисунок 18 – Открытие первого файла
Рисунок 19 – Запись данных в первый файл
Рисунок 20 – Открытие второго файла
Рисунок 21 – Запись данных во второй файл
Рисунок 22 – Открытие третьего файла
Рисунок 23 – Запись данных в третий файл
Копируем первый файл и сохраняем его в той же папке
Рисунок 24 – Копирование первого файла и его сохранение в той же папке
Второй файл перемещаем в папку на уровень ниже (глубже) и переименовываем
Рисунок 25 – Перемещение второго файла и его переименовывание
Удаляем третий файл
Рисунок 26 – Удаление третьего файла
Удаляем рекурсивно все файлы, название которых заканчивается
на цифру, и выводим список файлов для проверки работы
Рисунок 27 – Удаление файлов, заканчивающихся на цифру, и вывод результата
Ключи и аргументы команд
Переходим на рабочий стол и смотрим справку команды tar
Рисунок 28 – Переход на рабочий стол и просмотр справки команды tar
Ответы на подвопросы:
Какой ключ используется, чтобы создать архив? Ответ: -c
Какой ключ используется, чтобы извлечь архив? Ответ: -x
Какой ключ используется для выбора формата компрессии? Ответ: - (дефис) и буква, указывающая алгоритм. -z для gzip, -j для bzip2, -J для xz
Какой ключ используется для установки имени архива/директории? Ответ: -f
Создаём архив my_new_archive.tar.gz из директории, созданной в предыдущем разделе «Манипулирование файлами» с использованием команды tar
Рисунок 29 – Создание архива и вывод результата
Извлекаем файл из архива, созданного в предыдущем разделе «Навигация», в Task 3 с использованием команды tar
Рисунок 30 – Извлечение файла из архива и вывод результата
Читаем содержимое secret_file из архива
Рисунок 31 – Чтение содержимого файла secret_file
Завершаем запись команд
Рисунок 32 – Завершение записи команд
ОТВЕТЫ НА КОНТРОЛЬНЫЕ ВОПРОСЫ
Как расшифровывается аббревиатура bash?
Bash расшифровывается как Bourne-Again shell. Это усовершенствованная и совместимая версия командной оболочки Bourne shell (sh).
Что такое виртуальный терминал?
Виртуальный терминал (также известный как виртуальная консоль или TTY) — это эмулятор текстовой консоли, предоставляющий интерфейс командной строки в графической среде. В отличие от физического терминала, он работает как программа внутри ОС, позволяя пользователю взаимодействовать с оболочкой (например, bash) через ввод и вывод текста.
В чём отличие системных и встроенных команд оболочки?
Системные команды — это отдельные исполняемые файлы (программы), расположенные в каталогах файловой системы, таких как /bin, /usr/bin, /sbin и др. При вызове такой команды оболочка создает новый процесс для ее выполнения. Примеры системных команд: ls, cp, grep, find.
Встроенные команды — это команды, встроенные непосредственно в саму оболочку (bash). Они выполняются непосредственно в процессе оболочки, без создания нового процесса, что делает их выполнение более быстрым. Примеры встроенных команд: cd, echo, pwd, alias.
Что такое архивация, чем она отличается от сжатия?
Архивация — это процесс объединения нескольких файлов и/или каталогов в один файл (архив) для удобства хранения и передачи. Пример: команда tar создает архив «.tar»
Сжатие — это процесс уменьшения размера файла или архива за счёт использования специальных алгоритмов, устраняющих избыточность данных. Пример: утилиты gzip (создает .gz) или bzip2 (создает .bz2)
Архивация может выполняться без сжатия, но часто эти процессы совмещаются.
Что такое текущая рабочая директория?
Текущая рабочая директория (или текущий каталог) — это директория в файловой системе, в которой пользователь находится в данный момент в сеансе работы с терминалом. Все команды, которые работают с файлами (например, ls, cat, nano), по умолчанию выполняются относительно этой директории, если не указан абсолютный путь. Для просмотра текущей рабочей директории используется команда pwd (print working directory).
ВЫВОДЫ
В ходе выполнения данной лабораторной работы я приобрёл навыки работы с командной оболочкой bash операционной системы семейства Linux и изучил основные команды файловой системы.
