Терминал с нуля, потом свой сервер.
Для разработчиков, которые копируют команды и обходят vim. 171 короткий шаг от pwd до своих серверов в проде и их защиты.
Вы в списке, коллега. Напишем на почту, когда LinuxPath откроется.
01. Перемещение: pwd, ls, cd
Блок A, бесплатно
Найдите упавший релиз и создайте внутри него каталог inspected.
linuxpath:~$ cd shop/releases linuxpath:~/shop/releases$ ls 2026-10-28 2026-10-29 2026-10-30 linuxpath:~/shop/releases$ ls -a 2026-10-29 . .. .failed .revision release.txt linuxpath:~/shop/releases$ cd 2026-10-29 linuxpath:~/shop/releases/2026-10-29$ mkdir inspected linuxpath:~/shop/releases/2026-10-29$
Что смотрит «Проверить»
- [ ]inspected лежит в упавшем релизе
- [ ]больше нигде нет inspected
- [ ]владелец вы, а не root
- [ ]метка .failed на месте
Часть 1 во вкладке браузера. Часть 2 на вашем сервере.
Каждый шаг это одна тема и одна сессия на 10-15 минут. Сначала читаете, потом делаете задание в настоящем shell.
00 - 70
Во вкладке браузера
Эмулятор поднимает Alpine Linux из сохранённого снимка, внутри GNU grep, sed, awk, vim и tmux, поэтому флаги ведут себя так же, как потом на Debian. Setup-скрипт готовит задание: файлы, которые надо найти, сломанные права, скрипт, который падает. Вы чините и жмёте «Проверить».
71 - 170
На сервере, которым управляете вы
Небольшой VPS или ВМ на ноутбуке через UTM, VirtualBox или WSL. Шаг даёт одну команду. Она запускает на сервере check-скрипт и печатает подписанный токен, а сайт засчитывает шаг, когда токен вернулся.
Для практики нужна клавиатура. С телефона можно читать каждый шаг, терминал там выключен.
Двадцать один блок, от A до U.
Полоса это весь курс, по сегменту на блок, ширина по числу шагов. Выберите блок, чтобы увидеть темы.
- Бесплатно, 00 - 20
- В браузере, 00 - 70
- На вашем сервере, 71 - 108
- Уровень middle, 109 - 156
- Защита с Kali, 157 - 170
В браузере
A
00 - 07
8 шагов
- Терминал, shell, промпт
- pwd, ls, cd
- Пути
- man и --help
- История, Tab, Ctrl+C, Ctrl+D, Ctrl+L, Ctrl+R
B
08 - 20
13 шагов
- mkdir, touch, cp, mv, rm
- cat, less, head, tail
- Маски * и ?
- find
- Скрытые файлы
- Ссылки
- tar, gzip
- du, df
C
21 - 32
12 шагов
- stdin, stdout, stderr
- Редиректы
- Pipes
- grep
- sort, uniq, wc, cut, tr
- sed
- awk
- xargs
- tee
- diff
D
33 - 43
11 шагов
- Выжить и выйти
- Режимы
- Движение
- Правка
- Поиск и замена
- Визуальный режим
- Регистры
- Макросы
- Буферы и окна
- .vimrc
E
44 - 50
7 шагов
- chmod, chown
- sudo, su
- /etc/passwd, группы
- umask
- SUID
- Почему «Permission denied»
F
51 - 59
9 шагов
- ps, top, kill, сигналы
- fg, bg, jobs, nohup
- Переменные, PATH
- .bashrc и .profile
G
60 - 70
11 шагов
- Shebang, переменные
- if, case
- Циклы
- Функции
- Аргументы
- Коды выхода
- set -euo pipefail
- cron
- Свой CLI-инструмент
Защита с Kali Linux
T
157 - 163
7 шагов
- Kali в ВМ и правило: сканируем только своё
- nmap по своему серверу
- Lynis
- Greenbone
- nikto и testssl.sh по своему сайту
- gitleaks по своим репо
- Кейс: отчёт аудита и список правок
U
164 - 170
7 шагов
- Целостность файлов через AIDE
- Suricata
- rkhunter и chkrootkit
- Атака в логах
- Ответ на инцидент
- Хронология файлов и входов
- Финальный проект: отстоять сервер в инциденте
На своём сервере
H
71 - 77
7 шагов
- Берём VPS
- ssh-ключи
- ssh config
- scp, rsync
- tmux
I
78 - 84
7 шагов
- apt
- systemctl, journalctl
- Свой unit
- Таймеры вместо cron
- Что падает при загрузке
J
85 - 92
8 шагов
- ip, ss
- curl
- DNS
- Порты, /etc/hosts
- ufw
- lsof
- Почему не коннектится
K
93 - 98
6 шагов
- lsblk, mount, fstab
- Логи в /var/log
- logrotate
- Бэкап по cron
- Место кончилось
L
99 - 108
10 шагов
- nginx
- Домен и TLS через certbot
- Docker
- docker compose
- Деплой своего приложения
- Env и секреты
- Простой мониторинг и алерт
Уровень middle, на своём сервере
M
109 - 115
7 шагов
- Load average и vmstat
- Память, swap и OOM killer
- Диск под нагрузкой: iostat, iotop
- strace
- /proc, лимиты, cgroups
- perf top
- Кейс: сервер тормозит
N
116 - 122
7 шагов
- ip route и шлюзы
- tcpdump
- nftables
- Отладка TLS через openssl s_client
- Балансировка через upstream в nginx
- sysctl и conntrack
- Кейс: 502 через раз
O
123 - 127
5 шагов
- LVM
- Расширить диск на живом сервере
- RAID на mdadm
- ext4, xfs и inodes
- Кейс: том кончился ночью
P
128 - 134
7 шагов
- Закрываем sshd
- fail2ban
- sudoers и минимум прав
- unattended-upgrades
- AppArmor
- auditd
- Кейс: аудит чужого сервера
Q
135 - 141
7 шагов
- Inventory и ad-hoc команды
- Playbook
- Шаблоны, переменные, handlers
- Роли и идемпотентность
- ansible-vault
- --check и --diff
- Кейс: сервер с нуля одной командой
R
142 - 147
6 шагов
- node_exporter и Prometheus
- Grafana
- Alertmanager
- Логи в одном месте через Loki
- Runbook и постмортем
- Кейс: найти инцидент по графикам
S
148 - 156
9 шагов
- Образы multi-stage
- Деплой из GitHub Actions по ssh
- Blue/green деплой
- Откат одной командой
- k3s: pod и deployment
- Service и ingress
- ConfigMap, Secret, probes
- Разобрать падающий pod
- Финальный проект: неделя дежурства
Каждое задание проверяет скрипт.
Каждое задание заканчивается check-скриптом. Он смотрит на состояние машины: файл, его владельца, биты прав, код выхода вашего скрипта. «Сбросить» возвращает машину к началу задания.
На части уроков по vim редактор ещё пишет нажатые клавиши, и проверка видит, что вы использовали dd или ciw, а не перепечатали строку.
. /usr/local/lib/lp-check.sh
d=/home/learner/shop
r="$d/releases/2026-10-29"
lp_check "inspected лежит в упавшем релизе" test -d "$r/inspected"
lp_check "больше нигде нет inspected" bash -c "test \"\$(find '$d' -name inspected | wc -l)\" -eq 1"
lp_check "владелец вы, а не root" bash -c "test \"\$(stat -c %U '$r/inspected')\" = learner"
lp_check "метка .failed на месте" test -f "$r/.failed"
В каждом шаге одни и те же десять частей.
Вот шаг 01, pwd, ls и cd, по частям.
-
1
Знакомый момент
Вы набираете
cd var/logи получаетеNo such file or directory. Путь верный; вы стоите не в том каталоге, где думаете. -
2
Простыми словами
Shell всегда стоит в одном каталоге дерева, в рабочем каталоге.
-
3
Как устроено
Схема дерева от
/доshop, на нейpwd,lsиcd. -
4
Команда и флаги
ls -a,ls -l,ls -lt,cd ..,cd -, и когда что нужно. -
5
Разбор на примере
Целая сессия в
~/shopс тем, что печатает терминал. -
6
Типичные ошибки
-bash: cd..: command not found. Междуcdи..нужен пробел. -
7
Практика
Найдите упавший релиз и создайте внутри него каталог
inspected. -
8
Боевой кейс
Вы заходите на сервер с Debian, чтобы понять, почему nginx отдаёт ошибки.
-
9
Prove it
Скажите вслух без шпаргалки, почему
lsне показал.failed. Потом повторите задание без подсказок. -
10
Шпаргалка
cd -назад в предыдущий каталог, и ещё восемь строк.
Подсказки открываются по одной, лесенкой от 0 до 5. Практика трёх видов: собрать с пустого промпта, починить сломанное, расширить рабочий скрипт.
Вопросы до записи.
Нужно что-то ставить?
Для части 1 нет. Шаги 0-70 идут в браузере на компьютере. Для части 2 нужен сервер: небольшой VPS или ВМ на своей машине через UTM, VirtualBox или WSL. Шаг 71 разбирает оба варианта.
Какой уровень я получу?
Шаги 0-108 дают крепкого джуна: вы админите свой сервер и деплоите на него. Шаги 109-156 доводят до middle: вы находите, почему сервер тормозит, закрываете его, управляете машинами через Ansible, ставите мониторинг и алерты, запускаете приложения на k3s. Шаги 157-170 учат защите с Kali Linux: вы проверяете свой сервер, ловите вторжение и отвечаете на него. Атак на чужие системы в курсе нет. Для частей 3 и 4 нужен VPS на 4 ГБ памяти и вторая машина для Ansible, для части 4 ещё ВМ с Kali.
Что бесплатно?
Шаги 0-20, блоки A и B: от первой команды до файлов, find, ссылок, tar и места на диске. Остальное открывается с платным планом.
Сколько будет стоить?
Годовая подписка или разовый lifetime. Цены объявим на старте.
Как вы проверяете мой собственный сервер?
Шаг даёт одну команду, которую вы запускаете на сервере. Она скачивает check-скрипт, запускает его и печатает подписанный токен, привязанный к вашему аккаунту и шагу. Сайт принимает токен и засчитывает шаг.
Можно проходить с телефона?
Читать каждый шаг с телефона можно. Терминалу нужна клавиатура, поэтому практика там выключена.
Я уже знаю пару команд. Не слишком просто?
Блок A начинается с нуля, а блоки A и B бесплатные. Пройдите их и решите до оплаты.
На каком языке курс?
Английский и русский. В обеих версиях одни и те же шаги и одни и те же секции.
Когда запуск?
Курс в работе, даты пока нет. Оставьте почту в списке ожидания, и мы напишем, когда он откроется.
Узнайте первым, когда LinuxPath откроется.
Оставьте почту, и мы пришлём одно письмо на старте. Шаги 0-20 будут бесплатными.
Вы в списке, коллега. Напишем на почту, когда LinuxPath откроется.