Linux шпаргалка для новичков
В данной статье систематизирован базовый стек знаний, необходимый для работы с GNU/Linux. Мы разберем иерархию системы, принципы управления процессами и методы обеспечения безопасности.
1. Архитектура ядра (Kernel Space)
Ядро — это промежуточный слой между аппаратным обеспечением и прикладным ПО. Существует три ключевых подхода к проектированию ядер:
- Монолитные (Linux): Все компоненты (драйверы, ФС, менеджер памяти) работают в едином адресном пространстве. Это обеспечивает максимальную производительность.
- Микроядерные: В ядре остаются только базовые функции (IPC, планировщик), остальное выносится в пространство пользователя.
- Гибридные (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
Использование парольной аутентификации в открытых сетях недопустимо. Рекомендуемый стек:
- Генерация ключа: ssh-keygen -t ed25519.
- Копирование на сервер: ssh-copy-id.
- Конвертация (при необходимости работы с PuTTY): использование PuTTYgen для создания .ppk.
5. Инициализация и диагностика: Systemd
Современные дистрибутивы используют systemd для управления демонами.
- Управление: systemctl [start|stop|restart|status].
- Анализ логов: journalctl -xe. Флаг -x дает расшифровку ошибок, -e перематывает в конец.
Проблемные состояния процессов:
- Orphaned (Сироты): Родитель завершен, процесс переподчинен init (PID 1).
- Zombie: Процесс завершен, но запись о нем остается в таблице процессов, пока родитель не прочитает код выхода.