Файл: Отчет лабораторная работа 1 по дисциплине Вычислительные машины, системы и сети.docx

ВУЗ: Не указан

Категория: Отчеты по практике

Дисциплина: Не указана

Добавлен: 28.03.2024

Просмотров: 10

Скачиваний: 0

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.


Министерство науки и высшего образования Российской Федерации

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

учреждение высшего образования

ТОМСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ СИСТЕМ

УПРАВЛЕНИЯ И РАДИОЭЛЕКТРОНИКИ (ТУСУР)

Кафедра компьютерных систем в управлении и проектировании

(КСУП)
ОТЧЕТ
Лабораторная работа №1

по дисциплине

«Вычислительные машины, системы и сети»





Выполнил студент:

группы з-511П10-6

направление подготовки 27.03.04

Солодюк В.Л.

(ФИО)



Проверил:

Кандидат технических наук, Доцент кафедра КСУП ТУСУР

(ученая степень, звание)

Коцубинский В.П.

(ФИО)


Томск 2023

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

Целью выполнения настоящей лабораторной работы является получение начальных навыков работы в среде UNIX:

1) знакомство с текстовым редактором ed;

2) применение команд shell для работы с файлами;

3) использование командах shell метасимволов и перенаправление ввода-вывода;

4) запуск конвейеров программ;

5) применение в командах shell переменных;

6) построение командных файлов;

7) изменение прав доступа к файлам.
Задание

  1. Cоздать два трехуровневых поддерева каталогов и поместить в один из каталогов четыре текстовых файла, два из которых имеют в своем имени одинаковую символьную последовательность, называемую далее «словом».

Решение

Данная работа выполняется мной на локальной системе Ubuntu 22.10
(64-бит), установленной посредством ПО «Oracle VM VirtualBox Менеджер».

Cоздам два трехуровневых поддерева каталогов:
vadim@Ubuntu:/OS$ mkdir vadim

vadim@Ubuntu:/OS$ mkdir polina

vadim@Ubuntu:/OS$ cd vadim

vadim@Ubuntu:/OS/vadim$ mkdir v_1

vadim@Ubuntu:/OS/vadim$ cd v_1

vadim@Ubuntu:/OS/vadim/v_1$ cd v_2

vadim@Ubuntu:/OS/vadim/v_1$ mkdir v_2

vadim@Ubuntu:/OS/vadim/v_1$ cd v_2

vadim@Ubuntu:/OS/vadim/v_1/v_2$

vadim@Ubuntu:/OS/vadim/v_1/v_2$ cd /OS/polina

vadim@Ubuntu:/OS/polina$

vadim@Ubuntu:/OS/polina$ mkdir p_1

vadim@Ubuntu:/OS/polina$ cd p_1

vadim@Ubuntu:/OS/polina/p_1$ mkdir p_2

vadim@Ubuntu:/OS/polina/p_1$ cd p_2

vadim@Ubuntu:/OS/polina/p_1/p_2$
В одном из каталогов создам четыре текстовых файла, два из которых имеют в своем имени одинаковую символьную последовательность:
vadim@Ubuntu:/OS/polina/p_1/p_2$ ed vadim.txt

vadim.txt: Нет такого файла или каталога

a

Терминал позволяет пользователю выполнять запуск программ.

.

w

111

q

vadim@Ubuntu:/OS/polina/p_1/p_2$ ed polina.txt

polina.txt: Нет такого файла или каталога

a

Такое множество
потомков процесса shell называется сеансом.

.

w

108

q

vadim@Ubuntu:/OS/polina/p_1/p_2$ ed polina_solodyuk.txt

polina_solodyuk.txt: Нет такого файла или каталога

a

Ввод login выполняется по этому же пути, но в обратную сторону.

.

w

110

q

vadim@Ubuntu:/OS/polina/p_1/p_2$ ed sveta.txt

sveta.txt: Нет такого файла или каталога

a

Света Мусаева.

.

w

27

q

vadim@Ubuntu:/OS/polina/p_1/p_2$ ls

polina_solodyuk.txt polina.txt sveta.txt vadim.txt
Задание выполнено.


  1. С помощью ed отредактировать текстовый файл.

Решение.

vadim@Ubuntu:/OS/polina/p_1/p_2$ ed sveta.txt

27

c

Вадим Солодюк

.

w

26

q

vadim@Ubuntu:/OS/polina/p_1/p_2$
Задание выполнено.


  1. Вывести файл на экран.

Решение.

vadim@Ubuntu:/OS/polina/p_1/p_2$ cat sveta.txt

Вадим Солодюк

vadim@Ubuntu:/OS/polina/p_1/p_2$
Задание выполнено.


  1. Выполнить добавление текста в начало, в середину и в конец файла.

Решение.

Выполню добавление текста

а) в начало файла:
vadim@Ubuntu:/OS/polina/p_1/p_2$ ed sveta.txt

