Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

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

.docx
Скачиваний:
0
Добавлен:
28.09.2026
Размер:
2 Мб
Скачать
☆

Министерство цифрового развития связи и массовых коммуникаций

Ордена Трудового Красного Знамени

Федеральное государственное бюджетное образовательное учреждение

высшего образования

«МОСКОВСКИЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ

СВЯЗИ И ИНФОРМАТИКИ»

Кафедра «Системное программирование»

Отчёт по лабораторной работе №2

по дисциплине «Современные операционные системы»

на тему «Работа с командной оболочкой bash в ОС семейства Linux»

Выполнил: студент группы М092501(70)

Ягудин Р.Р.

Проверил: доц. Трухманов В.Б.

Москва 2025 г.

СОДЕРЖАНИЕ

№ стр.

  1. Цель лабораторной работы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3

  2. Задачи работы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3

  3. Теоретическая часть . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3

  4. Экспериментальная часть . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4

    1. Запуск и подготовка виртуального терминала . . . . . . . . . . . . . . . . . . . 4

    2. Навигация . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

    3. Манипулирование файлами . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

    4. Ключи и аргументы команд . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12

  5. Ответы на контрольные вопросы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

  6. Выводы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15

  1. ЦЕЛЬ ЛАБОРАТОРНОЙ РАБОТЫ

Научиться работать с командной оболочкой bash операционной системы семейства Linux и изучить основные команды файловой системы.

  1. ЗАДАЧИ РАБОТЫ

  1. Включить запись действий в терминале с помощью script

  2. Сгенерировать задание с помощью приложенного файла lab2.py

  3. Выполнить задание Task 1 – исследовать файловую структуру, сгенерированную скриптом, найти и вывести содержимое текстового файла в файловой иерархии

  4. Выполнить задание Task 2 – создать 3 файла, наполнить их данными, использовать копирование, перемещение и удаление файлов поштучно и по паттерну.

  5. Выполнить задание Task 3 – исследовать возможности утилиты tar, создать новый архив, распаковать сгенерированный архив

  1. ТЕОРЕТИЧЕСКАЯ ЧАСТЬ

Командная оболочка (command shell) — это программа, которая интерпретирует введённые пользователем команды, преобразуя их в инструкции ОС. В разных дистрибутивах ОС семейства Linux могут применяться разные командные оболочки. Видов командных оболочек несравнимо меньше, чем количество видов дистрибутивов Linux. На самых популярных дистрибутивах чаще всего стоит оболочка bash. Доступ к командной оболочке осуществляется через виртуальные терминалы либо через эмулятор терминала.

  1. ЭКСПЕРИМЕНТАЛЬНАЯ ЧАСТЬ

    1. Запуск и подготовка виртуального терминала

Запускаем ВМ, дожидаемся загрузки ОС и запускаем терминал

Рисунок 1 – Запуск терминала ВМ

Запускаем запись терминала

Рисунок 2 – Запись терминала ВМ

Вводим команду ls -l и видим, что файл создался

Рисунок 3 – Вывод созданного файла

    1. Навигация

Проверяем версию python, после чего создаём файл на рабочем столе

Рисунок 4 – Проверка версии python и создание файла на рабочем столе

Рисунок 5 – Содержимое файла lab2.py

Выводим путь текущей рабочей директории и список всех файлов и каталогов в ней

Рисунок 6 – Вывод пути текущей рабочей директории

Рисунок 7 – Вывод списка всех файлов и каталогов текущей рабочей директории

Переходим на рабочий стол и выводим список всех файлов и каталогов в нём. Видим, что файл lab2.py есть в выводе

Рисунок 8 – Вывод списка всех файлов и каталогов рабочего стола

Запускаем генерацию варианта задания

Рисунок 9 – Запуск генерации варианта задания

Выводим список всех файлов и каталогов рабочего стола. Видим директорию (синий цвет)

Рисунок 10 – Вывод списка всех файлов и каталогов рабочего стола

Переходим в данную директорию и ищем текстовый файл

Рисунок 11 – Переход в директорию и поиск текстового файла

