Путеводитель по Linux: От теории к практике Vadim Romanikov Linux — не просто операционная система, а целый мир с собственными правилами, где всё начинается с командной строки. Читатель освоит базовые принципы: от загрузки ядра и работы с файловой системой до управления процессами и настройки сети. Практические примеры с реальными командами помогут с первого дня чувствовать себя уверенно в терминале. Автор ведёт от простого к сложному — от истории Unix и дистрибутивов до SystemD, SSH и веб-серверов. Каждая глава даёт конкретные инструменты, которые складываются в цельную картину системного администрирования. Главная ставка: научиться не запоминать команды, а понимать логику системы, чтобы решать задачи самостоятельно. ==================== Путеводитель по Linux: От теории к практике В последние несколько лет интерес к Linux и ИТ-сфере растет с каждым днем. Однако найти материал, который бы охватывал основы системно и при этом был наполнен практическими примерами, довольно сложно. Главная цель этой статьи — дать вам карту, по которой вы сможете двигаться дальше. Мы разберем базовые понятия, историю и, самое главное, я покажу вам основные команды и приемы работы, которые пригодятся в первый же день знакомства с системой. (Код, как и договаривались, будет в виде скриншотов для удобства восприятия). 1. Что такое Linux и с чем его едят? История возникновения Чтобы понять Linux, нужно заглянуть в прошлое. В 1969 году в лабораториях Bell Labs родилась операционная системаUnix. Она была мощной, но проприетарной и очень дорогой. В ответ на это в 1983 году Ричард Столлман запустил проектGNU, целью которого было создание свободной UNIX-совместимой ОС. К началу 90-х у GNU были почти все компоненты, кроме ядра. И тут появляется студент из Финляндии —Линус Торвальдс. В 1991 году он пишет ядро для своего ПК и выкладывает его в открытый доступ. Так ядро Linux, объединившись с утилитами GNU, превратилось в ту самую операционную систему, которую мы знаем сегодня. Серверные дистрибутивы Дистрибутив — это «сборка» из ядра Linux, системных утилит GNU и менеджера пакетов. Их более 500, но все они делятся на два больших лагеря по системе управления пакетами: DEB-based:Используют пакеты .deb.Debian, Ubuntu, Astra Linux. RPM-based:Используют пакеты .rpm.RedHat Enterprise Linux (RHEL), CentOS, Fedora. 2. Погружение в систему: Как это работает? Этапы загрузки Загрузка Linux — это цепочка событий. Вот как это выглядит схематично: BIOS/UEFI → MBR/GPT:Аппаратное обеспечение инициализируется и ищет загрузчик. MBR/GPT → GRUB2:Загрузчик находит и запускает основной загрузчик (чаще всего GRUB2). GRUB2 → Kernel:Загрузчик загружает ядро системы (vmlinuz) в память. Kernel → Init:Ядро запускает первый процесс — систему инициализации (сейчас почти вездеSystemD), которая, в свою очередь, запускает все остальные службы. Подключение по SSH В мире серверов царит интерфейс командной строки (CLI). Для удаленного подключения используется протоколSSH (Secure SHell). Совет:В Linux (в отличие от Windows)регистр букв имеет значение! Команда Ls не сработает, а ls — сработает. Чтобы подключиться к серверу, используйте команду в терминале: 3. Установка ПО: Пакетные менеджеры Раньше программы устанавливали из исходных кодов (./configure && make && make install). Сейчас это делают пакетные менеджеры. Для DEB-based (Debian, Ubuntu):apt Для RPM-based (CentOS, RHEL):yum или dnf Основные команды Вот основные команды для управления пакетами: 4. Файловая система и права доступа Иерархия: Все есть файл В Linux все объекты — это файлы. Вот ключевые каталоги, которые нужно знать: / — Корень всего. /bin — Основные исполняемые файлы. /etc — Конфигурационные файлы. /home — Личные файлы пользователей. /var — Логи и динамические данные. /tmp — Временные файлы (очищаются при перезагрузке). Управление правами Права доступа — это основа безопасности. Они делятся на три категории: Владелец (u) Группа (g) Остальные (o) И три действия: r (Read)— чтение w (Write)— запись x (eXecute)— выполнение Права записываются как rwx r-x r--. Это значит, что владелец может все, группа — читать и выполнять, а остальные — только читать. Команды для работы с файлами 5. Процессы и мониторинг ресурсов Процесс — это любая запущенная программа. У каждого процесса есть уникальный ID (PID). Состояния процессов R (Running):Выполняется. S (Sleep):Ожидает чего-то. D (Direct):Ожидает жесткий диск/устройство (нельзя "убить"). Z (Zombie):Мертвый процесс, который не освободил ресурсы. Команды для управления Утилита htop особенно удобна — это улучшенная версия top с цветным отображением и возможностью управления мышью. 6. SystemD: Мастер запуска служб SystemD— это современная система инициализации. Именно она запускает все сервисы после загрузки ядра. Что такое Unit? Unit — это конфигурационный файл (в стиле .ini), который описывает, как запускать ту или иную службу. Типы юнитов: .service — сама служба (например, nginx.service). .target — группа служб (аналог уровней загрузки). .timer — таймеры для запуска задач. Управление службами 7. Сеть: Диагностика и настройка Заключительная часть — это работа с сетью. Вот минимальный набор утилит для администратора. Смотрим настройки ip a — просмотр всех сетевых интерфейсов и IP-адресов. ss -tulpn — просмотр открытых портов (замена netstat). Диагностика ping google.com — проверка доступности хоста. traceroute google.com — трассировка маршрута. nslookup ya.ru — проверка работы DNS. telnet 192.168.1.1 80 — проверка доступности порта. Заключение Linux — это мощная и гибкая система. Освоив эти базовые команды и понятия, вы сделаете первый шаг к профессиональному администрированию. Не бойтесь экспериментировать, читайте man (руководства) по командам и помните: ошибки — это лучший способ научиться. Все статьи серии: Основы Linux (эта статья) [Следующая часть] (скоро) Удачи в освоении! ---------- Основы Linux (обзор с практическим уклоном). Часть 2: От пользователя к администратору Вмы разобрались с историей, базовыми понятиями, научились работать с файлами и правами доступа. Этого достаточно, чтобы чувствовать себя уверенным пользователем Linux, но мир системного администрирования на этом только начинается. Настало время сделать следующий шаг. В этой части мы поднимемся на новую ступень: от работы с отдельными файлами перейдём к управлению пользователями, процессами, журналами и, наконец, поднимем свой собственный веб-сервер. Главная задача — показать, как отдельные кирпичики (команды, файлы, службы) складываются в работающую систему. Важно:В этой части мы будем углубляться в практику. Как и раньше, весь код будет представлен в виде наглядных скриншотов. Настоятельно рекомендую выполнять все команды в своей виртуальной машине — так знания закрепятся гораздо лучше! 8. Пользователи, группы и привилегии В прошлой части мы говорили о правах доступа к файлам (chmod, chown). Но кто может менять эти права? Кто имеет право устанавливать программы? Ответ кроется в системе управления пользователями. В Linux есть два типа пользователей: обычные и суперпользователь (root). root (также называемый суперпользователем) имеет неограниченные полномочия и может делать в системе всё. Работать из-под root постоянно — очень плохая практика. Вместо этого используется команда sudo (Substitute User and DO). Она позволяет выполнять отдельные команды от имени root (или другого пользователя) без необходимости постоянно переключаться. Основные команды 9. Процессы и сигналы: Управляем программой Мы уже знаем, что процесс — это запущенная программа. Но процессы могут находиться в разных состояниях, и ими можно управлять, посылая им сигналы. Самый известный сигнал — SIGTERM (сигнал завершения) и SIGKILL (безусловное убийство процесса). ps aux — позволяет увидеть все процессы в системе. Это как список всех программ и служб, которые сейчас запущены, с их идентификаторами (PID). kill -15 — посылает процессу сигнал завершения (SIGTERM). Это «вежливая» просьба остановиться, которую программа может проигнорировать или обработать. kill -9 — посылает безусловный сигнал (SIGKILL). Это «ядерный» вариант — процесс будет остановлен немедленно ядром системы, без сохранения данных. Используйте с осторожностью! 10. systemd и его юниты: Управление службами В первой части мы кратко коснулись systemd. Теперь разберёмся с ним глубже. systemd — это не просто система инициализации, это целый менеджер служб, который берёт управление системой на себя. Центральное понятие здесь —юнит (unit). Это конфигурационный файл, который описывает, как должна работать та или иная служба. Самые частые типы юнитов: ----------