Если цель — войти в Linux-администрирование с нуля, шесть месяцев достаточно, чтобы собрать крепкую базу и выйти на уровень уверенного junior-специалиста. Главное — не учить Linux «по темам», а идти по рабочему маршруту: от терминала и файловой системы к сервисам, сети, безопасности, автоматизации и реальной практике на сервере. Этот план проверен на десятках новичков: он не обещает чудес, но даёт именно те навыки, которые спрашивают на собеседованиях и которые нужны в первый рабочий день.
Что даст этот план
Через 6 месяцев у вас должен быть не просто набор знаний, а понятный рабочий минимум:
- уверенная работа в терминале;
- понимание структуры Linux-системы;
- навыки установки и настройки сервера;
- базовая диагностика проблем;
- работа с пользователями, правами, пакетами, дисками и процессами;
- понимание сети, SSH, firewall, логов, бэкапов;
- первые шаги в Bash и Python для автоматизации;
- готовый домашний стенд и портфолио из практических задач.
Для старта подойдут официальные материалы Ubuntu Server и учебные траектории Linux Foundation. У Ubuntu документация разбита на понятные разделы: tutorial (пошаговые руководства), how-to (решение конкретных задач), reference (справочник команд) и explanation (объяснение концепций). Linux Foundation предлагает курсы вроде Introduction to Linux и Linux System Administration Essentials — они хорошо структурированы и дают системный взгляд, а не разрозненные факты. Но помните: никакая документация не заменит собственного стенда и часов, проведённых в терминале.
Как учиться, чтобы не бросить через две недели
Самая частая ошибка новичка — читать и смотреть, но не трогать руками. Linux запоминается только через практику. Я видел, как люди за месяц проходили три курса и всё равно не могли найти файл в /var/log. Потому что знание без действия — это иллюзия. Нужно сразу применять каждую команду, ломать и чинить.
Правило 70/30
- 70% времени — практика в терминале.
- 30% — чтение, заметки, разбор ошибок.
Практика — это не бездумное повторение команд из статьи. Это решение задач: «найди все файлы, изменённые за последние сутки», «почему сервис не стартует, если в логах ошибка прав доступа?», «настрой firewall так, чтобы пускать только SSH и HTTP». Именно такие мини-кейсы формируют инженерное мышление.
Что нужно заранее
- ноутбук или ПК;
- виртуализация: VirtualBox, VMware Player или Hyper-V;
- образ Ubuntu Server LTS (рекомендую последнюю стабильную LTS-версию, например 22.04 или 24.04 — в реальной работе LTS ценят за предсказуемость);
- блокнот или заметки в Obsidian/Notion;
- отдельный Git-репозиторий под конспекты и команды.
Git-репозиторий для заметок — это не просто хранилище. Это ваша база знаний, которая останется с вами на годы. Записывайте туда не только команды, но и контекст: что делали, какая ошибка возникла, как исправили. Через месяц вы удивитесь, насколько это ускоряет повторение.
Домашний стенд для практики
Минимальный набор:
- 1 виртуальная машина Ubuntu Server;
- 1 дополнительная VM для тестов (например, чтобы проверять сетевые доступы или имитировать клиента);
- отдельный пользователь с sudo;
- SSH-доступ;
- снапшоты перед каждым крупным изменением.
Если есть старый ПК или мини-сервер — отлично, но виртуалки вполне хватит для старта. Снапшоты — ваша страховка. Перед установкой нового пакета, изменением конфига или экспериментом с firewall всегда делайте снимок состояния виртуальной машины. Это позволит за минуту откатиться, если что-то пойдёт не так, и не переустанавливать систему с нуля.
План на 6 месяцев по месяцам
Месяц 1. База Linux и терминал
Задача первого месяца — перестать бояться консоли и понять, как устроена система. Многие новички думают, что терминал — это что-то архаичное, но именно в нём происходит вся настоящая работа администратора. GUI на сервере — редкость, а часто и вовсе отсутствует.
Что изучить
- структура каталогов Linux (зачем нужны /etc, /var, /usr, /bin, /opt и почему нельзя просто сваливать всё в домашнюю папку);
- навигация в терминале;
- команды для файлов и папок;
- просмотр содержимого файлов;
- права доступа (rwx для владельца, группы и остальных — это база, без которой вы не поймёте, почему возникает Permission denied);
- ввод-вывод, перенаправление, пайпы (конвейеры — одна из самых мощных концепций Linux);
- справка man, —help, info.
Команды, которые нужно довести до автоматизма
pwdlscdcatlessheadtailcpmvrmmkdirtouchfindgrepchmodchownpstop
Не просто выучите их названия, а поймите, какие ключи чаще всего нужны. Например, ls -la — показывать скрытые файлы и подробную информацию, grep -r — рекурсивный поиск, find -mtime -1 — файлы, изменённые за последние сутки. И обязательно читайте man-страницы: man find сначала пугает объёмом, но через пару недель вы начнёте быстро находить нужный параметр.
Практика на неделе
- создать структуру каталогов проекта (например, /opt/myproject/{bin,etc,logs,data});
- найти файлы по имени, размеру и дате;
- отфильтровать строки в логах через
grep(возьмите /var/log/syslog и найдите все записи с ошибками); - настроить права на файл и каталог (попробуйте рекурсивно изменить владельца и маску);
- посмотреть процессы и найти «тяжёлую» задачу (используйте
topилиps aux --sort=-%mem | head).
Что должно получиться к концу месяца
Вы должны уметь:
- ориентироваться в
/etc,/var,/home,/usr,/bin; - читать документацию к командам (man и —help — ваши главные помощники);
- не путаться в правах
rwx(помните, что для каталога x означает возможность зайти внутрь); - понимать разницу между пользователем и root (и почему не стоит сидеть под root без необходимости).
Месяц 2. Установка системы, пакеты и службы
Теперь задача — научиться ставить и обслуживать систему как администратор. Вы переходите от роли пользователя к роли того, кто настраивает среду для других.
Что изучить
- установка Ubuntu Server (разберитесь с этапами: разметка диска, выбор пакетов, настройка сети);
- первая настройка после установки (сетевые интерфейсы, hostname, временная зона);
- пользователи и группы (как добавлять, удалять, блокировать, менять группы);
- sudo (настройка прав через /etc/sudoers с помощью visudo — ни в коем случае не редактируйте этот файл напрямую, можно потерять доступ);
- менеджер пакетов
apt; - обновления системы (разница между apt upgrade и apt full-upgrade);
- службы
systemd(понимание unit-файлов, таймеров, зависимостей); - работа с журналами (journalctl — это не просто просмотр логов, а мощный инструмент фильтрации по времени, сервису, приоритету).
Документация Ubuntu Server разделяет обучение на tutorial для старта, how-to для конкретных задач и reference для справки по командам и инструментам. Это удобно: когда нужно быстро настроить службу, идёшь в how-to, а когда хочешь понять глубинный смысл — в explanation.
Практические задачи
- установить Ubuntu Server в виртуальной машине;
- создать обычного пользователя и выдать ему sudo;
- обновить систему (сначала apt update, потом apt upgrade);
- установить
nginx,openssh-server,htop; - запустить, остановить и перезапустить службу (проверьте, что после перезагрузки сервис автоматически поднимается, если нужно — включите автозапуск через systemctl enable);
- посмотреть статус сервиса (обратите внимание на Active: active (running) и на последние строки лога);
- найти ошибки в
journalctl(например, journalctl -u nginx —since today).
Полезные команды
apt updateapt upgradeapt installsystemctl statussystemctl enablesystemctl restartjournalctl -u имя_сервиса
Типовые ошибки новичков
- не делать снапшот перед обновлением (а потом система не грузится, и приходится всё переустанавливать);
- ставить пакеты «наугад» (лучше сначала прочитать, что делает пакет, и не ставить всё подряд — это захламляет систему и создаёт конфликты);
- не проверять статус службы после запуска (systemctl status показывает не только active, но и ошибки в последних строках);
- игнорировать логи (journalctl -xe — первая команда при любой непонятной ситуации).
Месяц 3. Файловая система, диски, процессы и сеть
На этом этапе вы начинаете понимать, что администрирование — это не только команды, но и связь между диском, памятью, процессами и сетью. Система — единый организм, и проблемы в одном месте часто проявляются в другом.
Что изучить
- файловые системы и монтирование (ext4, xfs, монтирование через /etc/fstab);
- разделы диска (lsblk, fdisk, parted — хотя бы базово);
- свободное место и inode (бывает, что место на диске есть, а файлы не создаются — закончились inode; проверяется df -i);
- процессы, сигналы, приоритеты (kill, nice, renice);
- память и swap (не надо сразу отключать swap, он спасает при нехватке памяти, но если сервер постоянно свопит — нужно разбираться с утечками);
- базовая диагностика сети (стек TCP/IP, модель OSI на практике);
- DNS, IP, маршрут, порты.
Практика
- посмотреть разметку диска (lsblk, fdisk -l);
- смонтировать дополнительный виртуальный диск (создайте раздел, отформатируйте, добавьте в fstab для автоматического монтирования);
- проверить занятость места (df -h, du -sh /var/log);
- найти «зависший» процесс и завершить его (kill, kill -9 только если не помогает обычный);
- проверить открытые порты (ss -tulpn — ваш основной инструмент, netstat устарел);
- протестировать доступность хоста (ping, но помните, что ICMP могут блокировать, поэтому traceroute и telnet/curl на порт тоже нужны).
Команды для закрепления
df -hdu -shlsblkblkidmountumountfree -huptimess -tulpnip aip rpingtraceroutedignslookup
Важный нюанс
Понимание сети — это не заучивание команд, а умение ответить на три вопроса:
- есть ли IP-адрес (ip a);
- есть ли маршрут (ip r, проверка шлюза по умолчанию);
- отвечает ли удалённый сервис (telnet ip порт, curl -v).
Если один из уровней ломается, искать проблему нужно по цепочке, а не хаотично. Сначала проверьте физику/виртуальный интерфейс, потом IP, потом шлюз, потом DNS, потом порт. Такой подход сэкономит вам часы в будущем.
Месяц 4. SSH, firewall, безопасность и бэкапы
Когда базовые вещи уже понятны, пора учиться защищать сервер и не терять данные. Безопасность — это не набор разовых действий, а привычка.
Что изучить
- SSH-ключи (генерируем ssh-keygen -t ed25519, копируем публичный ключ на сервер через ssh-copy-id);
- запрет входа под root (в /etc/ssh/sshd_config PermitRootLogin no);
- настройка firewall (ufw — простой фронтенд для iptables, начните с ufw allow 22/tcp и ufw enable);
- принципы минимальных прав (пользователи должны иметь доступ только к тому, что им нужно для работы);
- резервное копирование (tar, rsync, снапшоты виртуальной машины — разные уровни);
- восстановление из бэкапа (обязательно проверяйте, что бэкап читается и восстанавливается, иначе это просто мусор);
- основы безопасности Linux (обновления, отключение ненужных сервисов, сложные пароли или ключи).
Практика
- подключиться к серверу по SSH-ключу;
- отключить парольный вход, если стенд уже готов (PasswordAuthentication no);
- открыть только нужные порты (например, 22, 80, 443);
- ограничить доступ к сервису (например, ufw allow from 192.168.1.0/24 to any port 22);
- сделать архив конфигурации (tar czf backup-etc-$(date +%F).tar.gz /etc);
- восстановить файл из копии (потренируйтесь на тестовом файле).
Что должно стать привычкой
- перед изменениями — бэкап;
- перед бэкапом — проверка, что копия читается (хотя бы tar tzf архив);
- после настройки доступа — тест входа со второго окна (не закрывайте текущую SSH-сессию, пока не убедитесь, что новая работает);
- после изменения firewall — проверка SSH, чтобы не отрезать себе доступ (особенно если правите удалённо).
Чек-лист по безопасности
- [ ] root-вход по SSH отключён;
- [ ] используются ключи вместо паролей;
- [ ] открыты только нужные порты;
- [ ] обновления ставятся регулярно (настройте unattended-upgrades для критических патчей);
- [ ] есть резервная копия конфигов;
- [ ] доступы пользователей пересмотрены (нет лишних sudo-прав, заблокированы неиспользуемые учётки);
- [ ] логины и пароли не хранятся в открытом виде (никаких паролей в скриптах или world-readable файлах).
Месяц 5. Bash и Python для автоматизации
Администратор, который всё делает руками, быстро упирается в потолок. На этом этапе нужно научиться автоматизировать рутину. Даже простой скрипт, который проверяет место на диске и пишет предупреждение, может спасти от аварии в пятницу вечером.
Что изучить в Bash
- переменные;
- условия (if, test, [[ ]]);
- циклы (for, while);
- функции;
- аргументы скрипта ($1, $@, $#);
- код возврата ($? и как его использовать);
- работа с файлами и логами (чтение, запись, парсинг);
- cron (crontab -e, синтаксис расписания, не забывайте про PATH и логирование вывода).
Что изучить в Python
- типы данных;
- условия и циклы;
- работа с файлами;
- модули (os, sys, shutil — ваши основные инструменты для системных задач);
- обработка ошибок (try/except, чтобы скрипт не падал молча);
- requests и subprocess на базовом уровне (чтобы дёргать API или вызывать внешние команды).
Практические мини-проекты
- скрипт проверки свободного места на диске (если меньше 10% — отправлять письмо или писать в лог);
- скрипт резервного копирования каталога (с датой в имени и проверкой целостности);
- скрипт поиска ошибок в логах (grep по шаблону, подсчёт количества);
- автосбор информации о системе (CPU, память, диски, аптайм) и вывод в читаемом виде;
- простой парсер конфигурационного файла (например, извлечь все строки с определённым параметром).
Хорошая цель месяца
Сделать хотя бы 3 утилиты, которыми вы реально будете пользоваться каждый день. Это полезнее, чем десяток учебных примеров без практики. Например, скрипт, который выводит сводку по системе при входе по SSH, или автоматически архивирует логи раз в неделю.
Месяц 6. Собираем систему знаний в рабочий сценарий
Последний месяц нужен, чтобы превратить разрозненные навыки в админский маршрут. Вы должны уметь не просто выполнять отдельные команды, а решать задачи целиком: от постановки до документирования.
Что изучить
- диагностика инцидентов (методика: воспроизвести проблему, собрать логи, проверить зависимости, откатить изменения);
- мониторинг (простые инструменты: htop, iotop, df, sar, можно настроить простой сбор метрик);
- основы веб-сервера (nginx или Apache — выберите один и разберитесь с виртуальными хостами, location, проксированием);
- базовая работа с Apache или Nginx (установка, проверка конфигурации nginx -t или apachectl configtest, логи);
- системные логи (/var/log/syslog, /var/log/auth.log — понимать, что куда пишется);
- документация и повторяемые процедуры (записывайте свои действия так, чтобы через месяц вы сами могли их повторить).
Практика
- поднять веб-сервер (nginx, отдать статический сайт или простой прокси);
- проверить логи доступа и ошибок (tail -f /var/log/nginx/access.log);
- настроить автозапуск (systemctl enable nginx);
- изменить конфиг и проверить синтаксис (nginx -t);
- сделать бэкап конфигурации (просто скопировать /etc/nginx в архив);
- описать порядок восстановления сервиса (пошаговая инструкция для себя).
Итоговый учебный сценарий
Смоделируйте мини-проект:
- сервер Ubuntu;
- SSH-доступ по ключу;
- веб-сервис (статический сайт или простой API);
- firewall (открыты только 22, 80, 443);
- резервное копирование (конфиги и данные);
- мониторинг (хотя бы скрипт проверки доступности сервиса);
- заметки с инструкцией по восстановлению.
Это уже похоже на реальную админскую задачу, а не на абстрактное обучение. Такой проект можно смело показывать на собеседовании.
Что учить в каком порядке
| Этап | Фокус | Результат |
|---|---|---|
| 1 месяц | Терминал, файлы, права | Уверенная навигация и базовые команды |
| 2 месяц | Установка, пакеты, systemd | Умение обслуживать сервер |
| 3 месяц | Диски, процессы, сеть | Понимание, где искать проблемы |
| 4 месяц | SSH, firewall, бэкапы | Базовая безопасность |
| 5 месяц | Bash, Python | Автоматизация рутины |
| 6 месяц | Веб-сервер, мониторинг, практика | Готовность к реальной работе |
Как проверять, что вы реально прогрессируете
Не путайте «прочитал» с «научился». Прогресс проверяется задачами. Если вы можете решить проблему без подсказок — значит, тема усвоена. Если нет — возвращайтесь и практикуйтесь ещё.
Контрольные вопросы
- Могу ли я объяснить, как найти файл в системе?
- Могу ли я понять, почему сервис не стартует?
- Могу ли я открыть нужный порт и проверить доступ?
- Могу ли я восстановить файл из бэкапа?
- Могу ли я автоматизировать повторяющуюся задачу?
Признаки, что уровень уже вырос
- вы не гуглите каждую вторую команду;
- вы читаете man и быстро находите нужный параметр;
- вы смотрите логи до того, как паниковать;
- вы умеете воспроизвести проблему и описать её словами;
- вы начали писать собственные инструкции.
Частые ошибки новичков
- учить слишком много теории без практики;
- перескакивать сразу в Docker, Kubernetes и DevOps (не зная, как работает сеть или права, вы не поймёте, почему контейнер не видит порт);
- игнорировать сеть и права доступа;
- не работать с логами (логи — это первое, куда смотрит опытный администратор);
- не делать заметки (через месяц вы забудете, как решили ту или иную проблему);
- не повторять пройденное (регулярно пересматривайте старые темы, углубляя понимание);
- бояться сломать тестовую систему.
На самом деле ломать стенд полезно: в учебной среде это самый быстрый способ понять, как всё устроено. Сделайте снапшот — и вперёд, экспериментируйте.
Минимальный набор материалов для самоподготовки
Хорошая база на старте:
- официальная документация Ubuntu Server;
- учебные материалы Linux Foundation по Linux и системному администрированию;
manи встроенная справка;- собственный стенд с Ubuntu Server;
- заметки с командами и разбором ошибок.
Учебная траектория Linux Foundation прямо указывает, что путь к уверенной подготовке можно пройти за 3–6 месяцев при сочетании курсов, самостоятельной практики и дополнительных исследований. Не стоит гнаться за десятком книг — лучше досконально разобрать один источник и много практиковаться.
Итог: какой результат считать хорошим
Через полгода вы не обязаны знать всё про Linux. Это нереально. Но вы должны уметь уверенно работать с сервером, находить проблемы, читать логи, обслуживать службы, настраивать базовую сеть, делать бэкапы и автоматизировать рутину.
Если коротко, хороший результат — это когда вы можете взять чистую Ubuntu Server, поднять на ней рабочий сервис и объяснить, что и зачем вы сделали. Именно это спрашивают на технических собеседованиях: не определения, а демонстрация понимания.
FAQ
Сколько времени нужно заниматься в день?
Оптимально 1,5–2 часа в будни и 3–4 часа на выходных. Меньше тоже возможно, но прогресс будет медленнее. Важнее регулярность: лучше каждый день по часу, чем раз в неделю 10 часов подряд — информация успевает забыться, и вы тратите время на повторное вхождение в контекст.
Можно ли учиться без физического сервера?
Да. Для старта достаточно виртуальных машин. Железо понадобится позже, когда захочется больше практики с сетью, дисками и реальным железом. На виртуалках вы не почувствуете нюансы работы с RAID-контроллером или физическими сетевыми интерфейсами, но для обучения основам этого и не требуется.
Нужно ли сразу учить DevOps?
Нет. Сначала нужна база Linux, сеть, права, службы, логи и бэкапы. Без этого DevOps-инструменты будут просто набором модных слов. Docker, Kubernetes, CI/CD — это надстройка над системным администрированием. Если вы не понимаете, как работает процесс в контейнере или почему не резолвится DNS, то никакой пайплайн вам не поможет.
Какой дистрибутив выбрать новичку?
Для старта удобнее Ubuntu Server LTS: много документации, понятная установка и хороший путь входа в администрирование. Позже, когда освоитесь, можно попробовать CentOS/Rocky Linux или Debian, чтобы понять разницу в пакетных менеджерах и подходах. Но на первых порах не распыляйтесь.
Что делать, если через месяц всё забывается?
Сократить теорию и увеличить практику. Полезно вести свой чек-лист команд и пересобирать стенд заново раз в 2–3 недели. Когда вы несколько раз с нуля устанавливаете и настраиваете сервер, последовательность действий укладывается в мышечную память. Также помогает объяснять пройденный материал кому-то ещё или писать конспекты своими словами.
Можно ли за 6 месяцев выйти на работу?
Да, на стартовые позиции — при условии, что есть практика, домашний стенд и несколько законченных мини-проектов, а не только просмотренные курсы. Работодатели охотнее берут того, кто может показать: «вот мой сервер, вот мои скрипты, вот как я решал проблему». Без практического портфолио конкурировать сложно, но с ним — вполне реально.
