---
title: "Отчёт по прохождению 3 этапа внешнего курса"
subtitle: "Продвинутые темы"
author: "Герчет Вячеслав"
toc-title: "Содержание"
toc: true
toc_depth: 2
lof: true
fontsize: 12pt
linestretch: 1.5
papersize: a4paper
documentclass: scrreprt
polyglossia-lang: russian
polyglossia-otherlangs: english
mainfont: PT Serif
sansfont: PT Sans
monofont: PT Mono
indent: true
pdf-engine: lualatex
---

# Цель работы

Пройти третий этап внешнего курса Stepik «Введение в Linux», изучить продвинутые темы работы в Linux, включая текстовые редакторы, bash-скрипты, переменные, циклы, функции, поиск и обработку текстовых данных.

# Задание

Выполнить тестовые и практические задания третьего этапа курса, зафиксировать формулировки заданий, подтверждения прохождения и пояснить выбранные ответы.

# Выполнение внешнего курса

## Контрольное мероприятие 1

### Формулировка задания

![Формулировка задания 1](images/c1.png){#fig:c1 width=95%}

### Выбранный ответ

Был выбран ответ: вариант, отмеченный на скриншоте подтверждения.

### Пояснение выбора

Ответ выбран с учётом правил работы в редакторе vim: для выхода из редактора используется соответствующая команда перехода в командный режим и завершения работы.

### Подтверждение прохождения

![Подтверждение прохождения задания 1](images/z1.png){#fig:z1 width=95%}

## Контрольное мероприятие 2

### Формулировка задания

![Формулировка задания 2](images/c2.png){#fig:c2 width=95%}

### Выбранный ответ

Был выбран ответ: вариант, отмеченный на скриншоте подтверждения.

### Пояснение выбора

Ответ выбран на основе правил перемещения курсора в vim, где разные команды перемещают курсор по словам, символам и границам строки.

### Подтверждение прохождения

![Подтверждение прохождения задания 2](images/z2.png){#fig:z2 width=95%}

## Контрольное мероприятие 3

### Формулировка задания

![Формулировка задания 3](images/c3.png){#fig:c3 width=95%}

### Выбранный ответ

Был выбран ответ: вариант, отмеченный на скриншоте подтверждения.

### Пояснение выбора

Выбор основан на правилах редактирования текста в vim: команды удаления, копирования, вставки и перехода курсора выполняются в нормальном режиме.

### Подтверждение прохождения

![Подтверждение прохождения задания 3](images/z3.png){#fig:z3 width=95%}

## Контрольное мероприятие 4

### Формулировка задания

![Формулировка задания 4](images/c4.png){#fig:c4 width=95%}

### Выбранный ответ

Был выбран ответ: вариант, отмеченный на скриншоте подтверждения.

### Пояснение выбора

Ответ выбран, потому что поиск и замена в vim выполняются через команду `:s`, а область применения задаётся перед командой замены.

### Подтверждение прохождения

![Подтверждение прохождения задания 4](images/z4.png){#fig:z4 width=95%}

## Контрольное мероприятие 5

### Формулировка задания

![Формулировка задания 5](images/c5.png){#fig:c5 width=95%}

### Выбранный ответ

Был выбран ответ: вариант, отмеченный на скриншоте подтверждения.

### Пояснение выбора

Ответ выбран с учётом различия режимов vim: визуальный режим используется для выделения, а команды `d` и `y` применяются для удаления и копирования.

### Подтверждение прохождения

![Подтверждение прохождения задания 5](images/z5.png){#fig:z5 width=95%}

## Контрольное мероприятие 6

### Формулировка задания

![Формулировка задания 6](images/c6.png){#fig:c6 width=95%}

### Выбранный ответ

Был выбран ответ: вариант, отмеченный на скриншоте подтверждения.

### Пояснение выбора

Ответ выбран, потому что история команд в bash связана с текущей оболочкой и сохраняется после завершения её работы.

### Подтверждение прохождения

![Подтверждение прохождения задания 6](images/z6.png){#fig:z6 width=95%}

## Контрольное мероприятие 7

### Формулировка задания

![Формулировка задания 7](images/c7.png){#fig:c7 width=95%}

### Выбранный ответ

Был выбран ответ: вариант, отмеченный на скриншоте подтверждения.

### Пояснение выбора

Выбор основан на правилах абсолютных и относительных путей: путь файла определяется текущей директорией и командами перехода.

### Подтверждение прохождения

![Подтверждение прохождения задания 7](images/z7.png){#fig:z7 width=95%}

## Контрольное мероприятие 8

### Формулировка задания

![Формулировка задания 8](images/c8.png){#fig:c8 width=95%}

### Выбранный ответ

Был выбран ответ: вариант, отмеченный на скриншоте подтверждения.

### Пояснение выбора

Ответ выбран по правилам именования переменных в bash: имя может содержать буквы, цифры и подчёркивание, но не должно начинаться с цифры.

### Подтверждение прохождения

![Подтверждение прохождения задания 8](images/z8.png){#fig:z8 width=95%}

## Контрольное мероприятие 9

### Формулировка задания

![Формулировка задания 9](images/c9.png){#fig:c9 width=95%}

### Выбранный ответ

Был выбран ответ: вариант, отмеченный на скриншоте подтверждения.

### Пояснение выбора

Ответ выбран, потому что аргументы командного файла в bash передаются через позиционные параметры `$1`, `$2` и далее.

### Подтверждение прохождения

![Подтверждение прохождения задания 9](images/z9.png){#fig:z9 width=95%}

## Контрольное мероприятие 10

### Формулировка задания

![Формулировка задания 10](images/c10.png){#fig:c10 width=95%}

### Выбранный ответ

Был выбран ответ: вариант, отмеченный на скриншоте подтверждения.

### Пояснение выбора

Выбор основан на синтаксисе условий bash: внутри `[[ ]]` важны пробелы, а переменные и операторы сравнения должны быть записаны корректно.

### Подтверждение прохождения

![Подтверждение прохождения задания 10](images/z10.png){#fig:z10 width=95%}

## Контрольное мероприятие 11

### Формулировка задания

![Формулировка задания 11](images/c11.png){#fig:c11 width=95%}

### Выбранный ответ

Был выбран ответ: вариант, отмеченный на скриншоте подтверждения.

### Пояснение выбора

Ответ выбран после последовательной проверки условий `if`, `elif` и `else`, которые определяют, какая ветка скрипта будет выполнена.

### Подтверждение прохождения

![Подтверждение прохождения задания 11](images/z11.png){#fig:z11 width=95%}

## Контрольное мероприятие 12

### Формулировка задания

![Формулировка задания 12](images/c12.png){#fig:c12 width=95%}

### Выбранный ответ

Был выбран ответ: вариант, отмеченный на скриншоте подтверждения.

### Пояснение выбора

Выбор основан на логике условного оператора bash: разные значения аргумента приводят к разным вариантам вывода.

### Подтверждение прохождения

![Подтверждение прохождения задания 12](images/z12.png){#fig:z12 width=95%}

## Контрольное мероприятие 13

### Формулировка задания

![Формулировка задания 13](images/c13.png){#fig:c13 width=95%}

### Выбранный ответ

Был выбран ответ: вариант, отмеченный на скриншоте подтверждения.

### Пояснение выбора

Ответ выбран по результату анализа цикла: команды внутри цикла выполняются последовательно, пока условие продолжения остаётся истинным.

### Подтверждение прохождения

![Подтверждение прохождения задания 13](images/z13.png){#fig:z13 width=95%}

## Контрольное мероприятие 14

### Формулировка задания

![Формулировка задания 14](images/c14.png){#fig:c14 width=95%}

### Выбранный ответ

Был выбран ответ: вариант, отмеченный на скриншоте подтверждения.

### Пояснение выбора

Ответ выбран с учётом структуры bash-скрипта, в котором используются переменные, чтение пользовательского ввода и вложенные условия.

### Подтверждение прохождения

![Подтверждение прохождения задания 14](images/z14.png){#fig:z14 width=95%}

## Контрольное мероприятие 15

### Формулировка задания

![Формулировка задания 15](images/c15.png){#fig:c15 width=95%}

### Выбранный ответ

Был выбран ответ: вариант, отмеченный на скриншоте подтверждения.

### Пояснение выбора

Выбор основан на правилах арифметических выражений в bash, где для вычислений используются специальные синтаксические конструкции.

### Подтверждение прохождения

![Подтверждение прохождения задания 15](images/z15.png){#fig:z15 width=95%}

## Контрольное мероприятие 16

### Формулировка задания

![Формулировка задания 16](images/c16.png){#fig:c16 width=95%}

### Выбранный ответ

Был выбран ответ: вариант, отмеченный на скриншоте подтверждения.

### Пояснение выбора

Ответ выбран, потому что команда `pwd` выводит путь к текущей рабочей директории после выполнения перехода.

### Подтверждение прохождения

![Подтверждение прохождения задания 16](images/z16.png){#fig:z16 width=95%}

## Контрольное мероприятие 17

### Формулировка задания

![Формулировка задания 17](images/c17.png){#fig:c17 width=95%}

### Выбранный ответ

Был выбран ответ: вариант, отмеченный на скриншоте подтверждения.

### Пояснение выбора

Выбор сделан с учётом проверки кода возврата программы: успешное и ошибочное завершение определяются разными значениями статуса.

### Подтверждение прохождения

![Подтверждение прохождения задания 17](images/z17.png){#fig:z17 width=95%}

## Контрольное мероприятие 18

### Формулировка задания

![Формулировка задания 18](images/c18.png){#fig:c18 width=95%}

### Выбранный ответ

Был выбран ответ: вариант, отмеченный на скриншоте подтверждения.

### Пояснение выбора

Ответ выбран на основе области видимости переменных и функций в bash: локальные и глобальные переменные ведут себя по-разному.

### Подтверждение прохождения

![Подтверждение прохождения задания 18](images/z18.png){#fig:z18 width=95%}

## Контрольное мероприятие 19

### Формулировка задания

![Формулировка задания 19](images/c19.png){#fig:c19 width=95%}

### Выбранный ответ

Был выбран ответ: вариант, отмеченный на скриншоте подтверждения.

### Пояснение выбора

Выбор основан на алгоритме Евклида: остаток от деления используется до тех пор, пока не будет найден наибольший общий делитель.

### Подтверждение прохождения

![Подтверждение прохождения задания 19](images/z19.png){#fig:z19 width=95%}

## Контрольное мероприятие 20

### Формулировка задания

![Формулировка задания 20](images/c20.png){#fig:c20 width=95%}

### Выбранный ответ

Был выбран ответ: вариант, отмеченный на скриншоте подтверждения.

### Пояснение выбора

Ответ выбран после анализа конструкции `case`, которая выбирает действие в зависимости от переданного арифметического оператора.

### Подтверждение прохождения

![Подтверждение прохождения задания 20](images/z20.png){#fig:z20 width=95%}

## Контрольное мероприятие 21

### Формулировка задания

![Формулировка задания 21](images/c21.png){#fig:c21 width=95%}

### Выбранный ответ

Был выбран ответ: вариант, отмеченный на скриншоте подтверждения.

### Пояснение выбора

Ответ выбран с учётом различия параметров `find`: `-name` учитывает регистр, а `-iname` выполняет поиск без учёта регистра.

### Подтверждение прохождения

![Подтверждение прохождения задания 21](images/z21.png){#fig:z21 width=95%}

## Контрольное мероприятие 22

### Формулировка задания

![Формулировка задания 22](images/c22.png){#fig:c22 width=95%}

### Выбранный ответ

Был выбран ответ: вариант, отмеченный на скриншоте подтверждения.

### Пояснение выбора

Выбор основан на правилах команды `find`, где путь, имя файла и шаблон поиска задают набор найденных объектов.

### Подтверждение прохождения

![Подтверждение прохождения задания 22](images/z22.png){#fig:z22 width=95%}

## Контрольное мероприятие 23

### Формулировка задания

![Формулировка задания 23](images/c23.png){#fig:c23 width=95%}

### Выбранный ответ

Был выбран ответ: вариант, отмеченный на скриншоте подтверждения.

### Пояснение выбора

Ответ выбран с учётом глубины обхода каталогов: параметры поиска ограничивают, на каких уровнях файловой системы выполняется поиск.

### Подтверждение прохождения

![Подтверждение прохождения задания 23](images/z23.png){#fig:z23 width=95%}

## Контрольное мероприятие 24

### Формулировка задания

![Формулировка задания 24](images/c24.png){#fig:c24 width=95%}

### Выбранный ответ

Был выбран ответ: вариант, отмеченный на скриншоте подтверждения.

### Пояснение выбора

Ответ выбран, потому что команда `find` может не только искать файлы, но и выполнять действия над найденными объектами.

### Подтверждение прохождения

![Подтверждение прохождения задания 24](images/z24.png){#fig:z24 width=95%}

## Контрольное мероприятие 25

### Формулировка задания

![Формулировка задания 25](images/c25.png){#fig:c25 width=95%}

### Выбранный ответ

Был выбран ответ: вариант, отмеченный на скриншоте подтверждения.

### Пояснение выбора

Выбор основан на регулярном выражении: шаблон задаёт допустимые символы и окончание строки, поэтому подходят только строки нужного вида.

### Подтверждение прохождения

![Подтверждение прохождения задания 25](images/z25.png){#fig:z25 width=95%}

## Контрольное мероприятие 26

### Формулировка задания

![Формулировка задания 26](images/c26.png){#fig:c26 width=95%}

### Выбранный ответ

Был выбран ответ: вариант, отмеченный на скриншоте подтверждения.

### Пояснение выбора

Ответ выбран с учётом работы `sed`: опция `-n` отключает автоматическую печать, а команда `p` выводит только явно выбранные строки.

### Подтверждение прохождения

![Подтверждение прохождения задания 26](images/z26.png){#fig:z26 width=95%}

## Контрольное мероприятие 27

### Формулировка задания

![Формулировка задания 27](images/c27.png){#fig:c27 width=95%}

### Выбранный ответ

Был выбран ответ: вариант, отмеченный на скриншоте подтверждения.

### Пояснение выбора

Ответ выбран на основе синтаксиса `sed`, где замена выполняется по шаблону и может применяться к выбранным строкам.

### Подтверждение прохождения

![Подтверждение прохождения задания 27](images/z27.png){#fig:z27 width=95%}

## Контрольное мероприятие 28

### Формулировка задания

![Формулировка задания 28](images/c28.png){#fig:c28 width=95%}

### Выбранный ответ

Был выбран ответ: вариант, отмеченный на скриншоте подтверждения.

### Пояснение выбора

Выбор основан на правилах регулярных выражений: специальные символы позволяют описывать повторения, группы и варианты совпадений.

### Подтверждение прохождения

![Подтверждение прохождения задания 28](images/z28.png){#fig:z28 width=95%}

## Контрольное мероприятие 29

### Формулировка задания

![Формулировка задания 29](images/c29.png){#fig:c29 width=95%}

### Выбранный ответ

Был выбран ответ: вариант, отмеченный на скриншоте подтверждения.

### Пояснение выбора

Ответ выбран, потому что `grep` ищет строки по заданному шаблону и может учитывать или не учитывать регистр в зависимости от параметров.

### Подтверждение прохождения

![Подтверждение прохождения задания 29](images/z29.png){#fig:z29 width=95%}

## Контрольное мероприятие 30

### Формулировка задания

![Формулировка задания 30](images/c30.png){#fig:c30 width=95%}

### Выбранный ответ

Был выбран ответ: вариант, отмеченный на скриншоте подтверждения.

### Пояснение выбора

Выбор сделан с учётом того, как шаблон поиска сопоставляется со строками файла и какие строки должны попасть в результат.

### Подтверждение прохождения

![Подтверждение прохождения задания 30](images/z30.png){#fig:z30 width=95%}

## Контрольное мероприятие 31

### Формулировка задания

![Формулировка задания 31](images/c31.png){#fig:c31 width=95%}

### Выбранный ответ

Был выбран ответ: вариант, отмеченный на скриншоте подтверждения.

### Пояснение выбора

Ответ выбран на основе работы команд обработки текста, которые позволяют фильтровать данные и выводить только нужные строки.

### Подтверждение прохождения

![Подтверждение прохождения задания 31](images/z31.png){#fig:z31 width=95%}

## Контрольное мероприятие 32

### Формулировка задания

![Формулировка задания 32](images/c32.png){#fig:c32 width=95%}

### Выбранный ответ

Был выбран ответ: вариант, отмеченный на скриншоте подтверждения.

### Пояснение выбора

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

### Подтверждение прохождения

![Подтверждение прохождения задания 32](images/z32.png){#fig:z32 width=95%}

## Контрольное мероприятие 33

### Формулировка задания

![Формулировка задания 33](images/c33.png){#fig:c33 width=95%}

### Выбранный ответ

Был выбран ответ: вариант, отмеченный на скриншоте подтверждения.

### Пояснение выбора

Ответ выбран, потому что для обработки текстовых файлов важно правильно указать шаблон поиска и файл, в котором выполняется поиск.

### Подтверждение прохождения

![Подтверждение прохождения задания 33](images/z33.png){#fig:z33 width=95%}

## Контрольное мероприятие 34

### Формулировка задания

![Формулировка задания 34](images/c34.png){#fig:c34 width=95%}

### Выбранный ответ

Был выбран ответ: вариант, отмеченный на скриншоте подтверждения.

### Пояснение выбора

Выбор основан на применении команд поиска и фильтрации, которые позволяют находить нужные данные среди большого количества строк.

### Подтверждение прохождения

![Подтверждение прохождения задания 34](images/z34.png){#fig:z34 width=95%}

## Контрольное мероприятие 35

### Формулировка задания

![Формулировка задания 35](images/c35.png){#fig:c35 width=95%}

### Выбранный ответ

Был выбран ответ: вариант, отмеченный на скриншоте подтверждения.

### Пояснение выбора

Ответ выбран после анализа условий задания и проверки результата выполнения команды на платформе Stepik.

### Подтверждение прохождения

![Подтверждение прохождения задания 35](images/z35.png){#fig:z35 width=95%}

## Контрольное мероприятие 36

### Формулировка задания

![Формулировка задания 36](images/c36.png){#fig:c36 width=95%}

### Выбранный ответ

Был выбран ответ: вариант, отмеченный на скриншоте подтверждения.

### Пояснение выбора

Выбор сделан по итоговому результату выполнения задания: ответ соответствует проверке Stepik и подтверждён скриншотом прохождения.

### Подтверждение прохождения

![Подтверждение прохождения задания 36](images/z36.png){#fig:z36 width=95%}

# Сертификат о прохождении курса

После завершения всех этапов курса был получен сертификат о прохождении внешнего курса Stepik «Введение в Linux».

![Сертификат о прохождении курса](images/finl.png){#fig:finl width=95%}

# Выводы

В ходе выполнения третьего этапа внешнего курса Stepik «Введение в Linux» были изучены продвинутые темы работы в Linux: текстовые редакторы, bash-скрипты, переменные, условия, циклы, функции, поиск файлов и обработка текстовой информации. Все контрольные мероприятия были выполнены и зафиксированы в отчёте с помощью скриншотов и пояснений.

# Список литературы

1. Курс Stepik «Введение в Linux»: <https://stepik.org/course/73>
