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

1 / Документ DOCX

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

МИНИСТЕРСТВО ЦИФРОВОГО РАЗВИТИЯ, СВЯЗИ И МАССОВЫХ КОММУНИКАЦИЙ РОССИЙСКОЙ ФЕДЕРАЦИИ

Ордена Трудового Красного Знамени федеральное государственное бюджетное образовательное учреждение высшего образования

«Московский технический университет связи и информатики»

Кафедра Программная инженерия

ОТЧЕТ

по лабораторной работе №1

по дисциплине «Основы DevOps»

Тема: «Linux: базовое взаимодействие»

Выполнил: студент группы БВТ2402

Кудряшов Вадим Георгиевич

Проверил: Тимчук А.В.

Цель работы

  1. Изучить базовое устройство Linux;

  2. Научиться взаимодействовать с ОС Linux;

  3. Научиться писать bash-скрипты

Индивидуальное задание

Написать bash-скрипт для удаления файлов по заданному имени из указанной директории, а также предусмотреть флаг -p для удаления по шаблону.

Скриншоты выполнения

Создали файл с будущим скриптом в директории labs/lab1

Сделали его исполняемым

Добавили проверки на: пустое поле, режим работы скрипта (шаблон или конкретный файл), наличие второго параметра в режиме шаблона.

$# - количество переданных параметров

-eq – проверка на равность (у чисел)

= - проверка на равность (у строк)

-lt – меньше чем

Добавили проверку в Current file mode, существует ли заданный параметр и является ли он файлом.

! -f – если файл НЕ существует или НЕ является файлом

добавили проверку удаления и саму команду удаления (пока только в режиме конкретного файла)

read – ожидает ввод и сохраняет в переменную answer

Добавили в Pattern mode поиск файлов по шаблону, для этого взяли ls и передали его команде grep, которая ищет файлы в названии которых содержится $2

Вывод консоли:

Добавил проверку если файлов вообще нет

-z – проверяет пустая ли строка

Вывод консоли:

Добавили само удаление в режиме шаблона

Работа скрипта в терминале:

Исходный код программы

#!/bin/bash

# check params

if [ $# -eq 0 ]; then

    echo "Error! There is no params"

    echo "Using: $0 [-p] <file_name_or_pattern>"

    exit 1

fi

#check mode (if -p - it's pattern mode)

if [ "$1" =  "-p" ]; then

    echo "Pattern mode"

    #check second param

    if [ $# -lt 2 ]; then

        echo "Error: missing pattern after -p"

        exit 1

    fi

    echo "All patterns:"

    echo "${@:2}"

    echo ""

   

    for pattern in "${@:2}"; do

        echo "Processin pattern: $pattern"

        FILES=$(ls | grep "$pattern")

        # if no files

        if [ -z "$FILES" ]; then

            echo "No files found with pattern '$pattern'"

            echo ""

            continue

        fi

        echo "Found files:"

        echo "$FILES"

        echo ""

        echo "Do you want to delete this file (y/n)"

        read answer

        if [ "$answer" = "y" ] || [ "$answer" = "Y" ]; then

            echo "Deleting..."

            rm $FILES

        else

            echo "Deletion cancelled"

            echo ""

            continue

        fi

    done

else

    echo "Current file mode"

   

    for file in "$@"; do

        echo "Processin file: $file"

        #file check

        if [ ! -f "$file" ]; then

            echo "Error: File '$file' does not exists"

            continue

        fi

        echo "File '$file' exists"

        #submit deletion

        echo "Do you want to delete this file (y/n)"

        read answer

        if [ "$answer" = "y" ] || [ "$answer" = "Y" ]; then

            echo "Deleting..."

            rm "$file"

        else

            echo "Deletion cancelled"

            continue

        fi

    done

fi

Заключение

В ходе выполнения лабораторной работы были успешно решены следующие задачи:

  1. Изучил методические материалы к лабораторной работе;

  2. Написал bash-скрипт для удаления файлов по заданному имени из указанной директории, а также предусмотрел флаг -p для удаления по шаблону

Контрольные вопросы

  1. Что такое Linux?

Linux - это компьютерная операционная система, разработанная на основе модели открытого исходного кода.

  1. В чём отличие переменных окружения от переменных оболочки?

Переменные окружения передаются всем системным процессам и программам и наследуются дочерними процессами. Переменные оболочки же живут пока выполняется скрипт или сессия.

  1. С помощью какой команды изменяются права доступа к файлу?

chmod