26

i

Студент:

.

w

42

q

vadim@Ubuntu:/OS/polina/p_1/p_2$

б) в середину:
vadim@Ubuntu:/OS/polina/p_1/p_2$ ed sveta.txt

42

1p

Студент:

a

Имя Фамилия

.

w

65

Q
в) в конец файла:
vadim@Ubuntu:/OS/polina/p_1/p_2$ ed sveta.txt

65

1,$

Вадим Солодюк

a

дата рождения: 16.10.1985

.

w

103

Q
Задание выполнено.


  1. Вывести файл на экран.

Решение.

vadim@Ubuntu:/OS/polina/p_1/p_2$ cat sveta.txt

Студент:

Имя Фамилия

Вадим Солодюк

дата рождения: 16.10.1985
Задание выполнено.


  1. Произвести переименование файла.

Решение.

vadim@Ubuntu:/OS/polina/p_1/p_2$ mv sveta.txt

>sveta_musaeva.txt

vadim@Ubuntu:/OS/polina/p_1/p_2$ ls

polina_solodyuk.txt polina.txt sveta_musaeva.txt
>vadim.txt
Задание выполнено.


  1. Выполнить копирование файла (исходный файл и файл-копия должны располагаться в разных каталогах).

Решение.

vadim@Ubuntu:/OS/polina/p_1/p_2$ cp vadim.txt /OS/vadim

vadim@Ubuntu:/OS/polina/p_1/p_2$ cd /OS/vadimf

vadim@Ubuntu:/OS/vadim$ ls

v_1 vadim.txt
Задание выполнено.


  1. Поместить в любой другой каталог скрипт, имеющий два входных параметра: имя каталога и набор символов. Скрипт выполняет действия:

- вывод на экран перечня файлов, «дочерних» к заданному каталогу, которые имеют в своем имени заданный набор символов;

- уничтожение всех остальных файлов заданного каталога;

- любые другие действия (по вашему желанию).

Решение.

Создам скрипт .LR-1_8, который выполняет действия:

- вывод на экран перечня файлов, «дочерних» к заданному каталогу, которые имеют в своем имени заданный набор символов;

- уничтожение всех остальных файлов заданного каталога;

- переход в заданный каталог.

vadim@Ubuntu:/scripts$ cat >.LR-1_8

cd $1 && find *$2* && rm -r `find \! -name *$2*`
> 2>/dev/null

vadim@Ubuntu:/scripts$ ls -a

. .. .LR-1_8
Добавлю в значение переменной $PATH имя каталога scripts:
vadim@Ubuntu:/scripts$ PATH=${PATH}":`pwd`"

vadim@Ubuntu:/scripts$ echo $PATH

/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/>bin:/usr/games:/usr/local/games:/snap/bin:/snap/bin:/hom>e/vadim/scripts
Задание выполнено.


  1. Cоздать свой инициализационный скрипт, выполняющий действия:

- здоровается;

- «переделывает» приглашения shell;

- запускает вложенный скрипт, созданный в (8), задав ему в качестве параметров каталог и «слово» из (1);

- любые другие действия (по вашему желанию).

Решение.

Cоздам свой скрипт .LR-1_9, выполняющий действия:

- здоровается;

- «переделывает» приглашения shell;

- запускает вложенный скрипт, созданный в (8), задав ему в качестве параметров каталог /OS/polina/p_1/p_2 и «слово» polina;

- выводит на экран сообщение о том, что вложенный скрипт, созданный в (8) выполнен;

- присваивает переменной DEFAULT_PS1 значение переменной $PS1.
vadim@Ubuntu:/scripts$ cat >.LR-1_9

echo "Добро пожаловать, "$USER"!

"

DEFAULT_PS1=$PS1 ; PS1="$USER :\w\$ "

. /scripts/.LR-1_8 /OS/polina/p_1/p_2 polina ; echo
>"Скрипт .LR-1_8 выполнен."
Для запуска скрипта .LR-1_9 при открытии ИК shell вношу изменения в файл .bashrc, а именно добавляю в конец файла:


if [ -f /scripts/.LR-1_9 ]; then

. /scripts/.LR-1_9

fi .
Задание выполнено.


  1. Выйти из UNIX, а затем войти вновь с целью демонстрации результатов выполнения инициализационного скрипта.

Решение.

Выхожу их ИК:



Открываю ИК:



Добро пожаловать, vadim!
polina_solodyuk.txt

polina.txt

Скрипт .LR-1_8 выполнен.

vadim :/OS/polina/p_1/p_2$

Проверяю содержимое каталога /OS/polina/p_1/p_2 :
vadim :/OS/polina/p_1/p_2$ ls

polina_solodyuk.txt polina.txt
Действительно вместо 4-х файлов, осталось 2 в имени которых есть «слово» polina.
Задание выполнено.