DevOps и инфраструктура

Учебник Unix / Linux для начинающих

47 уроков · 9 разделов · бесплатно, без регистрации

Командная строка bash — основной инструмент разработчика и администратора. Научимся работать с файлами, правами, процессами и каналами.

Курс «Unix / Linux» состоит из 9 разделов и 47 уроков: Текстовая обработка: sed, awk и мощь конвейеров, Файловая система, диски и ссылки, Сеть Linux вглубь: ip, файрвол, SSH, Системное администрирование: systemd, логи, загрузка, Linux для разработчика и DevOps, Пользователи и права в Linux, Процессы и службы, Сеть и пакеты в Linux и Уроки по Linux. Уроки идут по порядку — от основ к более сложным темам, в каждом есть объяснение с примерами, а в конце — вопросы для самопроверки. К урокам привязаны задачи с автоматической проверкой: прочитали тему — сразу закрепили её кодом.

Программа курса

  1. 1 Текстовая обработка: sed, awk и мощь конвейеров

    1. sed: потоковый редактор текста

      sed в Linux: подстановка s///, флаги g/i/p, диапазоны и адресация строк, удаление и вставка, редактирование на месте -i, многокомандные скрипты sed.

    2. awk: язык обработки таблиц и отчётов

      awk в Linux: поля $1..$NF, переменные NR и NF, паттерны и действия, блоки BEGIN/END, арифметика, printf-форматирование и агрегация по столбцам в отчётах.

    3. sort, uniq, cut, tr, paste: комбинаторика обработки

      Утилиты обработки текста в Linux: sort по ключам и числам, uniq -c для подсчёта, cut по полям и символам, tr для замен и удаления, paste и join для слияния.

    4. xargs и find -exec: массовые операции над файлами

      Массовые операции в Linux: find с условиями по имени/типу/времени/размеру, find -exec против xargs, безопасный -print0/-0, параллелизм xargs -P и ловушки с пробелами.

    5. Разбор логов одной строкой: конвейеры на практике

      Анализ логов в Linux одной командой: конвейеры grep | awk | sort | uniq -c | sort -rn, топ IP и ошибок, подсчёт кодов ответа и реальные сценарии разбора access.log.

  2. 2 Файловая система, диски и ссылки

    1. Устройство файловой системы: FHS, inode, ext4

      Иерархия каталогов Linux по FHS, что такое inode и метаданные файла, виртуальная ФС /proc, как ext4 хранит данные через экстенты и журнал, ls -i и stat.

    2. Разделы и монтирование: mount, fstab, df, du

      Блочные устройства и разделы в Linux, lsblk и blkid, монтирование через mount и fstab по UUID, разница df и du, поиск каталога, забившего диск.

    3. Ссылки: жёсткие и символические

      Жёсткие и символические ссылки в Linux: ln и ln -s, inode и счётчик ссылок, отличия и ограничения, разыменование, битые симлинки и приём атомарного деплоя.

    4. Спец-права: SUID, SGID, sticky bit и ACL

      Специальные права Linux: числовая и символьная запись углублённо, SUID на passwd, SGID на общих каталогах, sticky bit на /tmp, гибкие права через setfacl и getfacl.

    5. LVM и управление томами

      LVM в Linux: уровни PV, VG и LV, создание тома, расширение на лету через lvextend и resize2fs, снапшоты copy-on-write и сравнение LVM с обычными разделами.

  3. 3 Сеть Linux вглубь: ip, файрвол, SSH

    1. Управление сетью: ip и ss (замена ifconfig/netstat)

      Команда ip вместо ifconfig и ss вместо netstat: адреса, маршруты, интерфейсы, активные соединения и открытые порты в современном Linux.

    2. DNS в Linux: резолвинг, /etc/hosts, resolv.conf

      Как Linux превращает имя в IP: порядок резолвинга, /etc/hosts, /etc/resolv.conf, systemd-resolved и инструменты dig, host, nslookup для диагностики DNS.

    3. Файрвол: iptables, nftables и ufw

      Файрвол Linux: цепочки INPUT/OUTPUT/FORWARD, правила и политики по умолчанию в iptables и nftables, обёртка ufw, открытие и закрытие портов.

    4. SSH вглубь: ключи, конфиг, туннели, rsync

      SSH на уровне профи: ключи ssh-keygen, ssh-copy-id, файл ~/.ssh/config, проброс портов -L и -R, ProxyJump, ssh-agent, копирование scp и rsync.

    5. Диагностика сети: traceroute, tcpdump, nc, mtr

      Диагностика сети Linux: где рвётся связь через traceroute и mtr, просмотр пакетов tcpdump, проверка порта netcat и разбор «сайт не открывается».

  4. 4 Системное администрирование: systemd, логи, загрузка

    1. systemd вглубь: units, targets, зависимости

      Типы юнитов systemd (service, socket, timer, target), написание своего .service, Wants/Requires/After, enable vs start и таймеры как замена cron.

    2. Логи системы: journalctl, rsyslog, logrotate

      Чтение журнала systemd через journalctl (-u, -f, --since, приоритеты), постоянный журнал, классические логи /var/log и rsyslog, ротация через logrotate.

    3. Загрузка Linux: от BIOS/UEFI до systemd

      Полная цепочка загрузки Linux: POST, загрузчик GRUB, ядро и initramfs, PID 1 systemd и targets; где что настраивается и как восстановить систему при поломке загрузки.

    4. Ядро, модули, /proc и /sys

      Идентификация ядра (uname), управление модулями (lsmod, modprobe, insmod), виртуальные ФС /proc и /sys, настройка параметров через sysctl и чтение dmesg.

    5. Производительность и устранение неполадок

      Методика диагностики Linux: load average, htop, vmstat, iostat, free, отличие нагрузки CPU от ожидания диска, поиск виновного процесса через lsof и strace.

  5. 5 Linux для разработчика и DevOps

    1. Окружение: переменные, PATH, профили

      Переменные окружения и export, поиск команды по PATH, .bashrc vs .profile vs .bash_profile, login и non-login shell, alias, локали LANG в Linux.

    2. Сборка из исходников: make, ./configure

      Зачем собирать из исходников: ./configure && make && make install, -dev зависимости, основы gcc и make, prefix для своего каталога, checkinstall.

    3. Как работают контейнеры: namespaces и cgroups

      Что под капотом у Docker: namespaces (pid/net/mnt/user), cgroups для лимитов CPU и памяти, chroot как предок изоляции, демонстрация контейнера через unshare.

    4. Мультиплексоры терминала: tmux и screen

      tmux и screen: зачем нужны сессии, окна и панели, detach и attach для долгих задач по SSH, базовые горячие клавиши, конфиг tmux.conf для разработчика.

    5. Базовая защита сервера (оборонительно)

      Оборонительная гигиена Linux-сервера: своевременные обновления, вход по SSH-ключам, отключение входа root, файрвол, fail2ban, минимальные привилегии, аудит портов через ss.

  6. 6 Пользователи и права в Linux

    1. Пользователи и группы в Linux

      Управление пользователями в Linux: useradd, usermod, groupadd, passwd, /etc/passwd, команды id и groups — с примерами и частыми ошибками.

    2. sudo и su: управление привилегиями

      sudo и su в Linux: как запускать команды от root, переключать сессии, добавлять пользователей в sudo и безопасно редактировать sudoers.

    3. Права доступа: chown, chmod, umask

      chown, chmod и umask в Linux: смена владельца, символьная и числовая нотация прав, маска по умолчанию — с примерами и таблицами.

  7. 7 Процессы и службы

    1. Мониторинг системы: top, df, free

      Мониторинг Linux: top, htop, ps, df, du, free — как смотреть загрузку процессора, памяти и дискового пространства с примерами вывода.

    2. Управление службами: systemctl

      systemctl в Linux: start, stop, restart, status, enable, disable — управление службами systemd, автозапуск и просмотр логов через journalctl.

    3. Планировщик задач: cron и crontab

      cron и crontab в Linux: синтаксис расписания, примеры задач, @reboot, логирование вывода — автоматизация команд по расписанию.

  8. 8 Сеть и пакеты в Linux

    1. Сетевые команды: ping, curl, ssh

      Сетевые команды Linux: ping, curl, wget, ip, ssh, scp — диагностика сети, скачивание файлов и удалённый доступ с примерами.

    2. Управление пакетами: apt и dnf

      Управление пакетами Linux: apt для Debian/Ubuntu и dnf для Fedora/RHEL — установка, обновление, удаление и поиск пакетов с примерами.

    3. Архивы и сжатие: tar, gzip, zip

      Архивы и сжатие в Linux: tar, gzip, bzip2, zip, unzip — создание, просмотр и распаковка архивов с примерами и сравнением форматов.

  9. 9 Уроки по Linux

    1. Введение
    2. Командная строка в Linux
    3. Основы навигации в Linux
    4. Файлы в Linux
    5. Руководство в Linux
    6. Права доступа в Linux
    7. Шаблоны подстановки в Linux
    8. Работа с файлами в Linux
    9. Фильтры в Linux
    10. Конвейеры и перенаправление ввода-вывода в Linux
    11. Управление процессами в Linux
    12. Команда grep и регулярные выражения в Linux
    13. Написание bash-скриптов в Linux