Linux шпаргалка для новичков

В данной статье систематизирован базовый стек знаний, необходимый для работы с GNU/Linux. Мы разберем иерархию системы, принципы управления процессами и методы обеспечения безопасности.

1. Архитектура ядра (Kernel Space)

Ядро — это промежуточный слой между аппаратным обеспечением и прикладным ПО. Существует три ключевых подхода к проектированию ядер:

  1. Монолитные (Linux): Все компоненты (драйверы, ФС, менеджер памяти) работают в едином адресном пространстве. Это обеспечивает максимальную производительность.
  2. Микроядерные: В ядре остаются только базовые функции (IPC, планировщик), остальное выносится в пространство пользователя.
  3. Гибридные (NT, XNU): Компромисс между стабильностью микроядер и скоростью монолитов.

Ключевые зоны ответственности ядра Linux:

  • Управление жизненным циклом процессов.
  • Аллокация и защита оперативной памяти.
  • Абстракция оборудования через драйверы.
  • Обработка системных вызовов (syscalls).

2. Стандарт иерархии ФС (Filesystem Hierarchy Standard)

В Linux используется единое дерево директорий. Понимание FHS критически важно для корректного деплоя приложений.

ДиректорияНазначение/etcКонфигурационные файлы системы./var/logДинамические данные и журналы событий./opt / /usrУстановка дополнительного и пользовательского ПО./devФайловое представление физических устройств./proc / /sysВиртуальные ФС с данными о процессах и ядре.

Важный нюанс: Inodes. При работе с большим количеством мелких файлов (кэш, сессии) лимит индексных дескрипторов (inodes) может исчерпаться раньше, чем место на диске. Мониторинг: df -hTi.

3. Пакетный менеджмент и Shell

Интерпретатор Bash (Bourne Again Shell) является стандартом де-факто для автоматизации задач.

Для управления зависимостями используются системы управления пакетами:

  • APT (Debian/Ubuntu): Работает с форматом .deb.
  • DNF/YUM (RHEL/CentOS): Работает с форматом .rpm.

Для установки локальных пакетов напрямую используются dpkg -i или rpm -i, однако рекомендуется использовать высокоуровневые менеджеры для автоматического разрешения зависимостей.

4. Управление пользователями и SSH-безопасность

Соблюдение принципа наименьших привилегий требует отказа от постоянного использования учетной записи root.

Смена прав (Chmod & Chown)

Права доступа вычисляются суммированием: Read (4), Write (2), Execute (1).

  • 0755 — стандарт для исполняемых скриптов.
  • 0600 — стандарт для конфиденциальных данных (SSH-ключи).

Безопасный доступ через SSH

Использование парольной аутентификации в открытых сетях недопустимо. Рекомендуемый стек:

  1. Генерация ключа: ssh-keygen -t ed25519.
  2. Копирование на сервер: ssh-copy-id.
  3. Конвертация (при необходимости работы с PuTTY): использование PuTTYgen для создания .ppk.

5. Инициализация и диагностика: Systemd

Современные дистрибутивы используют systemd для управления демонами.

  • Управление: systemctl [start|stop|restart|status].
  • Анализ логов: journalctl -xe. Флаг -x дает расшифровку ошибок, -e перематывает в конец.

Проблемные состояния процессов:

  • Orphaned (Сироты): Родитель завершен, процесс переподчинен init (PID 1).
  • Zombie: Процесс завершен, но запись о нем остается в таблице процессов, пока родитель не прочитает код выхода.
Начать дискуссию