Путь обучения

Как изучить Linux с нуля: план от первой команды до администрирования сервера

Обновлено: · Skillaria.Top

Изучать Linux с нуля удобнее всего по слоям: сначала терминал и файловая система, затем пользователи и права, Bash-скрипты, пакеты, процессы и systemd, после — диски, логи, сеть, SSH и защита сервера. На каждом этапе нужна практика на своей виртуальной машине или дешёвом VPS, а итог — самостоятельно поднятый и защищённый сервер с работающим сервисом.

Изучать Linux с нуля проще, чем кажется, если идти в правильном порядке и сразу практиковаться. Главная ошибка новичков — читать про команды, не набирая их, или прыгать к Docker и Kubernetes, не понимая, что такое процесс и права доступа. Ниже — план из девяти этапов: что изучать, что практиковать и как понять, что этап пройден.

Ориентир по времени — от двух до четырёх месяцев при занятиях по часу в день, но темп у всех разный. Важнее не скорость, а то, что после каждого этапа вы можете сделать что-то руками.

Этап 0. Подготовьте стенд

Linux учат в Linux. Варианты, от простого к реалистичному:

  • WSL2 в Windows — терминал Ubuntu за пару минут. Хорошо для команд и скриптов, но systemd и сеть там ведут себя не как на сервере.
  • Виртуальная машина (VirtualBox, VMware, UTM на Mac) с серверной Ubuntu или Debian. Можно ломать без последствий и откатываться к снимкам.
  • Дешёвый VPS у облачного провайдера. Настоящий сервер с публичным IP — лучший полигон для этапов про сеть и безопасность.

Дистрибутив для старта — Ubuntu Server или Debian: по ним больше всего документации и ответов на вопросы. Графическая оболочка не нужна: серверы администрируют через терминал, привыкайте к нему с первого дня.

Этап 1. Терминал и файловая система

Цель — уверенно перемещаться по системе и работать с файлами без мыши.

  • Навигация: pwd, ls -la, cd, абсолютные и относительные пути, ~, . и ...
  • Файлы: cp, mv, rm, mkdir -p, touch, просмотр через cat, less, head, tail -f.
  • Поиск: find, which, locate.
  • Справка: man, --help. Умение читать man — навык, который окупается всю жизнь.
  • Структура каталогов: что лежит в /etc, /var/log, /home, /usr, /proc, /dev; что такое монтирование и inode.
  • Текстовый редактор в терминале: nano на первое время, затем базовые команды vim — он есть почти на любом сервере.

Практика: найдите все файлы .conf в /etc, изменённые за последнюю неделю (find /etc -name "*.conf" -mtime -7). Откройте /etc/os-release и узнайте версию системы. Посмотрите, что пишет система в /var/log.

Этап 2. Пользователи, группы и права

Права — основа безопасности Linux и источник половины ошибок «Permission denied».

  • Чтение вывода ls -l: тип, права, владелец, группа.
  • chmod в символьной и числовой форме, chown, umask.
  • Особые биты: SUID, SGID, sticky bit — и почему /tmp доступен всем на запись, но чужие файлы там удалить нельзя.
  • Пользователи и группы: useradd, usermod -aG, passwd, файлы /etc/passwd, /etc/shadow, /etc/group.
  • sudo, правила в sudoers и редактирование через visudo.

Практика: создайте двух пользователей и общую папку проекта, в которой оба могут создавать файлы, а остальные не видят ничего. Подсказка: группа, chmod 2770 и SGID для наследования группы.

Этап 3. Bash и текстовые утилиты

Администрирование — это во многом обработка текста: логов, конфигов, вывода команд. На этом этапе терминал превращается из набора команд в инструмент.

  • Перенаправления и конвейеры: >, >>, 2>&1, |, xargs.
  • Фильтры: grep (с регулярными выражениями), sort, uniq -c, wc, cut, sed, awk.
  • JSON и HTTP из консоли: curl и jq.
  • Скрипты: shebang, переменные, кавычки, условия if и [[ ]], циклы, функции, коды возврата, set -euo pipefail.

