|
| 1 | +[Вернуться к главной странице, списку всех уроков](README.md) |
| 2 | + |
| 3 | +# 1. Linux, Bash-скрипты и текстовые редакторы |
| 4 | + |
| 5 | +## Теоретическая часть |
| 6 | + |
| 7 | +### Вводная и основные термины |
| 8 | + |
| 9 | +IT — это работа с информацией: её хранение, изменение, извлечение пользы или распространение, а помогают нам в этом программы – это инструменты, которые принимают данные (вход), обрабатывают их и выдают результат (выход) |
| 10 | + |
| 11 | +Вот несколько примеров программ: |
| 12 | +- Калькулятор принимает числа, считает и выводит ответ |
| 13 | +- База данных принимает запрос на добавление данных и особенным способом записывает их на диск, а на другой запрос выдает в ответе данные |
| 14 | +- Веб-приложение (приложение, к которому можно отправлять запросы через интернет) принимает запрос на отображение страницы ВК и отдает нам страницу |
| 15 | + |
| 16 | +По своей сути все сайты, банки, игры — это набор таких маленьких приложений, которые каждое делают свою функцию (вам не нужно держать в голове всю картину их взаимодействия) |
| 17 | + |
| 18 | +Программы появляются в результате этапов: |
| 19 | + |
| 20 | +1. Анализ требований — бизнес говорит образно какая ему нужна программа, сайт или сервис |
| 21 | +2. Проектирование — архитектор проектирует, как всё будет работать |
| 22 | +3. Написание кода — разработчики создают программы |
| 23 | +4. Тестирование — тестировщики, еще называют их QA, проверяют, что все программы работают вместе как нужно |
| 24 | +5. Внедрение и поддержка — инженеры мониторинга смотрят, чтобы программы не ломались, инженеры SRE чинят программы в случае поломки |
| 25 | + |
| 26 | +DevOps способствует автоматизации с 3-го по 5-й этапов, что, в свою очередь, ускоряет и упрощает процесс создания и поддержки программ. О том, как именно это происходит и какие инструменты для этого используются, мы узнаем позже. Кроме того, DevOps улучшает взаимодействие между теми, кто проектирует, пишет код и тестирует программы |
| 27 | + |
| 28 | +### Подготовка места для запуска программ, Linux |
| 29 | + |
| 30 | +Сервера, на которых мы будем запускать программы, работают на ядре Linux. Это такая специальная программа, которую устанавливают на сервер в первую очередь. Она помогает нашим программам общаться с «железками» компьютера при помощи драйверов (программа, в которой описано, как общаться с тем или иным устройством). Например, она объясняет нашей программе, как записывать данные на диск или выводить картинку на экране |
| 31 | + |
| 32 | +Основные «железные» ресурсы сервера, с которыми работают наши программы: |
| 33 | +- Диск — это такая штука, на которую можно записывать и хранить информацию. А способ, которым данные хранятся, называется файловая система |
| 34 | +- Процессор — это как мозг у компьютера. Он обрабатывает информацию и управляет всем процессом. Принцип работы как у программ: мы даём ему задачу, он её решает и отдает нам решение |
| 35 | +- Оперативная память — это такая быстрая память, которая очищается, когда ты перезагружаешь сервер. Программы используют её, чтобы хранить информацию, с которой они работают прямо сейчас |
| 36 | + |
| 37 | +### Уроки для просмотра и конспектирования |
| 38 | + |
| 39 | +1. [Уроки с 3-го по 20-й](https://www.youtube.com/watch?list=PLg5SS_4L6LYuE4z-3BgLYGkZrs-cF4Tep) `4 часа` |
| 40 | +2. [Уроки с 3-го по 5-й](https://www.youtube.com/watch?list=PLg5SS_4L6LYsgy5qLYZtvoaV34zn5iKPe) `1 час` |
| 41 | + |
| 42 | +# Практическая часть |
| 43 | + |
| 44 | +### Начало работы в IT |
| 45 | + |
| 46 | +1. У вас должен быть ноутбук с Ubuntu или если у вас Windows, установите `WSL` и `Ubuntu` |
| 47 | +2. Установить [Visual Studio Code](https://code.visualstudio.com/Download) и запустить, посмотреть как выглядит. Эта программа нужна для редактирования файлов конфигурации или написания кода, в ней очень удобно работать если ты IT специалист |
| 48 | +3. Установить [Яндекс Браузер](https://browser.yandex.ru) — в этом браузере есть инструменты, которые упростят нам работу, например, исправление ошибок в выделенном тексте |
| 49 | +4. Установить и не трогать, они нам понадобятся в будущем: [Docker Desktop](https://www.docker.com/products/docker-desktop) и [Lens](https://k8slens.dev/download) |
| 50 | +5. Активно начать пользоваться ботом: [GigaChat](https://t.me/gigachat_bot) который ответит на любые вопросы (например спросите у него `Расскажи как ребенку, зачем DevOps нужен Kubernetes`) |
| 51 | +6. Зарегистрироваться на сайтах: |
| 52 | + - [GitHub](https://github.com) - Сайт, на котором множество разработчиков размещают бесплатно код своих программ или, например, размещен этот курс |
| 53 | + - [Habr](https://habr.com/ru/flows/admin) - Русскоязычный сайт с кучей статей по DevOps, разработке и автоматизации |
| 54 | + |
| 55 | +### Задание к уроку - сделать скриншоты или записать результат вывода комманд |
| 56 | + |
| 57 | +Знакомство с Linux и его терминалом — это то самое черное окно, в котором пишут хакеры и через которое ты можешь отдавать команды (что сделать) системе |
| 58 | + |
| 59 | +1. Что такое `sudo`, как используется? |
| 60 | +2. Как сделать так, чтобы при выполнении команды `sudo` у нас не спрашивался каждый раз пароль? |
| 61 | +3. Что такое systemd-сервис? |
| 62 | +4. Как проверить состояние systemd-сервиса? |
| 63 | +5. Что такое сокет? |
| 64 | +6. Какие есть kill-сигналы? |
| 65 | +7. Как завершить запущенный процесс в Linux? |
| 66 | +8. Что такое ядро Linux, из чего состоит? |
| 67 | +9. Что такое системные вызовы? |
| 68 | +10. Перейди в `/tmp` директорию. |
| 69 | +11. Вернитесь обратно в директорию, в которой были первоначально. |
| 70 | +12. Перейди в домашнюю директорию пользователя. |
| 71 | +13. Перейди в вышестоящую директорию. |
| 72 | +14. Перейди в корень (что такое корень?). |
| 73 | +15. Выполни команду `cd ~`, куда вы попали? |
| 74 | +16. Выведи на экран полный путь к директории, где ты сейчас находишься. |
| 75 | +17. Создай два файла с именами `config` и `binary`. |
| 76 | +18. Создай директорию `app`. |
| 77 | +19. Перемести файлы `config` и `binary` в директорию `app`. |
| 78 | +20. Создай в директории `app` подпапки `temp/info/users` одной командой. |
| 79 | +21. Вернись на директорию выше и удали директорию `app`. |
| 80 | +22. Объяснить, какие данные будут выведены на экран в команде `top`. |
| 81 | +23. Какой командой можно посмотреть использование оперативной памяти? |
| 82 | +24. Посмотреть, сколько места занято на диске `/` и насколько он нагружен. |
| 83 | +25. Выполните команду `uptime`, что такое `load average`? |
| 84 | +26. Какие основные директории есть в `/` «корне»? |
| 85 | +27. Чем отличается директория `/proc` от остальных директорий? |
| 86 | +28. В чём разница между файлами JSON и YAML? |
| 87 | +29. Что такое разметка Markdown и для чего она используется? |
| 88 | +30. Как заменить одно слово на другое в файле? |
| 89 | + |
| 90 | +Установка и обновление программ в Linux |
| 91 | + |
| 92 | +1. Как обновить уже установленные программы с помощью apt? |
| 93 | +2. Установить `git`, `htop`, `curl`, `nano`, `jq` и проверить работоспособность каждой из них, запустив ее из терминала |
| 94 | + |
| 95 | +Создание скрипта для перезаписи времени и даты в файле на текущее каждую минуту |
| 96 | + |
| 97 | +Создайте скрипт, который будет записывать в файл `current_time.txt` текущую дату и время. Запускайте скрипт каждую 1 минуту с помощью crontab |
| 98 | + |
| 99 | +Работа с фоновыми процессами (демонами) в linux |
| 100 | + |
| 101 | +1. Выполните команду `systemctl list-units --type=service` и выберите любой сервис (они все работают в фоне), узнайте, что он делает |
| 102 | +2. Найдите информацию о том, что такое SSH и какую роль играют клиент и сервер |
| 103 | +3. Установите OpenSSH Сервер себе на компьютер |
| 104 | +4. После установки убедитесь, что сервер работает в фоне, и перезапустите его через systemctl команду |
| 105 | + |
| 106 | +Текстовые редакторы, создание, просмотр и редактирование файла |
| 107 | + |
| 108 | +1. Создайте файл `text.txt`. Запишите в него `Hello world` с помощью команды `nano` |
| 109 | +2. Вывести все имена файлов из папки `/etc`, в содержимом которых есть имя вашего пользователя |
| 110 | +3. Как вывести количество строк, которые чаще всего повторяются в файле? |
| 111 | +4. Как в большом текстовом файле вывести первые 10 строк или последние 10? |
| 112 | + |
| 113 | +Bash-скрипты — текстовые файлы с набором команд, которые автоматически выполняются одна за другой в терминале. Это помогает упростить рутинные задачи, такие как копирование файлов или запуск программ |
| 114 | + |
| 115 | +1. Создать скрипт, который: |
| 116 | + 1. Может запускать только текущий пользователь |
| 117 | + 2. Установит через `apt` (только если еще не установлены): |
| 118 | + - `curl` — выполнять HTTP-запросы |
| 119 | + - `git` — система для контроля за версиями, может заливать их в публичный репозиторий |
| 120 | + - `jq` — для работы с файлами JSON, чтобы удобно искать в них или отображать |
0 commit comments