-- ## **Курс DevOps для самостоятельного изучения (1 занятие в неделю = 1 блок заданий)** ### **Особенности формата:** - ✅ Нет созвонов — только асинхронная коммуникация - ✅ Четкие инструкции "что делать", но не "как делать" - ✅ Обязательная документация (вместо устных ответов) - ✅ Проверка по чек-листам (студент сам себя проверяет) - ✅ Telegram-бот для напоминаний и приёмки заданий (опционально) --- ## **Структура одного занятия (блока)** Каждое занятие строится по единому шаблону: ``` 1. ТЕОРИЯ (15-20 мин чтения) - краткий конспект 2. ПРАКТИКА (1-2 часа) - пошаговые задания 3. ПРОВЕРКА СЕБЯ (10 мин) - чек-лист 4. ЗАДАНИЕ НА НЕДЕЛЮ (проект) - то, что нужно сдать 5. РЕФЛЕКСИЯ - вопросы для самоанализа ``` --- ## **Модуль 1: Linux и веб-сервер (4 недели)** ### **Неделя 1: Знакомство с сервером и базовые команды** **Цель:** Подключиться к серверу, понять структуру файловой системы, научиться перемещаться и смотреть файлы. #### **ТЕОРИЯ (кратко):** #### Базовые команды Linux ##### Навигация - `pwd` - где я сейчас? - `ls` - что здесь есть? - `ls -la` - показать ВСЁ (включая скрытые файлы) с деталями - `cd /путь/к/папке` - перейти в папку - `cd ..` - подняться на уровень выше - `cd ~` - перейти в домашнюю папку ##### Работа с файлами - `cat file` - показать содержимое - `less file` - показать с прокруткой (q - выход) - `head -n 5 file` - первые 5 строк - `tail -n 5 file` - последние 5 строк - `tail -f file` - следить за изменениями (Ctrl+C - выход) ##### Права доступа **Команды** - ``chown www-data:data /var/www/html`` команда смена владельца папки - ``chmod +x file`` смена прав, добавить права на запуск - ``chmod 755 file`` добавить права по маске **Пояснение за битовую маску** Как считаем права , допустим мы хотим чтобы **владелец** файла имел полные права а те кто принадлежит **группе** чтение и выполнение, также все **остальные** пользователи вне группы чтение и выполнение ниже видно как складывается битовая маска из разрешений, мы можем ее перевести в буквенную или цифровую маску, цифры идут так * владелец файла -его права * группа пользователей - их права * все остальные - их права Файл может быть создан одним пользователь но разрешен для группы. ```bash #rwx rwx rwx #Owner Group Other #111 101 101 # из двоичной системы приводим к 10ичной # 7 5 5 #либо оставляем буквенную маску #rwxr-xr-x ``` Вот так выглядит папка в терминале (поля слева на право) * файловый дескриптор(inode) * битовая маска прав на файл * владелец файла * группа - которой разрешен доступ * размер файла в байтах * Дата создания или изменения файла, настраивается что именно * имя файла ```console root@ubuntu22-1cpu-2ram:~# ls -li /etc/nginx total 64 1043225 drwxr-xr-x 2 root root 4096 Feb 9 14:09 conf.d 1043226 -rw-r--r-- 1 root root 1125 May 30 2023 fastcgi.conf 1043227 -rw-r--r-- 1 root root 1055 May 30 2023 fastcgi_params 1043228 -rw-r--r-- 1 root root 2837 May 30 2023 koi-utf 1043229 -rw-r--r-- 1 root root 2223 May 30 2023 koi-win 1043230 -rw-r--r-- 1 root root 3957 May 30 2023 mime.types 1043231 drwxr-xr-x 2 root root 4096 Feb 9 14:09 modules-available 1043232 drwxr-xr-x 2 root root 4096 Mar 3 09:47 modules-enabled 1043233 -rw-r--r-- 1 root root 1447 May 30 2023 nginx.conf 1043234 -rw-r--r-- 1 root root 180 May 30 2023 proxy_params 1043235 -rw-r--r-- 1 root root 636 May 30 2023 scgi_params 1043236 drwxr-xr-x 2 root root 4096 Mar 3 09:47 sites-available 1043238 drwxr-xr-x 2 root root 4096 Mar 3 09:47 sites-enabled 1043239 drwxr-xr-x 2 root root 4096 Mar 3 09:47 snippets 1043242 -rw-r--r-- 1 root root 664 May 30 2023 uwsgi_params 1043243 -rw-r--r-- 1 root root 3071 May 30 2023 win-utf ``` #### **ПРАКТИКА:** **Задание 1.1: Исследование сервера** ```bash # Подключитесь к серверу по SSH (данные я выдал отдельно) # 1. Где я? pwd # 2. Кто я? whoami # 3. Что за система? cat /etc/os-release # 4. Сколько памяти? free -h ) # 5. Сколько места на дисках? df -h # 6. Какой процессор? lscpu ``` **Задание 1.2: Путешествие по файловой системе** ```bash # Зайдите в каждую из папок, посмотрите, что там: cd / ls -la cd /etc ls -la | head -20 cd /var ls -la cd /var/log ls -la cd /tmp ls -la cd /home ls -la ``` **Задание 1.3: Найдите ответы на вопросы:** 1. Какая версия ядра Linux? 2. Сколько времени работает сервер? 3. Кто ещё есть в системе (кроме вас)? 4. Какие сетевые интерфейсы есть? **Подсказки:** используйте `uname -a`, `uptime`, `cat /etc/passwd`, `ip a` #### **ПРОВЕРКА СЕБЯ (чек-лист):** - [ ] Я могу подключиться к серверу по SSH - [ ] Я знаю, в какой папке нахожусь после подключения - [ ] Я могу посмотреть список файлов в папке - [ ] Я могу отличить файл от папки в выводе `ls -l` - [ ] Я знаю, где хранятся логи - [ ] Я знаю, где хранятся конфиги - [ ] Я могу определить версию ОС - [ ] Я могу посмотреть свободную память и место на диске #### **ЗАДАНИЕ НА НЕДЕЛЮ (сдать до следующего "занятия"):** Создайте **первый артефакт** — файл `week1-report.md` со следующим содержимым: ````markdown # Отчёт по неделе 1 ## Выполненные команды (вставьте историю команд: `history`) ## Структура файловой системы моего сервера (нарисуйте текстом или схемой, что где лежит) ``` / ├── etc/ - здесь лежат конфиги │ └── ... ├── var/ │ └── log/ - здесь логи └── ... ``` ## Найденные ответы 1. Версия ядра: ... 2. Время работы: ... 3. Пользователи: ... 4. Сетевые интерфейсы: ... ## Что было непонятно / сложно (честно пишите, с чем столкнулись) ## Что нового узнал (3-5 пунктов) ```` **Критерии приёмки:** Файл прислан в Telegram, всё заполнено, вопросы есть (или написано "всё понятно").