Skip to content

Commit 65c68b6

Browse files
committed
Initial commit
0 parents  commit 65c68b6

13 files changed

+728
-0
lines changed
Lines changed: 120 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,120 @@
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

Comments
 (0)