From 06a2993230304c1356c7809f272304889f92b275 Mon Sep 17 00:00:00 2001 From: 9enP Date: Thu, 20 Nov 2025 22:24:38 +0400 Subject: [PATCH 01/11] Proba --- .../Work_with_files/task1.md | 34 +++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 Homework_Prosvirnin_Denis/Work_with_files/task1.md diff --git a/Homework_Prosvirnin_Denis/Work_with_files/task1.md b/Homework_Prosvirnin_Denis/Work_with_files/task1.md new file mode 100644 index 0000000..6ce0278 --- /dev/null +++ b/Homework_Prosvirnin_Denis/Work_with_files/task1.md @@ -0,0 +1,34 @@ +### Работа в консольке + +1. **Переместиться между директориями** + + Для перемещения между папками используется команда `cd` (change directory). + + Путь может быть абсолютным (полный путь с начала файловой системы): + + Снимок экрана 2025-11-20 в 21 50 45 + + или относительным (от текущей папки): + + Снимок экрана 2025-11-20 в 21 52 47 + + Можно добавить про `cd ..` для перехода на уровень выше, `cd ~` для перехода в домашнюю директорию и `cd /` для перехода в корневую директорию. Скрин: + + Снимок экрана 2025-11-20 в 21 37 51 + +2. **Вывести список файлов в директории** + + Команда ls (list) выводит список файлов и папок в текущей директории: + + Снимок экрана 2025-11-20 в 22 13 48 + +3. **Вывести список Всех файлов в директории** + + Команда ls -a показывает все файлы, включая скрытые. В Linux скрытыми считаются файлы и папки, имена которых начинаются с точки (обычно это системные файлы и файлы конфигураций). + + Снимок экрана 2025-11-20 в 22 16 05 + +4. **Создать папку с подпапками** + + + From ca7b0420ee2bfb84628f36a9fafd2507be17c6ef Mon Sep 17 00:00:00 2001 From: 9enP Date: Fri, 21 Nov 2025 18:43:58 +0400 Subject: [PATCH 02/11] Done task1 --- .../Work_with_files/task1.md | 55 ++++++++++++++++++- 1 file changed, 54 insertions(+), 1 deletion(-) diff --git a/Homework_Prosvirnin_Denis/Work_with_files/task1.md b/Homework_Prosvirnin_Denis/Work_with_files/task1.md index 6ce0278..fcf487e 100644 --- a/Homework_Prosvirnin_Denis/Work_with_files/task1.md +++ b/Homework_Prosvirnin_Denis/Work_with_files/task1.md @@ -23,12 +23,65 @@ Снимок экрана 2025-11-20 в 22 13 48 3. **Вывести список Всех файлов в директории** - + Команда ls -a показывает все файлы, включая скрытые. В Linux скрытыми считаются файлы и папки, имена которых начинаются с точки (обычно это системные файлы и файлы конфигураций). Снимок экрана 2025-11-20 в 22 16 05 4. **Создать папку с подпапками** + Для создания папки используется команда `mkdir`, а для создания папки с подпапками нужно перейти в нужную папку и создать там папки. + + У меня была создана папка `test`, поэтому я просто перешел в нее и создал там папки + + Снимок экрана 2025-11-21 в 10 18 08 + +5. **Внутри папки создать файлик и записать в него что-нибудь** + + У меня есть файлик `test_file` в папке `test`, поэтому запишу туда. + + Для создания файлов с текстом можно использовать текстовый редактор `nano`. После запуска открывается редактор где можно сразу писать текст. Внизу экрана отображаются основные команды. + + Снимок экрана 2025-11-21 в 17 20 11 + +6. **Переместить файл из одной директории в другую** + + В папке `test` у меня лежит файл `test_file`. Я создал папку `test2` и перекину туда `test_file` + + Для перемещения я использую команду `mv`, указываю путь до файла и через пробел куда я его перекидываю + + Снимок экрана 2025-11-21 в 17 36 37 + +7. **Скопировать файл из одной директории в другую** + + Скопирую файл `test_file` из папки `test2` в папку `test`. + + Для копирования использую команду `cp`. + + Снимок экрана 2025-11-21 в 17 45 55 + +8. **Переименовать файл** + + Переименовать придется файл `nichego` и дать ему имя `pysto`. Для этого буду использовать команду `mv: mv старое_имя новое_имя`. + + Снимок экрана 2025-11-21 в 18 00 38 + +9. **Сравнить содержимое файла** + + Для сравнения содержимого файлов используется команда `diff`. Она показывает различия между файлами построчно. Сначала сравнение одинаковых файлов и результат пустой, значит файла идентичны. Затем сравнение различных файлов и результат: `2d1` - во втором файле удалена (delete) строка 2, `< line2` - эта строка есть в первом файле, но отсутствует во втором, `3a3` - в третьей строке добавлена (add) строка, `> line2` - эта строка добавлена во второй файл. + + Снимок экрана 2025-11-21 в 18 16 19 + + Ну и пользовался тут `echo`. Команда выводит текст в терминал или записывает его в файл. + +10. **Отсортировать содержимое файла по возрастанию и убыванию** + + Команда `sort` без флага сортирует текст по возрастанию в алфавитном порядке, а с флагом `-r` по убыванию. Флаг `-n` сортирует файл как чила. Чтобы отсортировать как числа и по убыванию эти флаги сливаются и получается флаг -nr (этим и воспользуюсь). + + Снимок экрана 2025-11-21 в 18 35 02 +14. **Удалить все папки и файлы** + + Чтобы удалить директорию со всем ее содержимым, есть команда `rm` с ключом `-r`. Ключ -r обеспечивает рекурсивное удаление - команда последовательно применяется ко всем файлам и подпапкам внутри указанной директории, а затем удаляет саму пустую директорию. Но я не хочу тыкать yes для подтверждения удаления каждого файла, поэтому `rm -rf имя_папки` мой выбор. Ключ -f (force) отключает запросы подтверждения и проверки прав + Снимок экрана 2025-11-21 в 18 43 05 From fb55fa70535386995b4c441fb9a5ca98d403e65a Mon Sep 17 00:00:00 2001 From: 9enP Date: Mon, 24 Nov 2025 12:17:13 +0400 Subject: [PATCH 03/11] task2 done --- .../Work_with_files/task2.md | 61 +++++++++++++++++++ 1 file changed, 61 insertions(+) create mode 100644 Homework_Prosvirnin_Denis/Work_with_files/task2.md diff --git a/Homework_Prosvirnin_Denis/Work_with_files/task2.md b/Homework_Prosvirnin_Denis/Work_with_files/task2.md new file mode 100644 index 0000000..8907c17 --- /dev/null +++ b/Homework_Prosvirnin_Denis/Work_with_files/task2.md @@ -0,0 +1,61 @@ +### Перенаправляем + +#### 1. Как работают команды >,>>? + +`>` (перезапись) - это оператор перенаправления вывода, который создаёт новый файл или полностью перезаписывает существующий. Если файл уже существует, его предыдущее содержимое безвозвратно удаляется и заменяется новым выводом команды. + +Снимок экрана 2025-11-24 в 10 32 29 + +`>>` (добавление) - этот оператор также перенаправляет вывод, но не стирает существующее содержимое файла. Вместо этого он добавляет новый вывод в конец файла, сохраняя всё, что было записано ранее. + +Снимок экрана 2025-11-24 в 10 34 41 + +#### 2. Что такое перенаправление ввода? stderr, stdout; +Перенаправление ввода-вывода - это механизм, позволяющий изменять стандартные источники и приёмники данных для программ. + +`stdout` (стандартный вывод) - это "канал", через который программа выводит обычные результаты своей работы. По умолчанию эти данные выводятся на экран терминала. + +Снимок экрана 2025-11-24 в 10 53 44 + +`stderr` (стандартный поток ошибок) - это отдельный "канал" для сообщений об ошибках и диагностической информации. Он нужен, чтобы разделить нормальные результаты работы программы и сообщения об ошибках. + +Снимок экрана 2025-11-24 в 11 01 01 + +#### 3. Вывести содержание файла не используя текстовые редакторы. + +С помощью команды `cat`. Она позволяет просматривать содержимое одного или нескольких файлов, создавать новые файлы, записывая в них текст, и объединять несколько файлов в один. + +#### 4. Создать файл с содержимым не используя текстовые редактор. +Команда `cat` (concatenate) + +Команда `cat` в Linux изначально предназначена для объединения (конкатенации) файлов и вывода их содержимого на экран. Однако её можно использовать и для создания новых файлов с содержимым, комбинируя с операторами перенаправления ввода. +#### 5. Перенаправить stdout в stderr и обратно на примере команды kinit, ping, tracert +Для демонстрации работы с сетевыми командами воспользуемся ping и traceroute. Команда ping будет проверять доступность разных хостов, а мы направим весь её вывод - и успешные результаты, и сообщения об ошибках - в один файл. Для автоматизации процесса применим цикл, который построчно прочитает файл с адресами и выполнит ping для каждого из них. + +Команда traceroute покажет путь к сетевому узлу, а мы разделим её вывод - успешные результаты запишем в один файл, а ошибки в другой. Это наглядно продемонстрирует работу с разными потоками вывода. + +В процессе используем специальные операторы перенаправления, которые позволяют объединять потоки или разделять их. + +Снимок экрана 2025-11-24 в 11 26 19 + +1 - стандартный вывод (stdout) +2 - стандартный вывод ошибок (stderr) +&1, &2 - ссылки на соответствующие потоки + +#### 6. Чем отличаются stdout и stderr + +Оба потока предназначены для вывода текста: `stdout` - это стандартный поток вывода, а `stderr` - это стандартный поток вывода ошибок. В `stdout` данные могут накапливаться перед выводом, в `stderr` же сообщения выводятся немедленно. Также в `stderr` высокий приоритет для донесения информации до пользователя, даже если основной вывод перенаправлен. + +#### 7. Что такое stdin? + +`stdin` (standard input) — это поток данных, который используется программами для получения информации извне. По умолчанию в командной строке `stdin` ассоциируется с клавиатурой, но его можно перенаправить для чтения из файла или вывода другой программы. + +#### 8. Как отправить весь вывод команды в пустоту? + +Чтобы весь вывод отправить в пустоту, можно его перенаправить в `/dev/null` + +`команда > /dev/null` + +Команда > /dev/null перенаправляет весь стандартный вывод (stdout) в специальный файл /dev/null, который отбрасывает все данные, отправленные в него. Это означает, что вывод любой команды, которая обычно отображается на экране, будет игнорироваться и удаляться. + +Снимок экрана 2025-11-24 в 12 16 11 From e3c8ae49034dd238be8ead136a383d2a615fd81d Mon Sep 17 00:00:00 2001 From: 9enP Date: Mon, 24 Nov 2025 14:10:02 +0400 Subject: [PATCH 04/11] lab2 task1 --- .../2-User manage/task1.md | 69 +++++++++++++++++++ 1 file changed, 69 insertions(+) create mode 100644 Homework_Prosvirnin_Denis/2-User manage/task1.md diff --git a/Homework_Prosvirnin_Denis/2-User manage/task1.md b/Homework_Prosvirnin_Denis/2-User manage/task1.md new file mode 100644 index 0000000..550e23e --- /dev/null +++ b/Homework_Prosvirnin_Denis/2-User manage/task1.md @@ -0,0 +1,69 @@ +# Управление пользователями + +#### 1. Добавьте пользователей user1 и user2: + 1.1) user1 - оболочка bash + 1.2) user2 - оболочка sh + 1.3) установите им пароли + +Добавляю пользователя с оболочкой bash и устанавливаю пароль: + +Снимок экрана 2025-11-24 в 12 51 20 + +Добавляю пользователя с оболочкой sh и устанавливаю пароль: + +Снимок экрана 2025-11-24 в 12 50 55 + +#### 2. Назначьте пользователю 1 группу администраторов, пользователя 2 добавьте в группу пользователя 1 + +Добавляю (`append group`) user1 в группу `wheel` (администратора) и добавляю user2 в группу user1: + +Снимок экрана 2025-11-24 в 12 59 27 + +#### 3. Что такое права доступа? Выведите права доступа на файлы в директории пользователя + +Права доступа в Linux - это система разрешений, которая определяет, какие операции могут выполнять разные пользователи с файлами и директориями. + +Права разделены на три категории: + +Права для владельца (user) - пользователь, который создал файл +Права для группы (group) - пользователи, входящие в одну группу с владельцем +Права для остальных (others) - все остальные пользователи системы + +Типы прав: + +r (read) - право чтения файла или просмотра содержимого директории +w (write) - право записи в файл или создания/удаления файлов в директории +x (execute) - право выполнения файла как программы или доступа к директории + +Снимок экрана 2025-11-24 в 13 15 46 + +#### 4. Как изменить права на файлы? Создайте файл который будет на который у всез пользователей будут все возможные права + +Чтобы изменить права доступа к файлам используется команда chmod (change mode). Каждая категория представляется числом от 0 до 7. r (read) = 4, w (write) = 2, x (execute) = 1. Командой, при помощи записи "777" (4+2+1, 4+2+1, 4+2+1) устанавливаем для всех пользователей все права. + +Снимок экрана 2025-11-24 в 13 31 45 + +#### 5. Как называется учётная запись встренного администратора в linux? + +Основная встроенная учетная запись суперпользователя - **root**. + +#### 6. Как выполнить команду от имени администратора? + +1. `sudo /команда/` +Выполнить команду от имени администратора. +2. `su -` +Переключиться на `root` и далее все команды будут происходить под суперпользователем. + +#### 7. Есть ли ограничения у суперпользователя? + +Нет, суперпользователь может делать в системе всё, что система в принципе способна делать. + +#### 8. Удалите пользователя 2 с помощью пользователя 1. + +Для удаления пользователей обычно требуются права администратора. Но поскольку user1 был добавлен в группу wheel (администраторов), он может использовать команду sudo для выполнения привилегированных операций. + +Снимок экрана 2025-11-24 в 13 56 25 + +#### 9. Как можно изменить владельца папки? измените владельца папки из пункта 4 + +Снимок экрана 2025-11-24 в 14 08 33 From bcb400ef8ff8c2dbd975d4b5f40c70908503b52d Mon Sep 17 00:00:00 2001 From: 9enP Date: Tue, 25 Nov 2025 10:41:20 +0400 Subject: [PATCH 05/11] lab2 task2 --- .../2-User manage/task2.md | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) create mode 100644 Homework_Prosvirnin_Denis/2-User manage/task2.md diff --git a/Homework_Prosvirnin_Denis/2-User manage/task2.md b/Homework_Prosvirnin_Denis/2-User manage/task2.md new file mode 100644 index 0000000..2c0f206 --- /dev/null +++ b/Homework_Prosvirnin_Denis/2-User manage/task2.md @@ -0,0 +1,19 @@ +### Запрещаем + +1. Запретите пользователю user1 из предыдщуего задания выполнять вход в систему + + Есть несколько способов заблокировать пользователя. Я воспользуюсь изменением оболчки пользователя на специальную, которая запрещает вход. + + Снимок экрана 2025-11-25 в 10 32 19 + +2. Как вы это сделали? + + Изменил оболочку пользователя с /bin/bash на /sbin/nologin, которая запрещает интерактивный вход в систему. При последующей попытке входа в консоль будет выводиться сообщение: `"this account is currently not available."` + +3. Какие ещё способы это сделать вы знаете? + + Можно заблокать учетную запись с помощью `usermod -L user1`, изменить срок действия пароля с помощью `usermod -e 1 user1` и иожно удалить пользователя из всех групп `usermod -G "" user1`. + +4. Можно ли создать пользователей с одинаковыми username? + + Нет, имена пользователей должны быть уникальными. From da547caf453576a1b9469dc48dd4416770d31e6b Mon Sep 17 00:00:00 2001 From: 9enP Date: Tue, 25 Nov 2025 13:09:18 +0400 Subject: [PATCH 06/11] lab3 task1 --- .../3-File systems/task1.md | 119 ++++++++++++++++++ 1 file changed, 119 insertions(+) create mode 100644 Homework_Prosvirnin_Denis/3-File systems/task1.md diff --git a/Homework_Prosvirnin_Denis/3-File systems/task1.md b/Homework_Prosvirnin_Denis/3-File systems/task1.md new file mode 100644 index 0000000..c69fab2 --- /dev/null +++ b/Homework_Prosvirnin_Denis/3-File systems/task1.md @@ -0,0 +1,119 @@ +### ФС + +#### 1) Какие файловые системы вы знаете? +Для Linux: ext4 (основная для дисков), XFS (для больших файлов), ZFS. + +Для Windows: NTFS, FAT32. + +NFS - для Unix-систем. + +#### 2) Как можно классифиировать файловые системы? в чём отличия?? + +**По механизму обеспечения надежности:** + +**Журналируемые.** Отличается повышенной надежностью, эта ФС гарантирует сохранность ваших данных. Все действия пользователя и системы записываются в специальный журнал, что не только позволяет отслеживать историю изменений и диагностировать неполадки, но и обеспечивает целостность данных даже в случае внезапного сбоя. + +**Не журналируемые.** Нет записи историй действий, нет гарантий сохранности информации. + +**По структуре метаданных:** + +**Табличные.** Простая и универсальная структура, где вся информация хранится в линейных таблицах. Не поддерживает сложные метаданные или разграничение прав доступа, но обеспечивает максимальную совместимость между различными операционными системами. + +**Древовидные.** Современная и высокопроизводительная организация данных, использующая сбалансированные деревья для хранения информации. Обеспечивает быстрый поиск файлов и эффективность при работе с большими директориями. + +**На основе inode (индексных дескрипторов).** Отличается структурой, где каждому файлу присваивается уникальный идентификатор. Все данные организованы в строгой иерархии, что гарантирует стабильную производительность и предсказуемое поведение даже при высоких нагрузках. + +**По назначению:** + +**Локальные** - для локального хранения данных на жёстких дисках. + +**Сетевые** - для удаленного доступа к файлам. + +**Виртуальные** - представляют данные о системе в виде файлов. + +#### 3) Какие файловые системы используются в linux? + +**Основные дисковые файловые системы:** + +**ext4 (Fourth Extended File System)** - стандартная и наиболее распространенная файловая система в Linux. Поддерживает журналирование, файлы до 16 ТБ и разделы до 1 Эксабайта. + +**XFS** - высокопроизводительная файловая система, особенно эффективная для работы с большими файлами. Широко используется в серверных окружениях. + +**Btrfs (B-Tree File System)** - современная файловая система с поддержкой снапшотов, сжатия данных и проверкой целостности "на лету". + +**ZFS** - продвинутая файловая система с функциями управления томами, поддержкой снапшотов и высокой отказоустойчивостью. + +**Специализированные файловые системы:** + +**F2FS (Flash-Friendly File System)** - оптимизирована для SSD-накопителей и флеш-памяти. + +**swap** - используется для области подкачки (виртуальной памяти). + +**Виртуальные файловые системы:** + +**procfs (/proc)** - предоставляет информацию о процессах и системе в виде файлов. + +**sysfs (/sys)** - отображает информацию об устройствах и драйверах ядра. + +**tmpfs** - файловая система в оперативной памяти для временных файлов. + +**devtmpfs (/dev)** - предоставляет интерфейс для работы с устройствами. + +**Сетевые файловые системы:** + +**NFS (Network File System)** - для доступа к файлам по сети в Unix-системах. + +**CIFS/SMB** - для совместного использования файлов с Windows-системами. + +#### 4) Как можно создать файловую систему на диске? + +`fdisk` / `gdisk` - утилиты для создания и управления разделами диска + +`mkfs` - основная команда для создания файловых систем + +`mke2fs` - специализированная утилита для создания ext2/ext3/ext4 + +`fsck` - проверка и восстановление файловых систем + +Снимок экрана 2025-11-25 в 12 33 57 + +#### 5) Как можно подключить диск в систему, что такое монтирование? + +Монтирование - это процесс подключения файловой системы (диска, раздела, сетового ресурса) к определённой точке в дереве каталогов Linux, чтобы получить доступ к данным. + +Снимок экрана 2025-11-25 в 12 44 19 + +#### 6) файловая система procfs, cifs, tpmfs,sysfs. В чём особенности каждой из них? Вывести каталоги к которым примонтированы эти файловые системыю + +`procfs` (/proc) - виртуальная файловая система, предоставляющая информацию о процессах и системе в реальном времени. + +`tmpfs` - файловая система в оперативной памяти для временных файлов. + +`sysfs` (/sys) - предоставляет информацию об устройствах, драйверах и компонентах ядра. + +`cifs` - сетевая файловая система для доступа к общим ресурсам Windows. + +Снимок экрана 2025-11-25 в 12 54 53 + +(Команда `mount | grep cifs` ничего не вернула т.к. сетевые папки не смонтированы.) + +#### 7) Как можно получить информацию о системе используя лишь команду cat? вывести ифонмацию о процессоре и состоянии памяти системы + +В Linux много системной информации доступна через виртуальные файлы в директориях `/proc` и `/sys`. Команда `cat` позволяет читать эти файлы и получать информацию о системе. + +`cat` /proc/cpuinfo - детальная информация о процессоре - модель, количество ядер, частота, кэш, поддерживаемые инструкции. + +`cat` /proc/loadavg - средняя загрузка системы за 1, 5 и 15 минут, количество запущенных процессов. + +`cat` /proc/meminfo - Детальная информация об использовании оперативной памяти и swap - общий объем, свободно, кэшировано, буферы. + +`cat` /proc/version - версия ядра Linux, компилятора и информация о дистрибутиве. + +`cat` /proc/uptime - время работы системы в секундах (первое число) и суммарное время простоя процессоров (второе число). + +Снимок экрана 2025-11-25 в 13 01 54 + +Снимок экрана 2025-11-25 в 13 02 48 + +Снимок экрана 2025-11-25 в 13 03 18 + From 928bd5500513b97cd447491e06a531678ce8d6a8 Mon Sep 17 00:00:00 2001 From: 9enP Date: Tue, 25 Nov 2025 20:45:12 +0400 Subject: [PATCH 07/11] lab3 task2 --- .../3-File systems/task2.md | 40 +++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100644 Homework_Prosvirnin_Denis/3-File systems/task2.md diff --git a/Homework_Prosvirnin_Denis/3-File systems/task2.md b/Homework_Prosvirnin_Denis/3-File systems/task2.md new file mode 100644 index 0000000..b104910 --- /dev/null +++ b/Homework_Prosvirnin_Denis/3-File systems/task2.md @@ -0,0 +1,40 @@ +### Струтура каталогов + +#### 1) Какая структура каталогов в linux? выведите список файлов в корне системы +В Linux используется стандартная иерархия файловой системы (FHS - Filesystem Hierarchy Standard). Корневая директория `/` содержит основные системные каталоги. + +Снимок экрана 2025-11-25 в 20 34 52 + +#### 2) Где хранятся папки пользователей в системе? + +Папки пользователей хранятся в каталоге `/home/`. + +Снимок экрана 2025-11-25 в 20 37 34 + +#### 3) Где домашняя папка суперпользователя? + +Домашняя папка суперпользователя находится в `/root/`. + +Снимок экрана 2025-11-25 в 20 39 16 + +#### 4) Где хранятся основые конфигурационные файлы в системе? + +Основные конфигурационные файлы системы хранятся в каталоге `/etc/`. + +Снимок экрана 2025-11-25 в 20 41 21 + +#### 5) ЧТо за папки /bin,/sbin,usr/sbin,/usr/sbin + +**/bin** (binary) - основные исполняемые файлы, необходимые для работы системы в однопользовательском режиме. Содержит критически важные команды, такие как `ls`, `cp`, `mv`, `cat`, `bash`. + +**/sbin** (system binary) - системные исполняемые файлы, предназначенные для административных задач. Содержит команды для управления системой: `fdisk`, `fsck`, `ifconfig`, `reboot`. Требуют прав суперпользователя. + +**/usr/bin** (user binary) - основные исполняемые файлы для обычных пользователей. Содержит большинство пользовательских команд и приложений: `gcc`, `python`, `vim`, `ssh`. + +**/usr/sbin** (user system binary) - системные исполняемые файлы для административных задач, не являющиеся критически важными для загрузки системы. Содержит дополнительные системные утилиты. + +**Основные различия:** +- `/bin` и `/sbin` - необходимы для минимальной работы системы +- `/usr/bin` и `/usr/sbin` - содержат дополнительные программы +- Команды в `/sbin` и `/usr/sbin` обычно требуют прав root +- Команды в `/bin` и `/usr/bin` доступны всем пользователям From e4cf9a09bbc78753e2245096c3cd0939a39acffd Mon Sep 17 00:00:00 2001 From: 9enP Date: Tue, 25 Nov 2025 22:19:12 +0400 Subject: [PATCH 08/11] lab3 task3 --- .../3-File systems/task3.md | 71 +++++++++++++++++++ 1 file changed, 71 insertions(+) create mode 100644 Homework_Prosvirnin_Denis/3-File systems/task3.md diff --git a/Homework_Prosvirnin_Denis/3-File systems/task3.md b/Homework_Prosvirnin_Denis/3-File systems/task3.md new file mode 100644 index 0000000..f7a3171 --- /dev/null +++ b/Homework_Prosvirnin_Denis/3-File systems/task3.md @@ -0,0 +1,71 @@ +### Продолжаем + +#### 1. Выведите содержимое fstab. Что хранится в fstab? + +Файл `/etc/fstab` содержит информацию о файловых системах, которые автоматически монтируются при загрузке системы. + +Снимок экрана 2025-11-25 в 20 49 30 + +#### 2. Добавьте в виртуальную машину ещё один диск + +пу пу пу +В UTM нажал изменить, диск - новый и добавил + +![Изображение](https://github.com/user-attachments/assets/a48e7496-edb8-43aa-af47-16134c1428f9) + +#### 3. Узнайте как ситема видит ваш диск - выведите информацию о блочных устройствах + +Чтоб вывести информацию о дисках использую команду `lsblk` + +Снимок экрана 2025-11-25 в 21 09 51 + +#### 4. С помощью полученной информации создайте на диске таблицу разделов и фаловую систему ext4 + +Создаю таблицу разделов с помощью `fdisk` и настраиваю. + +Снимок экрана 2025-11-25 в 21 15 18 + +Cоздать файловую систему c использованием `mkfs` ext4 — тип файловой системы, /dev/sdb1— раздел на диске, где будет создана файловая система. + +Снимок экрана 2025-11-25 в 21 17 34 + +#### 5. Примонитруте диск в каталог /mnt + +Монтирую с помощью `mount` и проверяю куда смонтирован диск. + +Снимок экрана 2025-11-25 в 21 25 43 + +#### 6. Зайдите в каталог и создайте там файлы + +После монтирования диск становится доступен как обычная директория. Все созданные файлы и папки физически хранятся на подключенном диске. Захожу в файловую систему и создаю файлы. + +Снимок экрана 2025-11-25 в 21 30 30 + +#### 7. Отмонтируйте диск и проверье остались ли файлы +Перешел в корневую директорию, отмонтировал, проверил, что отмонтировалось. `/mnt/new_disk` отсутствует, значит, он успешно отмонтирован. Затем проверил содержимое директории, там пусто. Обраьно смонтировал и проверил содержимое файла, все сохранилось. + +Снимок экрана 2025-11-25 в 21 39 48 + +#### 8. Сделайте так чтобы диск автоматически подключался при загрузке систем ( добавьте информацию о нём с fstab) + +Что хранится в fstab? + +Файл `/etc/fstab` содержит информацию о файловых системах, которые должны автоматически монтироваться при загрузке системы. + +Сначала узнаем UUID диска `/dev/vdb1` и добавляем запись в `fstab`. + +Снимок экрана 2025-11-25 в 21 53 51 + +(есть несовпадение, но все исправлено) + +#### 9. Проверьте корретность записанных в fstab данных перед перезагрузкой + +Монтирует все файловые системы, указанные в `/etc/fstab`. Для проверки синтаксиса и корректности записей в `fstab` без перезагрузки системы. `findmnt -T /mnt/new_disk` для проверки, что диск действительно смонтирован с правильными параметрами. + +Снимок экрана 2025-11-25 в 22 10 18 + +#### 10. Перезагрущите систему и убедитесь что диск был подключён к системе. + +все ок + +Снимок экрана 2025-11-25 в 22 16 16 From 6531617f39cb7857142184508a76efa6249b5502 Mon Sep 17 00:00:00 2001 From: 9enP Date: Thu, 27 Nov 2025 15:50:08 +0400 Subject: [PATCH 09/11] lab3 task4 --- .../3-File systems/task4.md | 77 +++++++++++++++++++ 1 file changed, 77 insertions(+) create mode 100644 Homework_Prosvirnin_Denis/3-File systems/task4.md diff --git a/Homework_Prosvirnin_Denis/3-File systems/task4.md b/Homework_Prosvirnin_Denis/3-File systems/task4.md new file mode 100644 index 0000000..fda39d7 --- /dev/null +++ b/Homework_Prosvirnin_Denis/3-File systems/task4.md @@ -0,0 +1,77 @@ +### Продолжаем + +#### 1. Raid массивы, что такое икакие бывают + +RAID (Redundant Array of Independent Disks) - это технология объединения нескольких физических дисков в единый логический элемент. + +RAID 0 (чередование) повышает производительность за счёт распределения данных по нескольким дискам. + +RAID 1 (зеркалирование) обеспечивает надёжность путём полного дублирования данных. + +RAID 5 сочетает производительность и отказоустойчивость через распределение данных и контрольных сумм. + +RAID 10 объединяет зеркалирование и чередование для максимальной производительности и надёжности. + +#### 2. Добавьте в виртуальную машину 2 диска отформатируйте их в ext4 + +Добавил 2 новых диска в виртуальную машину (vdc и vdd по 2GB каждый). я использую UTM, поэтомы прост тыкнул на виртуалку, изменить, добавить диск. + +Создал разделы на каждом диске с помощью `fdisk` + +Отформатировал разделы в файловую систему `ext4` с помощью `mkfs.ext4` + +Снимок экрана 2025-11-27 в 15 17 38 + +Пробую такой формат. сказали, что вроде так и надо + +#### 3. Создайте из них raid 0 массив + +Команда создает RAID 0 массив из двух дисков /dev/vdc1 и /dev/vdd1. + +`--create /dev/md0` - создает новый RAID массив с именем /dev/md0 + +`--level=0` - указывает уровень RAID 0 + +`--raid-devices=2` - количество дисков в массиве + +`/dev/vdc1 /dev/vdd1` - разделы для объединения в RAID + +Снимок экрана 2025-11-27 в 15 27 37 + +Чтение и запись происходят параллельно на два диска одновременно + +#### 4. Проверье всё ли работает + +Проверил: + +Снимок экрана 2025-11-27 в 15 31 59 + +#### 5. Удалите raid0 и создайте raid1 + +Первая команда `mdadm --stop /dev/md0` - останавливает и разбирает RAID 0 массив. + +Вторая команда cоздает новый RAID 1 массив с именем `/dev/md1`, `--level=1` - указывает уровень RAID 1, bспользует те же диски, но теперь в режиме полного дублирования данных + +Снимок экрана 2025-11-27 в 15 35 52 + +#### 6. В чём между ними разница? + +RAID 0 делит информацию на части и раскидывает по двум дискам - так работа идет быстрее, и мы получаем всё место обоих дисков. +RAID 1 наоборот - записывает одинаковые данные на оба диска, создавая копию. +Если один диск сломается, все данные останутся на втором, но полезного места будет в два раза меньше. +Проще говоря: RAID 0 - для скорости, RAID 1 - для надежности. + +#### 7. Есть ли файловые системы которые поддерживают raid массивы без стороненго ПО + +Да, существуют файловые системы со встроенной поддержкой RAID: + +Btrfs (B-tree File System) - Встроенные уровни RAID: 0, 1, 10, 5, 6 + +ZFS (Zettabyte File System) - Встроенные уровни: RAID-Z (аналог RAID 5), RAID-Z2, RAID-Z3 + +LVM (Logical Volume Manager) + обычные ФС - Можно создать аналог RAID через LVM-зеркалирование. Затем поверх создать ext4/xfs файловую систему + +#### 8. Можно ли создать raid массив во время установки системы? + +Большинство дистрибутивов (Ubuntu, Debian, RHEL, CentOS) и в том числе ALT Linux позволяют создать RAID-массив прямо в установщике: при ручной разметке дисков есть пункт «Configure software RAID», где выбирают уровень (0, 1 и др.) и диски. + From 8c0737d9b11528dd9b3d86b42cf3721a264115a5 Mon Sep 17 00:00:00 2001 From: 9enP Date: Thu, 27 Nov 2025 16:46:22 +0400 Subject: [PATCH 10/11] lab4 task1 --- Homework_Prosvirnin_Denis/4-Bash/task1.md | 62 +++++++++++++++++++++++ 1 file changed, 62 insertions(+) create mode 100644 Homework_Prosvirnin_Denis/4-Bash/task1.md diff --git a/Homework_Prosvirnin_Denis/4-Bash/task1.md b/Homework_Prosvirnin_Denis/4-Bash/task1.md new file mode 100644 index 0000000..60d7e32 --- /dev/null +++ b/Homework_Prosvirnin_Denis/4-Bash/task1.md @@ -0,0 +1,62 @@ +## Скриптуем по полной + +### 1. Что такое шебанг? + + Шебанг (shebang) - это первая строка в скрипте, которая начинается с #! и указывает системе, какая программа должна выполнять этот скрипт. + + Например: `#!/bin/bash` - выполнять скрипт с помощью Bash + +### 2. Обязательно ли исполняемый файл дожен иметь соотвествующее расширение? + + Нет, не обязательно. В Linux расширение файла (.sh, .py и т.д.) не определяет его исполняемость. + Файл становится исполняемым когда ему устанавливают права на выполнение командой chmod +x filename. + Система смотрит на шебанг в первой строке, чтобы понять как выполнять скрипт. + +### 3. Напишите скрипт который выполнит автоматически действия из блока работы с файлами. ( не забудьте включить set -euo pipefail для того что бы ваш скрипт было удобнее отлаживать. Опишите что включают эти флаги) + +Описание флагов: `set -e` - остановить выполнение при любой ошибке, `set -u` - считать ошибкой использование необъявленных переменных , `set -o pipefail` - учитывать ошибки в пайпах (командах соединенных | ) + +Я сделал: +Снимок экрана 2025-11-27 в 16 33 13 +и вставил скрипт ниже. +``` +#!/bin/bash + +set -euo pipefail + +echo "Let's go" + +echo "Создаем тестовые файлы" +echo "Это содержимое файла 1" > file1.txt +echo "Это содержимое файла 2" > file2.txt +echo "Это содержимое файла 3" > file3.txt + +echo "Создаем директорию backup" +mkdir -p backup + +echo "Копируем файлы в backup" +cp file1.txt file2.txt file3.txt backup/ + +echo "Переименовываем файлы в backup" +cd backup +mv file1.txt backup_file1.txt +mv file2.txt backup_file2.txt +mv file3.txt backup_file3.txt + +echo "Проверяем созданные файлы:" +ls -la + +echo "Проверяем содержимое файлов:" +cat backup_file1.txt +cat backup_file2.txt +cat backup_file3.txt + +echo "Завершена успешно!" + +``` + +`chmod +x script.sh` - делает файл `script.sh` исполняемым. `chmod` - команда для изменения прав доступа к файлам, `+x` - добавляет право на выполнение. + +`./script.sh` - запускает скрипт. `./` - означает, что файл нужно искать в этой директории + +Снимок экрана 2025-11-27 в 16 34 54 From 62c386d59233a960a04b8b8f61ec0faca8ff6ba7 Mon Sep 17 00:00:00 2001 From: 9enP Date: Fri, 28 Nov 2025 11:27:20 +0400 Subject: [PATCH 11/11] Create task1.md --- Homework_Prosvirnin_Denis/5-Systemd/task1.md | 45 ++++++++++++++++++++ 1 file changed, 45 insertions(+) create mode 100644 Homework_Prosvirnin_Denis/5-Systemd/task1.md diff --git a/Homework_Prosvirnin_Denis/5-Systemd/task1.md b/Homework_Prosvirnin_Denis/5-Systemd/task1.md new file mode 100644 index 0000000..35dec84 --- /dev/null +++ b/Homework_Prosvirnin_Denis/5-Systemd/task1.md @@ -0,0 +1,45 @@ +## Юниты + +1. Что такое systemd юнит? + + Systemd юнит - это конфигурационный файл, который описывает как `systemd` должен управлять службой, сервисом или другим системным ресурсом. + Основные типы юнитов: service, socket, timer, mount, target + +2. Проверье статус любого systemd юнита, какую информацию выводит эта кманда? + + `systemctl status sshd` - показывает детальную информацию о состоянии сервиса SSH. `sshd` - это стандартный сервис, который обычно есть в системе и с ним ниче не будет. + + Какую информацию выводит команда: загружен ли юнит, путь к файлу, включен ли в автозагрузку, текущее состояние (active/running, inactive/dead), + идентификатор основного процесса, количество потоков/процессов, потребление памяти, информация о контрольной группе, последние записи журнала. + + Снимок экрана 2025-11-28 в 11 01 20 + +3. ПОпробуйте оставновить сервис. + + `systemctl stop sshd` - Останавливает работу SSH сервера. После остановки сервиса, при выводе информации об этом сервисе в строке Active будет inactive (dead). + + Снимок экрана 2025-11-28 в 11 05 17 + +4. Перезапустите его. + + Команда `systemctl restart` - полностью останавливает и заново запускает сервис(ssh). + + Снимок экрана 2025-11-28 в 11 06 43 + +5. УДалите из автозагрузки + + `systemctl disable sshd` - убирает сервис из автоматического запуска при загрузке системы. Сервис остаётся установленным, но не запускается автоматически. + + Снимок экрана 2025-11-28 в 11 08 46 + +6. Верните обратно + + Команда `systemctl enable` - включает автозагрузку. После этого при выводе информации об этом сервисе в строке `Loaded` будет `enabled`. + + Снимок экрана 2025-11-28 в 11 09 21 +7. Что такое таймеры? + Таймеры (timers) в systemd — это специальные юниты, которые предоставляют функциональность планировщика задач, + аналогичную традиционному `cron`, но с более широкими возможностями и лучшей интеграцией в современную экосистему systemd. + Таймеры реального времени запускаются в зависимости от событий календаря (как cronjobs). Для определения таких таймеров используется опция OnCalendar=. Монотонные таймеры активируются после определенного промежутка времени по отношению к той или иной отправной точке. Они не сработают, если компьютер находится в режиме ожидания или выключен. + Есть несколько различных монотонных таймеров, но все они имеют вид: OnTypeSec=. Обычно монотонные таймеры включают в себя OnBootSec и OnUnitActiveSec. +