Skip to content

Commit 0d8fc75

Browse files
committed
init
0 parents  commit 0d8fc75

13 files changed

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

0 commit comments

Comments
 (0)