Переходим в следующую директорию и выводим содержимое текстового файла

Рисунок 12 – Переход в директорию и вывод содержимого текстового файла

Для построения дерева, соответствующего структуре исследованной папки, установим пакет tree и выведем дерево, находясь в корневой директории текстового файла

Рисунок 13 – Установка пакета tree для построения дерева

Рисунок 14 – Построение дерева

    1. Манипулирование файлами

Создаём соответствующую дереву структуру директорий с помощью терминала

Рисунок 15 – Создание структуры директорию, соответствующую дереву

Рисунок 16 – Дерево директории

Переходим в корневую папку дерева, создаём там три файла и записываем туда данные

Рисунок 17 – Переход в корневую папку дерева и создание файлов

Рисунок 18 – Открытие первого файла

Рисунок 19 – Запись данных в первый файл

Рисунок 20 – Открытие второго файла

Рисунок 21 – Запись данных во второй файл

Рисунок 22 – Открытие третьего файла

Рисунок 23 – Запись данных в третий файл

Копируем первый файл и сохраняем его в той же папке

Рисунок 24 – Копирование первого файла и его сохранение в той же папке

Второй файл перемещаем в папку на уровень ниже (глубже) и переименовываем

Рисунок 25 – Перемещение второго файла и его переименовывание

Удаляем третий файл

Рисунок 26 – Удаление третьего файла

Удаляем рекурсивно все файлы, название которых заканчивается

на цифру, и выводим список файлов для проверки работы

Рисунок 27 – Удаление файлов, заканчивающихся на цифру, и вывод результата

    1. Ключи и аргументы команд

Переходим на рабочий стол и смотрим справку команды 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 – Завершение записи команд

  1. ОТВЕТЫ НА КОНТРОЛЬНЫЕ ВОПРОСЫ

  1. Как расшифровывается аббревиатура bash?

Bash расшифровывается как Bourne-Again shell. Это усовершенствованная и совместимая версия командной оболочки Bourne shell (sh).

  1. Что такое виртуальный терминал?

Виртуальный терминал (также известный как виртуальная консоль или TTY) — это эмулятор текстовой консоли, предоставляющий интерфейс командной строки в графической среде. В отличие от физического терминала, он работает как программа внутри ОС, позволяя пользователю взаимодействовать с оболочкой (например, bash) через ввод и вывод текста.

  1. В чём отличие системных и встроенных команд оболочки?

Системные команды — это отдельные исполняемые файлы (программы), расположенные в каталогах файловой системы, таких как /bin, /usr/bin, /sbin и др. При вызове такой команды оболочка создает новый процесс для ее выполнения. Примеры системных команд: ls, cp, grep, find.

Встроенные команды — это команды, встроенные непосредственно в саму оболочку (bash). Они выполняются непосредственно в процессе оболочки, без создания нового процесса, что делает их выполнение более быстрым. Примеры встроенных команд: cd, echo, pwd, alias.

  1. Что такое архивация, чем она отличается от сжатия?

Архивация — это процесс объединения нескольких файлов и/или каталогов в один файл (архив) для удобства хранения и передачи. Пример: команда tar создает архив «.tar»

Сжатие — это процесс уменьшения размера файла или архива за счёт использования специальных алгоритмов, устраняющих избыточность данных. Пример: утилиты gzip (создает .gz) или bzip2 (создает .bz2)

Архивация может выполняться без сжатия, но часто эти процессы совмещаются.

  1. Что такое текущая рабочая директория?

Текущая рабочая директория (или текущий каталог) — это директория в файловой системе, в которой пользователь находится в данный момент в сеансе работы с терминалом. Все команды, которые работают с файлами (например, ls, cat, nano), по умолчанию выполняются относительно этой директории, если не указан абсолютный путь. Для просмотра текущей рабочей директории используется команда pwd (print working directory).

  1. ВЫВОДЫ

В ходе выполнения данной лабораторной работы я приобрёл навыки работы с командной оболочкой bash операционной системы семейства Linux и изучил основные команды файловой системы.

12