Практика: одной строкой посчитайте десять IP-адресов с наибольшим числом запросов в логе веб-сервера:

awk '{print $1}' /var/log/nginx/access.log | sort | uniq -c | sort -rn | head

Затем напишите скрипт бэкапа каталога в архив с датой в имени, который удаляет архивы старше семи дней и возвращает ненулевой код при ошибке.

Этап 4. Пакеты, окружение и планировщик

  • Менеджер пакетов: apt update, apt install, apt remove, apt search, dpkg -l. В RHEL-подобных системах — dnf. Понимать, что такое репозиторий и зачем ключи подписи.
  • Переменные окружения: env, export, PATH, файлы ~/.bashrc, ~/.profile, /etc/environment — и какой из них когда читается.
  • Расписание: crontab -e, синтаксис пяти полей, почему в cron «не работает» команда, которая работает в терминале (другое окружение и PATH).

Практика: поставьте nginx из репозитория, добавьте свой каталог со скриптами в PATH, настройте запуск бэкап-скрипта из этапа 3 каждую ночь через cron с записью вывода в лог.

Этап 5. Процессы и systemd

Здесь вы начинаете понимать, что на самом деле происходит в системе.

  • Процессы: ps aux, top/htop, PID и PPID, состояния, приоритеты (nice), сигналы и kill.
  • Нагрузка: load average, память и swap (free -h), что значит «процесс в состоянии D».
  • Отладка: lsof — какие файлы и порты открыл процесс; strace — какие системные вызовы он делает и на чём завис.
  • systemd: юниты, systemctl status/start/enable, свой unit-файл с Restart=on-failure, таймеры вместо cron.
  • Логи: journalctl -u, -f, -b, -p err, ротация, rsyslog; статистика производительности через sysstat (sar, iostat).

Практика: оформите небольшое приложение (хотя бы python3 -m http.server) как службу systemd от отдельного пользователя, убейте процесс через kill -9 и убедитесь, что systemd его поднял. Найдите в журнале запись о перезапуске.

Этап 6. Диски, LVM и RAID

  • Устройства и разделы: lsblk, blkid, fdisk или parted, файловые системы ext4 и XFS, mkfs.
  • Монтирование: mount, /etc/fstab с UUID, проверка через mount -a.
  • Место: df -h, df -i, du -sh, поиск того, что занимает диск.
  • LVM: физические тома, группы томов, логические тома и расширение раздела без остановки.
  • Программный RAID на mdadm — понимание уровней 0, 1, 5, 10 и того, что RAID — не бэкап.

Практика: добавьте в виртуальную машину два диска, соберите на них LVM, создайте том, смонтируйте через fstab, а потом увеличьте его командами lvextend -r.

Этап 7. Сеть

  • Модель TCP/IP на уровне, достаточном для диагностики: IP, маска, шлюз, порт, TCP и UDP.
  • Команды: ip a, ip r, ss -tlnp, ping, traceroute/mtr, curl -v, nc.
  • DNS: как работает резолвинг, /etc/hosts, /etc/resolv.conf, dig, resolvectl.
  • Настройка сети в вашем дистрибутиве (netplan в Ubuntu, NetworkManager в других).
  • Захват трафика: tcpdump для случаев, когда всё остальное не помогло.

Практика: выясните, какой процесс слушает каждый открытый порт вашего сервера. Разберите, почему служба, слушающая 127.0.0.1, недоступна снаружи, и исправьте это.

Этап 8. Удалённая работа: SSH и передача файлов

  • SSH: ключи (ssh-keygen -t ed25519, ssh-copy-id), файл ~/.ssh/config, ssh-agent, проброс портов (ssh -L), бастион через ProxyJump.
  • Копирование: scp и rsync -avz --delete — и чем rsync лучше для синхронизации.
  • Сетевые файловые системы: NFS между Linux-серверами, SMB (Samba) для обмена с Windows.

