### **Летфуллин Р.И.** --- # Модуль #1 ## 1. Определение и настройка аппаратной части ### Задание для самостоятельной работы: Установить Ubuntu Server на VM VirtualBox. ![](https://hackmd.io/_uploads/rJG8e0EPh.jpg) ![](https://hackmd.io/_uploads/S135xR4D3.jpg) 1. Просмотреть информацию о процессоре и модулях оперативной памяти. <span style="background-color: beige;">Для просмотра информации о процессоре, была использова следующая команда: **lscpu**</span> ![](https://hackmd.io/_uploads/HypiN0EP3.jpg) <span style="background-color: beige;">Для просмотра информации о модулях оперативной памяти, была использова следующая команда: **sudo dmidecode -t memory**</span> ![](https://hackmd.io/_uploads/SJssDAVvh.jpg) <span style="background-color: beige;">Также можно воспользоваться командой **free -h** для просмотра общей информации об использовании оперативной памяти в системе:</span> ![](https://hackmd.io/_uploads/SyZ-_CVvh.jpg) 2. Определить модель жесткого диска. <span style="background-color: beige;">Для определения модели жесткого диска, была использова следующая команда: **sudo lshw -class disk**</span> ![](https://hackmd.io/_uploads/rkfjdCNv2.jpg) 3. Вывести сведения обо всех платах расширения на шине PCIEx. <span style="background-color: beige;">Для вывода сведений обо всех платах расширения, подключенных к шине PCI Express , была использова следующая команда: **lspci**</span> ![](https://hackmd.io/_uploads/rJOmKC4D2.jpg) 4. Отключить звуковую карту. Я использовал два метода: *Способ 1* <span style="background-color: beige;">Для начала нужно узнать имя звуковой карты. Используем для этого команду: **lsmob | grep snd**</span> ![](https://hackmd.io/_uploads/HkkBjAEwh.jpg) <span style="background-color: beige;">Вводим команду: **sudo nano /etc/modprobe.d/blacklist.conf** для открытия файла **blacklist.conf** в текстовом редакторе **nano** и заносим имя карты в blacklist, сохраняем, выходим</span> ![](https://hackmd.io/_uploads/ByEdnCVPn.jpg) <span style="background-color: beige;">Перезапускаем систему командой: **reboot**</span> ![](https://hackmd.io/_uploads/S1bkRRNDn.jpg) *Способ 2* <span style="background-color: beige;">Используем утилиту **alsa-utils**</span> <span style="background-color: beige;">Устанавливаем командой: **sudo apt-get install alsa-utils**</span> <span style="background-color: beige;">Запускаем командой: **alsamixer**</span> ![](https://hackmd.io/_uploads/SkxUgyrPn.jpg) <span style="background-color: beige;">Нажимая **"М"** отключаем звуковую карту</span> ![](https://hackmd.io/_uploads/B15Il1HDn.jpg) <span style="background-color: beige;">Перезапускаем систему командой: **reboot**</span> <span style="background-color: #7fc7ff;">Чтобы проверить, включена или выключина ли звуковая карта, можно использовать следующую команду: **aplay -l**</span> <span style="background-color: #7fc7ff;">до отключения</span> ![](https://hackmd.io/_uploads/Hyzsz1rDn.jpg) <span style="background-color: #7fc7ff;">после отключения</span> ![](https://hackmd.io/_uploads/rJAsfyBw2.jpg) 5. Выключить контроллер usb. <span style="background-color: beige;">Используем следующие команды: **lsusb** , далее **echo "usb2" > /sys/bus/usb/drivers/usb/unbind**</span> ![](https://hackmd.io/_uploads/Hkk0ByHv3.jpg) <span style="background-color: beige;">Для включения **echo "usb2" > /sys/bus/usb/drivers/usb/bind**</span> ## 2 Загрузка системы ### Задание для самостоятельной работы: 1. Выяснить какой загрузчик ОС используется в вашей системе. <span style="background-color: beige;">Для определения, какая загрузчик ОС используется, введем следующую команду: **ls -l /boot**</span> ![](https://hackmd.io/_uploads/rJXuJgBD2.jpg) <span style="background-color: beige;">Из полученного результата, можно сделать вывод, что на нашей машине используется ОС **GRUB**</span> 2. Просмотреть журнал событий ядра. <span style="background-color: beige;">Для этого ввнодим команду: **dmesg**</span> ![](https://hackmd.io/_uploads/H1ZpbgBv3.jpg) <span style="background-color: beige;">тобы просмотреть записи журнала постранично, можно использовать команду: **dmesg | less**</span> ![](https://hackmd.io/_uploads/B1THGeHPn.jpg) ![](https://hackmd.io/_uploads/Hkw8MgSwn.jpg) 3. Изменить носитель по умолчанию, используемый для загрузки ОС. <span style="background-color: beige;">Вводим следующую команду для редактирования файла конфигурации загрузчика **GRUB**:**sudo nano /etc/default/grub**</span> ![](https://hackmd.io/_uploads/HJf7_cSD2.jpg) <span style="background-color: beige;">Находим строку **GRUB_DEFAULT=0** в открывшемся файле. Значение **0** означает, что будет загружаться первый носитель из списка.Меняем номер **0**, на - **1**, - **2**, и так далее, на номер носителя, который мы хотим установить по умолчанию.</span> <span style="background-color: beige;">Далее, сохраняем изменения и выходим. Теперь нужно перезапустить систему командой **reboot**</span> 4. Попробовать загрузить ОС в режиме, отличающемся от режима по умолчанию. <span style="background-color: beige;">Вводим следующую команду **sudo nano /etc/default/grub**</span> <span style="background-color: beige;">Ищем строку **GRUB_CMDLINE_LINUX_DEFAULT** и добавляем нужный параметр загрузки </span> <span style="background-color: beige;">Сохраняем изменения и закрываем файл Обновляем конфигурацию **grub:sudo update-grub**</span> ![](https://hackmd.io/_uploads/ByMM59Hw2.jpg) <span style="background-color: beige;">Вот несколько примеров параметров загрузки:</span> <span style="background-color: beige;">**single** - загрузка в однопользовательском режиме. **recovery** - загрузка в режиме восстановления. **init=/bin/bash** - загрузка в режиме командной строки.</span> 5. Узнать какой из стилей инициализации используется в вашей ОС. <span style="background-color: beige;">Вводим следующую команду в терминал **ps -p 1 -o comm=**</span> ![](https://hackmd.io/_uploads/BJ38jcrwn.jpg) <span style="background-color: beige;">Выводится **systemd**, значит, наша система использует **init**-систему **systemd**</span> ## 3 Инициализация системы ### Задание для самостоятельной работы: 1. Изменить режим запуска по умолчанию ОС. <span style="background-color: beige;">Для изменения режима запуска по умолчанию ОС в, можно использовать утилиту **systemctl**. Введим следующую команду в терминале: **sudo systemctl set-default multi-user.target**</span> <span style="background-color: beige;">После этого наша ОС будет загружаться в режиме **multi-user.target**</span> <span style="background-color: beige;">Следует проверить, сработала ли команда **sudo systemctl set-default multi-user.target**, выполним следующую команду: **sudo systemctl get-default**</span> <span style="background-color: beige;">Если вывод команды равен **multi-user.target**, то команда отработала корректно.</span> ![](https://hackmd.io/_uploads/HyK9GjHDn.jpg) 2. Переключиться между несколькими режимами работы. <span style="background-color: beige;">Для переключения между однопользовательским режимом и многопользовательским режимом без графического интерфейса, можно воспользоваться командами: </span> <span style="background-color: beige;">**systemctl set-default -f rescue.target** - Однопользовательский</span> <span style="background-color: beige;">**systemctl set-default -f multi-user.target** - Многопользовательский</span> ![](https://hackmd.io/_uploads/SJLQmTSD2.jpg) 3. Убрать из автозапуска по умолчанию службу сети. <span style="background-color: beige;">Выполняем команду **sudo systemctl list-unit-files**, чтобы получить список всех доступных юнитов и их состояний. Далее находим службу сети, которую мы хотим отключить.</span> ![](https://hackmd.io/_uploads/H1weWpSv2.jpg) <span style="background-color: beige;">Отключаем: **sudo systemctl disable systemd-networkd**</span> ![](https://hackmd.io/_uploads/rk7-W6HP3.jpg) 4. Проверить статус службы аудио. <span style="background-color: beige;">Для проверки статуса службы аудио, используем команду: **systemctl status sound.target**</span> ![](https://hackmd.io/_uploads/r1h1xpBwh.jpg) 5. Перезагрузить ПК через работу с уровнями выполнения или таргетами. <span style="background-color: beige;">Перезагрузка с использованием уровней выполнения: **sudo systemctl reboot**</span> <span style="background-color: beige;">Перезагрузка с использованием таргетов: **sudo systemctl isolate reboot.target**</span> --- # Модуль #2 ## 1. Разбиение жесткого диска ### Задание для самостоятельной работы: 1. Подключить пустой диск и создать на нем два основных и два логических раздела. Подключаем дополнительный диск ![](https://hackmd.io/_uploads/r1iqwwZd2.jpg) Убедимся, что созданный нами диск подключен ![](https://hackmd.io/_uploads/S1IjTwbdh.jpg) Создаём разделы на подключенном диске Для этого вводим команду **sudo fdisk /dev/sdb** в терминале ![](https://hackmd.io/_uploads/HJauYw-un.jpg) Далее **"n"** - новый раздел Затем выбераем тип раздела - **"p"** (основной) или **"l"** (логический) Далее номер раздела (основных может быть до 4 на одном диске) Затем вводим размер раздела После создания разделов нажмите **"w"** для сохранения изменений и выхода из **fdisk** Создано 2 основных и 2 логических раздела ![](https://hackmd.io/_uploads/rJHbnPWO2.jpg) 2. Смонтировать в них несколько пустых корневых каталогов Создадим в корне / два каталога **Data1 Data2 ** ![](https://hackmd.io/_uploads/ryquodWd2.jpg) С помощью команды **blkid** узнаем **UUID** дисков и внесем их в **fstab** ![](https://hackmd.io/_uploads/B1zFT_Zd3.jpg) Далее **reboot** И проверяем **df -h** ![](https://hackmd.io/_uploads/B1GfRu-O2.jpg) 3. Перенести каталог /home на отдельный раздел. Выйдем из сеанса пользователя, находящегося в каталоге **/home**. Выполнив команду **cd ~** и затем **cd ..**, чтобы перейти в родительский каталог. Затем выполним команду **sudo mv /home /old_home**, чтобы переименовать текущий каталог **/home** в **/old_home**. Создадим новый пустой каталог **/home** с помощью команды **sudo mkdir /home** Далее выполним команду **sudo mount /dev/sdb1 /home**, чтобы смонтировать новый раздел на **/home**. Проверим, что раздел успешно смонтирован, выполним команду **df -h** и убедимся, что **/home** указывает на новый раздел. ![](https://hackmd.io/_uploads/ryMlbKW_3.jpg) Отредактируем файл **/etc/fstab**, используя команду **sudo nano /etc/fstab**. Добавим новую запись в файл **/etc/fstab**, указывая монтирование раздела **/dev/sdb1** на **/home**. **/dev/sdb1 /home ext4 defaults 0 2** ![](https://hackmd.io/_uploads/B15hbKbd2.jpg) Сохраним и закроем файл **/etc/fstab**. Далее **reboot** и проверяем ![](https://hackmd.io/_uploads/BkDWzt-Oh.jpg) Удалим **/old_home** ![](https://hackmd.io/_uploads/HyNBMYZdn.jpg) ![](https://hackmd.io/_uploads/r14wMYWO2.jpg) 4. Создать еще один раздел подкачки Добавили новый жесткий диск в систему **sdc** ![](https://hackmd.io/_uploads/Hywf4tbOn.jpg) Далее **sudo fdisk /dev/sdc** Установим тип раздела подкачки в **"Linux swap"** с помощью кода файловой системы **82**. ![](https://hackmd.io/_uploads/HyzsEFZun.jpg) Теперь нужно отметить созданный раздел подкачки для использования системой. В терминале выполним команду **sudo mkswap /dev/sdc1** Активируем раздел подкачки с помощью команды **sudo swapon /dev/sdc1**. Это позволит системе начать использовать раздел подкачки для управления виртуальной памятью. Чтобы сделать изменения постоянными после перезагрузки системы, добавим запись в файл **/etc/fstab**. Откроем файл **/etc/fstab** и добавим следующую строку в конец файла: **/dev/sdc1 none swap sw 0 0** ![](https://hackmd.io/_uploads/ryh38K-u3.jpg) Проверим, что раздел подкачки успешно создан и активирован, выполним команду **sudo swapon --show**. ![](https://hackmd.io/_uploads/ByAVPFWu2.jpg) 5. Добавить еще два диска и создать на нем несколько логических томов (LVM). Добавил 2 диска по 2Gb ![](https://hackmd.io/_uploads/rkiZKtZ_3.jpg) Убедимся, что созданные нами диски подключены ![](https://hackmd.io/_uploads/HJ0HYt-On.jpg) Создадим физические тома (Physical Volumes) на новых дисках с помощью команды **sudo pvcreate /dev/sdd /dev/sde**. Это превратит новые диски в физические тома, которые можно будет использовать в LVM. ![](https://hackmd.io/_uploads/SyWd9KZO2.jpg) Создадим группу томов (Volume Group) и добавим физические тома в нее с помощью команды **sudo vgcreate mytom /dev/sdd /dev/sde**. ![](https://hackmd.io/_uploads/SkHE0t-dn.jpg) Cоздадим логические тома (Logical Volumes) внутри группы томов с помощью команды **sudo lvcreate -L <размер_тома> -n <имя_тома> myvg**. ![](https://hackmd.io/_uploads/ry_LAKZ_3.jpg) Проверим, что логические тома успешно созданы, выполнив команду **sudo lvdisplay**, чтобы просмотреть информацию о созданных логических томах. ![](https://hackmd.io/_uploads/rkhdAKb_h.jpg) ![](https://hackmd.io/_uploads/H1U3AF-_n.jpg) 6. Попробовать переносить тома с одного жесткого диска на другой без остановки ОС. **В ПРОЦЕССЕ** 7. Определить точную версию ядра ОС. Для этого воспользуемся командой **uname -srm** ![](https://hackmd.io/_uploads/ryD3Jcbu2.jpg) ## 2. Установка загрузчика ### Задание для самостоятельной работы: 1. Добавить таймаут на старт операционной системы в 10 секунд. выполните команду: **sudo nano /etc/default/grub** Найдите строку, начинающуюся с **GRUB_TIMEOUT** и измените ее значение на **10** ![](https://hackmd.io/_uploads/HJValcbOh.jpg) Если в файле уже присутствует строка **GRUB_TIMEOUT_STYLE**, убедитесь, что ее значение установлено в menu Обновите конфигурацию загрузчика GRUB с помощью команды: **sudo update-grub** ![](https://hackmd.io/_uploads/B1V7W5WOn.jpg) Изменить текст выбора операционной системы. Откройте терминал и выполните команду: **sudo nano /etc/default/grub** ![](https://hackmd.io/_uploads/Hk7xBqb_3.jpg) Найдите строку, начинающуюся с **GRUB_TIMEOUT**, которая указывает время ожидания перед автоматическим запуском. Убедитесь, что установлено ненулевое значение для **GRUB_TIMEOUT**, чтобы появился выбор операционной системы. Найдите строку, начинающуюся с **GRUB_DISTRIBUTOR** и измените ее значение на текст, который вы хотите видеть в качестве выбора операционной системы. **sudo update-grub** ![](https://hackmd.io/_uploads/Hyl6bHcWd3.jpg) ![](https://hackmd.io/_uploads/Bk4GB9Wu2.jpg) 3. Попробовать подключить жесткий диск с Windows и указать вашему загрузчику на возможность загружаться с добавленного диска. ![](https://hackmd.io/_uploads/H1jN1bfdn.jpg) ![](https://hackmd.io/_uploads/S1brkZz_2.jpg) 4. Установить загрузку Windows опцией по умолчанию. **В ПРОЦЕССЕ** ## 3. Управление библиотеками ### Задание для самостоятельной работы: 1. Посмотреть текущие пути к библиотекам **ldconfig -v** покажет в каких директориях находятся какие библиотеки ![](https://hackmd.io/_uploads/ByX8t5Z_n.jpg) 2. Добавить свою домашнюю папку к каталогам нахождения библиотек. Для этого воспользуемся переменной **LD_LIBRARY_PATH** ![](https://hackmd.io/_uploads/rkS895b_2.jpg) 3. Рассмотреть библиотеки, используемые утилитой ifconfig. ![](https://hackmd.io/_uploads/BkKK95-On.jpg) ## 4. Управление пакетами ПО в Debian ### Задание для самостоятельной работы: 1. Добавить в репозитории информацию для работы с пакетом java. Добавили информацию ![](https://hackmd.io/_uploads/SJHXscWOh.jpg) 2. Установить java со всеми зависимостями. ![](https://hackmd.io/_uploads/BkeKjc-_n.jpg) ![](https://hackmd.io/_uploads/Hyul29bd3.jpg) 3. Удалить java **sudo apt-get remove --auto-remove openjdk-11-jdk** ![](https://hackmd.io/_uploads/rk3W6qZOh.jpg) 4. Установить webmin. Установка зависимостей необходимые для работы **Webmin** ![](https://hackmd.io/_uploads/rkscC9-un.jpg) Добавим репозиторий ![](https://hackmd.io/_uploads/SJApC9-On.jpg) Для защиты репозиториев от подмены используется подписывание пакетов с помощью GPG ключей. Скачаем GPG ключ разработчика, который подписал репозиторий: ![](https://hackmd.io/_uploads/ryr2yo-O2.jpg) Добавим его в список доверенных ключей ![](https://hackmd.io/_uploads/SJ18Jobd2.jpg) Обновим список репозиториев ![](https://hackmd.io/_uploads/S18AyoZu3.jpg) **sudo apt-get install webmin** Проверяем ![](https://hackmd.io/_uploads/ryuvlsWu3.jpg) 5. Обновить все пакеты ПО **sudo apt update** ![](https://hackmd.io/_uploads/ByfoApZ_n.jpg) **sudo apt upgrade** ![](https://hackmd.io/_uploads/ByAo0p-dn.jpg) ## 5. Управление пакетами ПО в RedHat ### Задание для самостоятельной работы: 1. Добавить в репозитории информацию для работы с пакетом java. ![](https://hackmd.io/_uploads/SykutAbd3.jpg) 2. Установить java со всеми зависимостями. ![](https://hackmd.io/_uploads/SyOiFAbdh.jpg) ![](https://hackmd.io/_uploads/H10jtAWOn.jpg) 3. Удалить java. ![](https://hackmd.io/_uploads/HJB1cAWun.jpg) 4. Установить webmin. ![](https://hackmd.io/_uploads/SkSQq0-d2.jpg) ![](https://hackmd.io/_uploads/HysX9Ab_2.jpg) ![](https://hackmd.io/_uploads/ByyEc0b_2.jpg) 5. Обновить все пакеты ПО. **yum upgrade** ![](https://hackmd.io/_uploads/ByND9Cbdh.jpg) --- # Модуль #3 ## 1. Работа в командной строке ### Задание для самостоятельной работы: 1. Вывести содержимое домашней папки пользователя в файл с именем "list" в текущей папке. Перейдем в домашнюю папку пользователя с помощью команды **cd ~** Командой **ls** глянем списки файлов и каталогов в текущей директории Для того чтобы вывести содержимое домашней папки пользователя в файл с именем **list** в текущей папке, выполним следующую команду **ls ~ > list** Или можно использовать **ls -la** для вывода подробного списка содержимого домашней папки И получим: **-bash: list:Permission denied** ![](https://hackmd.io/_uploads/HJGA3u4O2.jpg) Походу у нас нет необходимых разрешений, попробуем изменить их с помощью команды **chmod 777 ~** **"777"** - предоставит все возможные права на текущий файл ![](https://hackmd.io/_uploads/B1eQAOE_n.jpg) Повторим команду **ls ~ > list** и проверим с помощью команды **cat** ![](https://hackmd.io/_uploads/ry2UA_Nu2.jpg) 2. Вывести содержимое домашней папки пользователя в файл с именем "list" на уровень выше текущей папки. Наш файл **list** находится в разделе **/home** Перенесём его на уровень выше текущей папки Для этого воспользуемся командой **ls > ../list** Поднимемся на уровень выше и проверим **cat list** ![](https://hackmd.io/_uploads/SJWG2qEun.jpg) ![](https://hackmd.io/_uploads/BJ60hcNd3.jpg) 3. Добавить к переменной среды PATH путь к домашней папке пользователя Команда **export PATH=$PATH:/~** Проверяем **echo $PATH** ![](https://hackmd.io/_uploads/rkYh52Ed3.jpg) 4. Изменить цвет и размер шрифта по умолчанию в консоли вашего пользователя. Шрифт и размер **sudo dpkg-reconfigure console-setup** Выбираем **UTF-8**, далее шрифт и размер ![](https://hackmd.io/_uploads/rkGALaN_2.jpg) ![](https://hackmd.io/_uploads/rk90UaEd3.jpg) До ![](https://hackmd.io/_uploads/ryMgwpEOn.jpg) После ![](https://hackmd.io/_uploads/HJuewaE_2.jpg) Цвет текста Открываем **nano ~/.bashrc** ![](https://hackmd.io/_uploads/rylPhaNO3.jpg) И вводим **PS1='\[\033[0;32m\]\u@\h:\w\$'** ![](https://hackmd.io/_uploads/rkR-b_BO2.jpg) Сохраняемся и выходим Обновляем текущую сессию терминала, чтобы изменения вступили в силу командой **source ~/.bashrc** и проверяем ![](https://hackmd.io/_uploads/ByiKW_Sdh.jpg) 5. Вывести полную версию ОС в файл /os_version.txt. Для этого воспользуемся следующей командой **uname -a > /os_version.txt** Проверяем командой **cat /os_version.txt** ![](https://hackmd.io/_uploads/SJT7YdB_2.jpg) ## 2. Управление текстовым потоком ### Задание для самостоятельной работы: 1. Пронумеровать строчки системного лога. **cat /var/log/syslog** ![](https://hackmd.io/_uploads/Syo02uSu3.jpg) **cat /var/log/syslog | nl** ![](https://hackmd.io/_uploads/H1AyTdS_h.jpg) 2. Посмотреть, как системный лог будет выглядеть на печати. **pr -F -l 50 /var/log/syslog | less** Эта команда выполняет следующие действия: **-F** устанавливает заполнение страницы (печатных строк) до полной ширины страницы. **-l 50** устанавливает количество строк на странице (печатных строк) равным 50. Можно указать любое значение **/var/log/syslog** указывает путь к системному логу, который мы хотим просмотреть. ![](https://hackmd.io/_uploads/rk4kyFBdh.jpg) ![](https://hackmd.io/_uploads/SkdkkKSdh.jpg) 3. Посмотреть первые шесть событий любого журнала. **journalctl | head -n 6** ![](https://hackmd.io/_uploads/r1ToLtHu2.jpg) 4. Посмотреть последние двадцать событий любого журнала. **journalctl -n 20** ![](https://hackmd.io/_uploads/Bk_0IYrd3.jpg) 5. Отсортировать любой журнал событий по алфавиту **journalctl | sort** ![](https://hackmd.io/_uploads/HydYPKBun.jpg) 6. Показать в логе событий системы только уникальные строки. **journalctl | uniq -u** ![](https://hackmd.io/_uploads/Syp3uFrO2.jpg) 7. Вывести из журналов событий только события входа в систему в отдельный файл. **journalctl -t systemd-logind > login_events.txt** ![](https://hackmd.io/_uploads/Bk1ZAFrd2.jpg) 8. Из созданного файла создать несколько файлов по событиям входа каждого отдельного пользователя (на каждого пользователя свой журнал). 9. Отсортируйте информацию так, чтоб был виден только логин и время входа/выхода. 10. Замените в созданных файлах логин на полное имя пользователя. ## 3. Основные операции с файлами ### Задание для самостоятельной работы: 1. Найти все файлы больше 100Мб в вашей ОС. **find / -type f -size +100M** ![](https://hackmd.io/_uploads/rJGegoBuh.jpg) 2. Найти все файлы больше 1Мб в домашней папке пользователя и перенести в корневую папку, предварительно сжав. **find ~ -type f -size +1M -exec tar -czvf /archive.tar.gz {} +** ![](https://hackmd.io/_uploads/Hy6H5hBu3.jpg) Проверяем! ![](https://hackmd.io/_uploads/SJUn5hr_3.jpg) **tar -tf /archive.tar.gz** ![](https://hackmd.io/_uploads/rJveshr_n.jpg) 3. Найти в домашней папке все файлы, начинающиеся с букв "a" по "z" и скопировать их в папку temp в домашнем "каталоге". ![](https://hackmd.io/_uploads/S1U3mpH_2.jpg) **find ~ -type f -name '[a-z]*' -exec cp {} ~/temp \;** ![](https://hackmd.io/_uploads/ryq6mprO3.jpg) Проверяем ![](https://hackmd.io/_uploads/rya076Sd2.jpg) 4. Сделать резервную копию загрузочного сектора диска **sudo dd if=/dev/sda of=bootImage.img bs=512 count=1** ![](https://hackmd.io/_uploads/rJhHJCBdh.jpg) 5. Удалить все ненужные временные файлы. **find / -type f -name "*.tpm" -delete** ![](https://hackmd.io/_uploads/SkLhyRB_2.jpg) 6. Удалить все созданные в течении выполнения самостоятельной работы каталоги **sudo rm -r** и перечисляем созданные каталоги ![](https://hackmd.io/_uploads/S1QFNRSun.jpg) ## 4. Потоки, конвейеры и перенаправления ### Задание для самостоятельной работы: 1. Вывести результат команды ping ya.ru (десять пакетов) в файл ping.txt. ![](https://hackmd.io/_uploads/By6Ew0SOn.jpg) 2. Дописать результат команды ping r0.ru (десять пакетов) в тот же файл. ![](https://hackmd.io/_uploads/rkfXOAHu3.jpg) 3. Запустить команду с ошибкой pOng r0.ru, отправив ошибки выполнения в файл error.txt. ![](https://hackmd.io/_uploads/r1UWqAHu3.jpg) 4. Вывести результат команды ping google.com (десять пакетов) в файл ping.txt и в консоль одновременно. ![](https://hackmd.io/_uploads/rkQJsRSun.jpg) 5. Вывести результат команды ping google.com в консоль, отображая только последние пять символов каждой строки. ![](https://hackmd.io/_uploads/Hkgoj0Buh.jpg) ## 5. Управление процессами в Linux ### Задание для самостоятельной работы: 1. Отобразить все процессы в системе. **ps aux | less** ![](https://hackmd.io/_uploads/HJtF2Ardh.jpg) 2. Отобразить процессы только своего пользователя. **ps -l -u root | less** ![](https://hackmd.io/_uploads/H1tmaRSd2.jpg) 3. Запустить диспетчер задач top в фоновом режиме. ![](https://hackmd.io/_uploads/r1kUCCSdh.jpg) 4. Остановить диспетчер задач, запущенный в фоновом режиме. ![](https://hackmd.io/_uploads/SJKRl18dh.jpg) 5. Остановить все запущенные процессы активного в данный момент пользователя. **killall -u root** ![](https://hackmd.io/_uploads/rkIrW1Ud2.jpg) 6. Запустить процесс трассировки до ya.ru и свернуть его в отдельный screen. ![](https://hackmd.io/_uploads/rk_kfJI_2.jpg) ## 6. Изменение приоритетов процессов ### Задание для самостоятельной работы: 1. Запустить процесс трассировки маршрута до сайта yandex.ru с приоритетом "-10". ![](https://hackmd.io/_uploads/r17MFGLdh.jpg) 2. Понизить приоритет до "5". ![](https://hackmd.io/_uploads/SygIQYML_2.jpg) 3. Повысить приоритет до "-18". ![](https://hackmd.io/_uploads/S11NKzI_h.jpg) 4. Отслеживать запущенные процессы по количеству используемой оперативной памяти. Запускаем **top** и нажимаем **Shift + M** ![](https://hackmd.io/_uploads/S1Ui9zU_h.jpg) 5. Вывести в консоль запущенные процессы, отображая только их id, и того, от кого они запущены. **ps -eo user,pid ppid** ![](https://hackmd.io/_uploads/By3ojG8_3.jpg) ## 7. Поиск информации при помощи регулярных выражений ### Задание для самостоятельной работы: 1. Найти в журналах событий /var/log логи, содержащие ваш логин. **sudo grep -r letfull /var/log** ![](https://hackmd.io/_uploads/H1n3pM8_3.jpg) 2. Найти в журналах событий файлы, содержащие слово error. **sudo grep -r error** ![](https://hackmd.io/_uploads/H19JymLdn.jpg) 3. Найти в любом заполненном журнале событий строки, начинающиеся с заглавной S. **grep -r '^S' /var/log/*.*** ![](https://hackmd.io/_uploads/By727mUd2.jpg) 4. Найти в любом заполненном журнале событий строки, начинающиеся с заглавной и прописной s. **sudo grep -rE '^[Ss]' /var/log/*.* | less** ![](https://hackmd.io/_uploads/H1dBIQ8O2.jpg) ![](https://hackmd.io/_uploads/S1rsSmI_h.jpg) 5. Найти в любом заполненном журнале событий строки, начинающиеся с цифр. **sudo grep -rE '^[0-9]' /var/log** ![](https://hackmd.io/_uploads/HJyqvm8un.jpg) ![](https://hackmd.io/_uploads/SJUcDX8Oh.jpg) 6. Сохранить строчки лога, содержащие ваш логин, как отдельный файл, заменив при этом логин на слово "His Majesty". **grep "letfull" /var/log/ | sed "s/letfull/His Majesty/g" > RINAT.txt** ![](https://hackmd.io/_uploads/r19Mim8O2.jpg) ![](https://hackmd.io/_uploads/ry-moQLd2.jpg) ![](https://hackmd.io/_uploads/HJtQsXUu2.jpg) ## 8. Текстовый редактор VI ### Задание для самостоятельной работы: 1. Набрать стихотворение в vi. **vi stih.txt** Далее **Enter** Нажимаем **i**, чтобы перейти в режим вставки Пишем стих ![](https://hackmd.io/_uploads/SJGd5nLu2.jpg) Нажимаем **Esc**, чтобы выйти из режима вставки Далее вводим **:wq** - что бы сохарнить Проверяем ![](https://hackmd.io/_uploads/BJjRchIuh.jpg) 2. Поменять местами четные строчки с нечетными. ![](https://hackmd.io/_uploads/r1OV2TLd2.jpg) ![](https://hackmd.io/_uploads/rJXBhTI_3.jpg) 3. Последнюю строку продублировать. Нажимаем клавишу **Shift + g** для перехода к последней строке. Далее клавишу **yy** для копирования последней строки Потом клавишу **p** для вставки скопированной строки после текущей строки. ![](https://hackmd.io/_uploads/S1U9kRIO2.jpg) 4. Вставить первую строку поле последней. **dd** для вырезания первой строки Потом клавишу **p** для вставки вырезаной строки после последней строки. ![](https://hackmd.io/_uploads/SJ2WfR8Oh.jpg) 5. Найти несколько слов выше и ниже по тексту. Нажмем **/** и введите слово **“kiska”**. Затем **Enter**. Далее **n** для перехода к следующему вхождению. Или **N** для перехода к предыдущему вхождению. Нажмем **?** для поиска слова назад. **Ctrl + o** для перехода к предыдущей позиции. **Ctrl + i** для перехода к следующей позиции. ![](https://hackmd.io/_uploads/HJ7L1Mvdn.jpg) 6. Поменять во второй строчке первое и последнее слова местами. **dw** – удалить слово **^** - начала строки **$** - конец строки ![](https://hackmd.io/_uploads/HkNnOzvOh.jpg) 7. Вставить первое слово в начало каждого абзаца. ![](https://hackmd.io/_uploads/S1Jm9fP_h.jpg) 8. Сохранить изменения в файле под новым именем. **:q stih2.txt** ![](https://hackmd.io/_uploads/HyTZTfPO3.jpg) --- # Модуль #4 ## 1. Создание файловых систем ### Задание для самостоятельной работы: 1. Инициализировать новый диск в формате MBR. ![](https://hackmd.io/_uploads/rk-PeBPOh.jpg) 2. Создать на отдельном диске два основных отдела и один расширенный. ![](https://hackmd.io/_uploads/r1TEMHPd3.jpg) 3. На расширенном разделе создать еще три раздела. ![](https://hackmd.io/_uploads/HyyDISwO3.jpg) 4. Создать на каждом разделе отдельную файловую систему, один из разделов сделать разделом swap. ![](https://hackmd.io/_uploads/Sk72MPPdh.jpg) 5. Переконвертировать диск в формат GUID. ![](https://hackmd.io/_uploads/S1hptwv_2.jpg) ![](https://hackmd.io/_uploads/S1V0KvvOh.jpg) 6. Удалить расширенный раздел. ![](https://hackmd.io/_uploads/SJKdTDD_n.jpg) ![](https://hackmd.io/_uploads/HJ-FTwDO2.jpg) 7. Увеличить один из оставшихся разделов на освобожденное место. ![](https://hackmd.io/_uploads/HkGGu-d_3.jpg) ## 2. Проверка целостности файловых систем ### Задание для самостоятельной работы: 1. Установить инструменты работы с NTFS. ![](https://hackmd.io/_uploads/H19eWmdd3.jpg) ![](https://hackmd.io/_uploads/ryQlWQdun.jpg) 2. Отформатировать свободный том в формат NTFS. ![](https://hackmd.io/_uploads/BJtkOQOO2.jpg) ![](https://hackmd.io/_uploads/HJ5eOX_O2.jpg) ![](https://hackmd.io/_uploads/rkHZ_7ddn.jpg) 3. Проверить том NTFS. ![](https://hackmd.io/_uploads/SJ96i7uu3.jpg) ![](https://hackmd.io/_uploads/BJCpomdO2.jpg) 4. Вывести информацию о томе NTFS в отдельный файл. ![](https://hackmd.io/_uploads/r1UNTQ__3.jpg) **cat ntfsinfo.txt** ![](https://hackmd.io/_uploads/SkuITmu_2.jpg) 5. Попробовать выключить журнал на томе NTFS. ![](https://hackmd.io/_uploads/ryfN0mdO2.jpg) 6. Попробовать удалить и восстановить информацию на томе NTFS. **В ПРОЦЕССЕ** 7. Посмотреть количество свободного места на этом томе. ![](https://hackmd.io/_uploads/HJErYuO_3.jpg) ![](https://hackmd.io/_uploads/r13BY__u3.jpg) 8. Посмотреть занятое место на этом томе. ![](https://hackmd.io/_uploads/Sk61idO_h.jpg) ## 3. Монтирование файловых систем ### Задание для самостоятельной работы: 1. Создать точку монтирования в корневой файловой системе. ![](https://hackmd.io/_uploads/ryV0O9uOn.jpg) 2. Вручную подключить в нее устройство и создать на нем текстовый файл, после чего отключить. ![](https://hackmd.io/_uploads/B1YRO9__2.jpg) 3. Создать настройку автоматического монтирования указанной файловой системы. ![](https://hackmd.io/_uploads/SJKiXsO_h.jpg) ![](https://hackmd.io/_uploads/HkX37odu3.jpg) 4. Подключить сетевое устройство в файловую систему. **В ПРОЦЕССЕ** 5. Подключить том Windows в файловую систему. **В ПРОЦЕССЕ** ## 4. Управление квотами дисков ### Задание для самостоятельной работы: 1. Установить для диска с домашними папками квоту для пользователя системы в 100 Мб мягкую. **В ПРОЦЕССЕ** 2. Установить для диска с домашними папками квоту для группы пользователей системы, в которую входит ваш пользователей, в 100 объектов жесткую. **В ПРОЦЕССЕ** 3. Копируя и вставляя файлы попробовать превысить обе квоты. **В ПРОЦЕССЕ** 4. Посмотреть отчет об использовании квот. **В ПРОЦЕССЕ** 5. Отключить квоту на носителе информации. **В ПРОЦЕССЕ** ## 5. Права доступа и владельцы файлов ### Задание для самостоятельной работы: Задание для самостоятельной работы: 1. Создать текстовый файл. ![](https://hackmd.io/_uploads/SJw4ERdO2.jpg) 2. Установить владельцем и группой владельцев суперпользователя root. **sudo chown root:root fafa.txt** ![](https://hackmd.io/_uploads/Byj6ECOOh.jpg) 3. Запретить всем остальным доступ к файлу и проверить что доступ пропал. ![](https://hackmd.io/_uploads/rkCr8C_O2.jpg) Или **chmod 700 fafa.txt** 4. Установить маску создания файлов так, чтобы у владельца были полные права, а у остальных никакого. Проверить работу маски. ![](https://hackmd.io/_uploads/BJpZwAd_n.jpg) 5. Создать папку и сделать владельцем суперпользователя. ![](https://hackmd.io/_uploads/S1_Dj0d_n.jpg) 6. Разрешить всем полный доступ к папке. ![](https://hackmd.io/_uploads/S1t2iRuO2.jpg) 7. Установить на папку sticky-бит, убедиться что никто кроме владельца не может изменить ее структуру. ![](https://hackmd.io/_uploads/SJmZARuu3.jpg) ## 6. Жесткие и символические ссылки ### Задание для самостоятельной работы: 1. Создать текстовый файл. ![](https://hackmd.io/_uploads/BJKlJktd2.jpg) 2. Создать копию этого файла, мягкую и жесткую ссылки на него. ![](https://hackmd.io/_uploads/BJgPM1YOn.jpg) ![](https://hackmd.io/_uploads/ryLufktdn.jpg) ![](https://hackmd.io/_uploads/S1xouGkKOh.jpg) 3. Перенести оригинал и внести в него изменения. **mv gaga.txt papka/gaga.txt** ![](https://hackmd.io/_uploads/HyebEkFdh.jpg) 4. Проверить, что: мягкая ссылка сломалась, копия содержит устаревшую информацию, а жесткая ссылка указывает на актуальный файл. ![](https://hackmd.io/_uploads/BycfB1YO2.jpg) 5. Перенести файл на другой (второй) раздел жесткого диска, убедиться в том, что жесткая ссылка перестала работать. Перенес командой **mv** ссылка всё ещё работает 6. Создать на файл на новом (втором) разделе новую жесткую и мягкую ссылки. **В ПРОЦЕССЕ** 7. Перенести ссылки на другой (первый) раздел и убедиться в том что мягкая ссылка работает, а жесткая сломалась. **В ПРОЦЕССЕ** ## 7. Поиск и стандартное расположение системных файлов ### Задание для самостоятельной работы: 1. Расписать предназначение всех корневых папок вашего дистрибутива. ![](https://hackmd.io/_uploads/B1IwjJKuh.jpg) В операционной системе Linux Ubuntu предназначение различных папок в директории корня следующее: **/bin:** В этой папке находятся основные исполняемые файлы системы, такие как команды и утилиты, необходимые для базового функционирования системы даже в однопользовательском режиме. **/boot:** Эта папка содержит файлы, связанные с загрузчиком системы, таким как ядро Linux, файлы конфигурации загрузчика и другие файлы, необходимые для загрузки операционной системы. **/dev:** Здесь располагаются специальные файлы устройств (device files), представляющие различные устройства системы, включая жесткие диски, USB-устройства, терминалы, принтеры и другие. **/etc:** В этой папке хранятся системные конфигурационные файлы, которые используются различными программами и службами на системе. Здесь можно найти файлы, относящиеся к сетевым настройкам, пользовательским учетным записям, запуску служб и многому другому. **/home:** Эта папка содержит домашние каталоги пользователей. Каждый пользователь имеет свою собственную подпапку здесь для хранения своих персональных файлов, документов, конфигураций и т. д. **/lib** и **/lib64:** Эти папки содержат разделяемые библиотеки (shared libraries), необходимые для работы программ в системе. /lib используется для 32-битных систем, а /lib64 - для 64-битных систем. **/media **и **/mnt:** Эти папки используются для временного монтирования различных устройств или файловых систем. /media обычно содержит точки монтирования для съемных носителей, таких как USB-флешки, CD/DVD-диски, а /mnt может быть использован для временного монтирования других файловых систем или сетевых ресурсов. **/opt:** В этой папке размещаются дополнительные программы или пакеты, которые не входят в стандартную установку системы. Обычно это коммерческие или сторонние программы. **/root:** Домашний каталог суперпользователя root. Здесь хранятся файлы и конфигурации, принадлежащие администратору системы. **/sbin:** Здесь находятся системные команды и утилиты, предназначенные для выполнения административных задач. Эти команды доступны только для пользователей с привилегиями суперпользователя (root). **/tmp:** В этой папке располагаются временные файлы, которые создаются программами и процессами во время выполнения. Файлы в этой папке могут быть удалены при перезагрузке системы. **/usr:** Это одна из основных папок, содержащая множество подпапок и файлов, связанных с установленными программами и ресурсами, доступными для общего использования. Здесь находятся библиотеки, заголовочные файлы, программы, документация и другие ресурсы. **/var:** В этой папке хранятся данные, которые изменяются в процессе работы системы, включая логи, кэши, временные файлы, базы данных и другие переменные данные. 2. Найти исполняемые файлы команды hostname. ![](https://hackmd.io/_uploads/Hya3hkKuh.jpg) 3. Найти мануал команды ifconfig. **man ifconfig** или **https://man7.org/linux/man-pages/man8/ifconfig.8.html** 4. Добавить в индексированные месторасположения каталог лог-файлов. ![](https://hackmd.io/_uploads/B1uJgeKO3.jpg) ![](https://hackmd.io/_uploads/HyDxglYO3.jpg) ![](https://hackmd.io/_uploads/S1pgeetd3.jpg) ![](https://hackmd.io/_uploads/Hk7-xltd3.jpg) 5. Проверить наличие псевдонимов у команды date. В нашей системе не определены псевдонимы Команда **alias** ничего не выдаёт ![](https://hackmd.io/_uploads/H1oLZxKO2.jpg) ### Новая ДЗ