Практика: настройте вход на VPS только по ключу, опишите его в ~/.ssh/config под коротким именем и сделайте ежедневную синхронизацию каталога на сервер через rsync.

Этап 9. Безопасность сервера

  • Файрвол: принцип «запрещено всё, что не разрешено», ufw для простых случаев, nftables — чтобы понимать, что происходит под капотом.
  • fail2ban: бан IP после серии неудачных входов, проверка через fail2ban-client status sshd.
  • Настройка sshd: запрет входа по паролю и под root.
  • Обновления безопасности и их автоматическая установка (unattended-upgrades в Debian и Ubuntu).
  • GPG: проверка подписей пакетов и файлов, шифрование бэкапов.

Практика: откройте в файрволе только 22, 80 и 443, включите fail2ban и через сутки посмотрите в его статусе, сколько адресов уже заблокировано.

Финальный проект: соберите сервер целиком

Лучшая проверка того, что вы действительно изучили Linux, — собрать сервер с нуля без подсказок:

  1. Новый VPS, свой пользователь с sudo, вход по SSH-ключу, пароли и root отключены.
  2. Файрвол и fail2ban, автоматические обновления безопасности.
  3. Веб-сервер и приложение как служба systemd с автоперезапуском.
  4. Отдельный диск или том под данные, смонтированный через fstab.
  5. Бэкап по расписанию (cron или systemd-таймер) на другую машину через rsync, с логом и проверкой восстановления.
  6. Короткая инструкция: как всё это поднять заново.

Если вы можете пройти этот список и объяснить каждый шаг, база для работы администратором или DevOps-инженером у вас есть. Дальше естественное продолжение — контейнеры, автоматизация конфигурации и мониторинг.

Как учиться эффективнее

  • Набирайте команды сами. Копирование из статьи не запоминается, набор и ошибки — запоминаются.
  • Ломайте и чините. Испортите fstab или права на ~/.ssh в виртуальной машине и восстановите систему. Такой опыт ценится на собеседованиях.
  • Ведите заметки. Свой конспект команд с примерами полезнее любой чужой шпаргалки.
  • Читайте логи. Почти любую проблему в Linux объясняет журнал — привыкайте смотреть туда первым делом.

Итог

Ответ на вопрос, как изучить Linux с нуля, — двигаться слоями: терминал и файлы, права, Bash, пакеты, процессы и systemd, диски, сеть, SSH, безопасность — и на каждом этапе решать практическую задачу на своём стенде. Финальная цель — самостоятельно поднять и защитить сервер с работающим сервисом. Именно по такому маршруту, от вводной лекции до финального проекта, построен курс по Linux на платформе.

Частые вопросы

Сколько времени нужно, чтобы изучить Linux с нуля?

Базу для работы с сервером при занятиях около часа в день обычно осваивают за несколько месяцев. Уверенность приходит с практикой на реальных задачах, поэтому важнее регулярность, чем общее число часов.

Нужно ли знать программирование, чтобы изучать Linux?

Нет, начать можно без него. Но к этапу Bash-скриптов вы фактически начнёте программировать, и эти навыки потом пригодятся в автоматизации.

Можно ли изучать Linux на Windows?

Да, через WSL2 или виртуальную машину. Для тем про systemd, диски и сеть лучше использовать полноценную виртуальную машину или VPS.

Стоит ли ставить Linux основной системой на компьютер?

Это полезно, но не обязательно. Для администрирования важнее работать с серверным Linux через терминал, чем пользоваться графическим рабочим столом.

Какой дистрибутив выбрать новичку?

Ubuntu Server или Debian: у них много документации, а навыки легко переносятся на другие дистрибутивы. Основное отличие RHEL-подобных систем — менеджер пакетов dnf.

Разберите тему на видео

Эта тема подробно разобрана с практикой в курсе «Linux: с нуля до уверенного администрирования».

Перейти к курсу