Linux
Linux
Play ITЗагрузка интерактивного демо…
Что такое Linux? Вот что вам нужно знать:
- это целое семейство;
- они бесплатны;
- они имеют открытый исходный код;
- с технической точки зрения, Linux - это только ядро.
★ Linux — семейство открытых ОС на ядре Linux (Linux kernel), созданном Линусом Торвальдсом в 1991 году. В отличие от Windows и macOS, Linux не принадлежит одной компании: ядро и большинство компонентов развивает сообщество под лицензиями GPL и BSD.
Полноценная система — это дистрибутив: ядро + GNU-утилиты + init/systemd + графическая подсистема + пакетный менеджер. Сравнение с Windows — Сравнение Windows и Linux; основы UNIX — Основы UNIX-систем; полная хронология от Bell Labs до Android — История операционных систем.
История Linux и UNIX — кратко
Современный Linux — не «одна программа», а конец длинной цепочки:
- Multics (MIT, GE, Bell Labs) — слишком сложен; Bell Labs ушла из проекта.
- Unix (1969, Томпсон и Ритчи на PDP-7) — компактная альтернатива; C и конвейеры; ветви BSD и System V.
- IBM PC (1981) — Unix недоступен из-за монополии AT&T; победил MS-DOS → Windows.
- GNU (1983, Столлман) — свободные утилиты и GPL; своего ядра долго не было.
- MINIX (1987, Таненбаум) — учебная модель; вдохновила ядро Linux (1991, Торвальдс).
- GNU/Linux (1992+) — ядро + окружение GNU; серверы, облако, Android (через AOSP).
| Кто | Вклад сегодня |
|---|---|
| Кен Томпсон | Unix, C (с Ритчи); язык Go в Google |
| Деннис Ритчи | Язык C, ключевые части Unix |
| Билл Джой | BSD, vi |
| Ричард Столлман | GNU, GPL |
| Линус Торвальдс | Ядро Linux, координация разработки |
| Энди Таненбаум | MINIX, учебные ОС |
Развёрнутая хронология с контекстом AT&T, NeXT, Android и развилкой IBM — в статье История операционных систем. Биография создателя, путь от MINIX до Git и масштаб влияния на отрасль — в Линус Торвальдс — ядро Linux и Git.
Компоненты
★ Основные компоненты Linux:
| Компонент | Примеры | Роль |
|---|---|---|
| Ядро | Linux 6.x | CPU, память, I/O, драйверы, безопасность |
| Init / службы | systemd, OpenRC | Загрузка и фоновые демоны |
| Shell / CLI | bash, zsh, fish | Командная строка |
| DE / GUI | GNOME, KDE Plasma | Рабочий стол, окна, настройки |
| Display server | Wayland, X11 | Отрисовка окон и ввод |
| Пакеты | apt, dnf, pacman | Установка и обновление ПО |

Ключевые термины
- Подсистема — выделенный блок ядра или user space с чёткой зоной ответственности и стандартным интерфейсом для остальной ОС. Примеры — VFS (виртуальная файловая система), сетевая подсистема, udev (устройства и hotplug), графический стек Wayland/X11, подсистема ввода-вывода.
- Драйвер — модуль, через который ядро управляет устройством: загружаемый модуль ядра (
.koв/lib/modules/), прошивка (/lib/firmware/) или userspace-драйвер (CUPS, некоторые GPU). Приложения вызывают syscalls; ядро передаёт запрос драйверу. - Файловая система — способ хранения данных на разделе диска (ext4, xfs, btrfs, FAT32 и др.) — имена, inode, права
rwx, журнал. FHS — стандарт расположения каталогов (/etc,/home) поверх смонтированных файловых систем; это отдельный уровень от формата ext4/xfs. - Рабочий стол (Desktop) — область GUI с обоями и иконками, которую рисует DE (GNOME, KDE). Файлы на рабочем столе обычно лежат в
~/Desktopили~/Рабочий стол. - Контекстное меню — список действий по правому щелчку (ПКМ) на объекте в файловом менеджере или на панели DE; состав зависит от типа файла и установленных расширений.
- Корзина (Trash) — каталог "мягкого" удаления:
~/.local/share/Trash(стандарт freedesktop). Файлы из GUI часто попадают сюда;rmв терминале удаляет сразу, без корзины. Восстановление — из файлового менеджера илиtrash-restore.
1. Ядро
★ Ядро Linux — монолитное ядро с модульными расширениями (loadable kernel modules, LKM). Управляет CPU, памятью, устройствами, сетью и файловыми системами. Выпуски — каждые 2–3 месяца; LTS-ветки (6.6, 6.12…) поддерживаются 2–6 лет для серверов и дистрибутивов.
Общая теория ядер — Ядро операционной системы. Память в Linux — Управление памятью в Linux. Планирование CPU — Планирование процессора — классические алгоритмы. I/O и драйверы — Подсистема ввода-вывода в ОС.
User space и kernel space
| Пространство | Кто работает | Доступ | Примеры |
|---|---|---|---|
| User space | Приложения, shell, большинство демонов | Ограниченный; syscalls к ядру | firefox, nginx, sshd |
| Kernel space | Ядро, модули .ko | Полный доступ к памяти и железу | vmlinuz, nvidia.ko, ext4 |
Переход в kernel space — через системные вызовы (syscalls) — read, write, open, fork, execve. Обёртки — библиотека glibc (или musl в Alpine). Посмотреть список: man 2 syscalls, трассировка — strace -e openat ls.
Изоляция user space защищает систему: падение редактора редко роняет ОС. Ошибка в драйвере или модуле ядра — kernel panic (аналог BSOD в Windows; см. драйвер).
Подсистемы ядра
★ Подсистема — см. ключевые термины. В таблице ниже — основные подсистемы ядра Linux:
| Подсистема | Функции |
|---|---|
| Scheduler (CFS) | Планирование потоков, приоритеты, cgroups |
| Memory Manager | Виртуальная память, страницы, swap, OOM killer |
| VFS | Единый слой поверх ext4, xfs, btrfs, nfs… |
| Block / Network stack | Диски, TCP/IP, сокеты, netfilter/iptables/nftables |
| Device model | /dev, udev, hotplug, драйверы |
| Security | UID/GID, capabilities, SELinux, AppArmor, namespaces |
Модули ядра загружаются без перекомпиляции — modprobe nvme, lsmod, rmmod. Конфигурация — /etc/modprobe.d/. Параметры "на лету" — /proc/sys/ и sysctl.
Загрузка и ключевые процессы
Цепочка загрузки:
- BIOS/UEFI → загрузчик GRUB (или systemd-boot);
- vmlinuz + initramfs — временный образ с драйверами дисков и LVM;
- монтирование root, запуск PID 1 — обычно systemd (или init OpenRC);
- systemd поднимает службы, getty, графическую сессию.
| PID / процесс | Роль |
|---|---|
systemd (1) | Init, cgroups, журналы, монтирование, службы |
systemd-journald | Централизованные логи → journalctl |
systemd-logind | Сессии, вход, power management |
sshd | Удалённый SSH-доступ |
NetworkManager | Управление Wi‑Fi/Ethernet (desktop) |
Kernel panic — аварийная остановка с сообщением на консоли; дамп — kdump/vmcore. Диагностика — journalctl -k -b -1 (предыдущая загрузка), dmesg, /var/log/kern.log.
Процессы и fork — Жизненный цикл процесса в Linux. Управление процессами в Linux — Управление процессами в Linux. Сравнение с Windows — Сравнение Windows и Linux.
2. Дистрибутивы и пакеты
★ Дистрибутив (distribution) — готовая сборка Linux под конкретную аудиторию. Отличия — набор пакетов, политика обновлений, init, DE по умолчанию, поддержка.
По семействам пакетов
| Семейство | Формат | Менеджер | Дистрибутивы |
|---|---|---|---|
| Debian | .deb | apt, dpkg | Debian, Ubuntu, Mint, Pop!_OS |
| Red Hat | .rpm | dnf, yum, rpm | Fedora, RHEL, Rocky, Alma |
| Arch | .pkg.tar.zst | pacman | Arch, Manjaro, SteamOS |
| SUSE | .rpm | zypper | openSUSE, SLES |
| Universal | flatpak, snap, appimage | переносимые | поверх любого дистрибутива |
Примеры команд:
sudo apt update && sudo apt install htop # Debian/Ubuntu
sudo dnf install htop # Fedora/RHEL
sudo pacman -S htop # Arch
flatpak install flathub org.gnome.TextEditor # изолированный пакет
По назначению
| Категория | Примеры | Особенности |
|---|---|---|
| Начинающие | Ubuntu, Linux Mint, Fedora Workstation | Установщик, драйверы, DE "из коробки" |
| Серверы | Debian, RHEL, Ubuntu Server | Минимум GUI, LTS, стабильность |
| Rolling release | Arch, openSUSE Tumbleweed | Свежие пакеты, чаще обновления |
| Специализированные | Kali, Tails, SteamOS | Pentest, анонимность, игры |
| Минимальные | Alpine, Tiny Core | Контейнеры, встроенные системы |
Открытая модель порождает сотни вариантов — от корпоративных RHEL до экспериментальных сборок. Для обучения обычно достаточно Ubuntu или Fedora; для серверов — Debian или RHEL-совместимые.
3. Интерфейс
★ Интерфейс Linux — CLI (shell) как основа и GUI (DE) как опция. Серверы часто работают без графики; рабочие станции — с полноценным рабочим столом.
Командная строка (Shell)
Shell — интерпретатор команд и скриптов между пользователем и ядром.
| Shell | Особенности |
|---|---|
| bash | Стандарт GNU, /bin/bash, скрипты .sh |
| zsh | Автодополнение, темы (Oh My Zsh) |
| fish | Дружелюбный синтаксис из коробки |
| sh | Минимальный POSIX-shell для скриптов |
Терминал — эмулятор (gnome-terminal, konsole, alacritty, tmux для сессий). Базовая навигация:
pwd # текущий каталог
ls -la # список файлов
cd /etc # смена каталога
cat file.txt # вывод файла
man ls # справка
history | grep apt # история команд
Переменные среды — PATH, HOME, USER. Конфигурация bash — ~/.bashrc, ~/.profile.
Графический интерфейс — стек
| Слой | Компонент | Роль |
|---|---|---|
| Приложения | GTK, Qt | Тулkits интерфейса |
| DE | GNOME, KDE Plasma, XFCE | Панель, меню, настройки, файловый менеджер |
| Display server | Wayland (современный), X11 (legacy) | Окна, ввод, композиция |
| Драйвер | Mesa, проприетарные NVIDIA/AMD | OpenGL/Vulkan |
Desktop Environment (DE) — аналог оболочки Windows (explorer.exe + панель задач):
| DE | Стиль | Дистрибутивы |
|---|---|---|
| GNOME | Минимализм, вертикальный обзор | Fedora, Ubuntu по умолчанию |
| KDE Plasma | Гибкая настройка, виджеты | openSUSE, Kubuntu, Neon |
| XFCE | Лёгкий, классическая панель | Xubuntu, старые ПК |
| Cinnamon / MATE / LXQt | Альтернативы | Mint, Lubuntu |
Элементы GUI (по аналогии с Windows):
- Рабочий стол — см. ключевые термины; обои, иконки; каталог
~/Desktopили~/Рабочий стол; - Панель / dock — запуск приложений, часы, трей;
- Меню приложений — по кнопке "Activities" (GNOME) или "Пуск" (KDE);
- Файловый менеджер — Nautilus (GNOME), Dolphin (KDE), Thunar (XFCE); аналог Проводника;
- Настройки —
gnome-control-center, KDE System Settings; аналог "Параметров"; - Монитор системы — GNOME System Monitor, KDE System Guard.
Wayland постепенно заменяет X11: лучше безопасность и масштабирование HiDPI; часть legacy-приложений X11 работает через XWayland.
Контекстное меню и базовые действия
★ Контекстное меню и корзина — см. ключевые термины. В терминале rm обходит корзину; в GUI удаление чаще отправляет файл в ~/.local/share/Trash.
В файловом менеджере и терминале:
| Действие | GUI | Терминал |
|---|---|---|
| Копировать | ПКМ → Копировать, Ctrl + C | cp source dest |
| Переместить | Вырезать / перетащить | mv source dest |
| Удалить | Del, корзина | rm file, rm -r dir |
| Переименовать | F2 | mv old new |
| Права | Свойства → Права | chmod 644, chown user:group |
| Свойства | ПКМ → Свойства | ls -l, stat file |
Корзина и удаление
В файловом менеджере "Удалить" обычно перемещает объект в корзину — данные остаются на диске до "Очистить корзину" или trash-empty. Команда rm в shell удаляет файл сразу; восстановление возможно только из резервной копии или утилит вроде extundelete (не гарантировано).
ПКМ в терминале — вставка часто Ctrl + Shift + V (не Ctrl + V).
- Откройте терминал:
Ctrl + Alt + T(Ubuntu) или через меню приложений. - Выполните
ls -la ~и найдите скрытые файлы.bashrc,.config. - Откройте файловый менеджер и сравните те же каталоги в GUI.
4. Службы
★ Службы в Linux — демоны (daemons), управляемые чаще всего systemd. Аналог SCM Windows (services.exe).
Как устроен systemd
| Понятие | Описание |
|---|---|
| Unit | .service, .socket, .timer, .mount — объект systemd |
| Target | Группа units (аналог runlevel); multi-user.target, graphical.target |
| Демон | Фоновый процесс без TTY: nginx, cron, docker |
| Сокет activation | Запуск службы по обращению к порту |
Файлы unit: /usr/lib/systemd/system/ (пакеты), /etc/systemd/system/ (локальные override).
Управление службами
| Действие | Команда |
|---|---|
| Список | systemctl list-units --type=service |
| Статус | systemctl status ssh |
| Запуск / стоп | sudo systemctl start ssh / stop |
| Автозагрузка | sudo systemctl enable nginx / disable |
| Перезагрузка конфига | sudo systemctl daemon-reload |
| Логи службы | journalctl -u nginx -f |
Типы запуска в unit-файле — enabled, disabled, static, masked (полный запрет).
Ключевые службы
| Служба | Unit | Назначение |
|---|---|---|
| SSH | ssh.service / sshd | Удалённый доступ |
| Сеть (desktop) | NetworkManager.service | Wi‑Fi, Ethernet |
| Сеть (server) | systemd-networkd | Статическая конфигурация |
| Журнал | systemd-journald | Логи → journalctl |
| Cron | cron.service / crond | Задачи по расписанию |
| Nginx/Apache | nginx, httpd | Веб-сервер |
| Docker | docker.service | Контейнеры |
| Firewall | ufw, firewalld, nftables | Фильтрация пакетов |
Legacy SysVinit (/etc/init.d/, service nginx start) встречается на старых системах; современные дистрибутивы — systemd.
Отключение systemd-logind, dbus, NetworkManager или sshd (на удалённом сервере) может отрезать доступ к системе. Перед mask зафиксируйте исходное состояние: systemctl is-enabled имя.
systemctl status— общее состояние.systemctl list-units --type=service --state=running— активные службы.journalctl -b— логи текущей загрузки.
5. Утилиты
★ Утилиты — встроенные и пакетные инструменты для администрирования, диагностики и повседневной работы.
Файлы и каталоги
| Утилита | Назначение |
|---|---|
ls, cd, pwd | Навигация |
cp, mv, rm, mkdir, touch | Создание, копирование, удаление |
find, locate, fd | Поиск файлов — команды поиска |
chmod, chown, umask | Права доступа (rwx, octal) |
tar, gzip, zip | Архивы |
ln -s | Символические ссылки |
mount, umount, df, du | Монтирование и место на диске |
Текст и поиск
| Утилита | Назначение |
|---|---|
cat, less, head, tail | Просмотр файлов; tail -f — лог в реальном времени |
grep, rg (ripgrep) | Поиск по содержимому — команды поиска |
sed, awk | Потоковое редактирование и отчёты |
wc, sort, uniq, cut | Обработка текста |
Поиск информации
В Linux поиск делят на две задачи: найти файл или программу (по имени, типу, дате, правам) и найти текст внутри файлов (по слову или шаблону). Ниже — девять часто используемых команд; примеры и флаги — в справочнике Linux-команд, поиск текста в IDE и Windows — grep, findstr и Select-String.
| Команда | Назначение |
|---|---|
find | Поиск файлов и каталогов по имени, типу, времени изменения, правам доступа и другим параметрам. Обходит дерево каталогов в реальном времени — результат всегда актуален, но на больших дисках может быть медленным |
locate | Быстрый поиск по заранее построенной базе (/var/lib/mlocate/). После установки пакета plocate или mlocate базу обновляют: sudo updatedb |
which | Показывает путь к исполняемому файлу, который запустится из текущего PATH — удобно, когда в системе несколько версий одной программы |
whereis | Находит бинарник, исходники и man-страницы для указанной команды |
grep | Поиск строк в файлах по текстовому шаблону или регулярному выражению; классическая утилита, есть на любой системе |
fzf | Интерактивный поиск файлов и каталогов с нечётким совпадением (fuzzy search). Часто комбинируют с fd или find: список кандидатов в конвейер, выбор — в TUI |
fd | Быстрая и удобная альтернатива find для поиска по имени или шаблону; по умолчанию игнорирует скрытые каталоги и учитывает .gitignore |
bfs | Версия find с обходом каталогов в ширину (breadth-first). На очень больших деревьях первые результаты появляются быстрее, чем у классического find |
ripgrep (rg) | Рекурсивный поиск текста в файлах с автоматическим учётом .gitignore; многопоточный, удобен в репозиториях кода |
Краткий выбор инструмента:
- «Где лежит файл
config.yaml?» →find,locateилиfd. - «Какая версия
pythonзапустится?» →which python3. - «Где man-страница и бинарник
nginx?» →whereis nginx. - «Где в логах слово ERROR?» →
grepилиrg. - «Интерактивно выбрать файл из тысячи» →
fzf.
find, locate, which, whereis и grep входят в базовую поставку большинства дистрибутивов. fd, fzf, bfs и ripgrep обычно ставят из репозитория (sudo apt install fd-find fzf ripgrep в Ubuntu; пакет fd часто называется fd-find, исполняемый файл — fdfind).
find /var/log -name "*.log" -mtime -7 # логи за последнюю неделю
locate nginx.conf # быстро, если база свежая
which python3
whereis gcc
grep -rn "TODO" ~/project/
fd -e md . # все .md в текущем дереве
rg "import React" src/ # текст в коде, без node_modules
Сеть
| Утилита | Назначение |
|---|---|
ip a, ip r | Адреса и маршруты (замена ifconfig) |
ping, traceroute, tracepath | Доступность и маршрут |
ss -tuln, netstat | Открытые порты и соединения |
dig, nslookup, host | DNS |
curl, wget | HTTP/FTP-загрузки |
ssh, scp, rsync, sftp | Удалённый доступ и синхронизация |
nmcli | CLI NetworkManager |
nmap | Сканирование портов (осторожно в чужих сетях) |
Сценарий "нет сети":
ip a— есть ли IP;ping -c 3 192.168.1.1— шлюз;ping -c 3 8.8.8.8— интернет без DNS;dig google.com— DNS;ss -tuln— слушающие порты.
Система и восстановление
| Утилита | Назначение |
|---|---|
ps, pgrep, kill, killall | Процессы |
free -h, vmstat | Память |
dmesg, journalctl | Логи ядра и systemd |
fsck | Проверка ФС (offline) |
mkfs.ext4, fdisk, parted | Разметка и форматирование |
crontab -e, systemd-run | Планирование задач |
sudo, su | Повышение привилегий |
useradd, usermod, passwd | Учётные записи |
Пакетные менеджеры — см. раздел 2.
6. Менеджеры
★ Менеджеры — инструменты мониторинга процессов, ресурсов и оборудования. Между "сырыми" утилитами (ps, free) и полноценной автоматизацией.
htop / top — диспетчер процессов
top — классический монитор в терминале; htop — интерактивный (цвета, мышь, дерево процессов).
| Клавиша (htop) | Действие |
|---|---|
F5 | Дерево процессов |
F6 | Сортировка (CPU, MEM…) |
F9 | Kill (SIGTERM / SIGKILL) |
F10 | Выход |
/ | Поиск процесса |
Запуск: htop, top. Аналог Диспетчера задач Windows.
Сигналы: SIGTERM (15) — корректное завершение; SIGKILL (9) — принудительное; kill -9 PID — только если процесс не отвечает.
journalctl — журнал событий
Централизованные логи systemd — аналог Просмотра событий (eventvwr):
journalctl -b # текущая загрузка
journalctl -u nginx --since today
journalctl -k # только ядро
journalctl -p err -b # ошибки
journalctl -f # follow (как tail -f)
Файлы legacy: /var/log/syslog, auth.log, kern.log (Debian/Ubuntu).
lsof, iotop, nethogs — углублённая диагностика
| Утилита | Назначение |
|---|---|
| lsof | Какой процесс держит файл или порт: lsof -i :80 |
| iotop | Дисковый I/O по процессам (аналог Resource Monitor) |
| nethogs | Трафик по процессам |
| vmstat / iostat / mpstat | CPU, память, диск (sysstat) |
Диспетчер оборудования
★ Драйвер — см. ключевые термины. В Linux нет единого GUI вроде devmgmt.msc; оборудование смотрят через CLI и DE.
| Инструмент | Назначение |
|---|---|
lsusb, lspci, lsblk | Список USB, PCI, блочных устройств |
lshw, inxi | Подробная информация о железе |
dmesg | tail | Сообщения ядра о новых устройствах |
udevadm info | Правила udev, hotplug |
| GNOME Settings → About / hardinfo | GUI-обзор |
Драйверы — модули ядра (/lib/modules/$(uname -r)/) или прошивки (/lib/firmware/). Проприетарные — пакеты nvidia-driver, linux-firmware.
Команды терминала — 2.05 Terminal. Администрирование — Администрирование Linux-систем. Сравнение с Windows — Сравнение Windows и Linux.
Файловая система и структура каталогов Linux
★ Файловая система — см. ключевые термины. Ниже — FHS:
- как каталоги от
/организованы на смонтированных разделах ext4; - xfs;
- др.
Linux монтирует все разделы в единое дерево от /. Съёмные носители и сетевые ресурсы подключают как подкаталоги — в отличие от букв C:, D: в Windows (см. Windows).
Структура описана стандартом FHS (Filesystem Hierarchy Standard). Компактная шпаргалка — Terminal / FHS, группы каталогов — администрирование / FHS.
Типичные ФС — ext4 (универсальная), xfs (большие тома), btrfs (снимки, сжатие), FAT32/exFAT (флешки), NTFS (чтение/запись с Windows-разделов через ntfs-3g).
Корневой каталог /
Корневой каталог — это вершина всей файловой системы. Он обозначается символом / и содержит все остальные каталоги. В отличие от Windows, где каждый диск имеет собственную букву (C:, D: и т.д.), в Linux все устройства подключаются как подкаталоги корня.
/bin — основные исполняемые файлы
Каталог /bin содержит базовые команды, необходимые для работы системы даже в режиме восстановления. Сюда входят такие утилиты, как ls, cp, mv, rm, cat, bash и другие. Эти программы доступны всем пользователям и критически важны для функционирования ОС.
/boot — файлы загрузчика и ядра
В /boot хранятся файлы, необходимые для загрузки операционной системы:
vmlinuz— сжатое ядро Linux;initrd.imgилиinitramfs— временная файловая система, используемая на ранних этапах загрузки;- конфигурационные файлы загрузчика (например, GRUB).
Этот каталог не должен изменяться вручную без понимания последствий.
/dev — файлы устройств
Каталог /dev представляет физические и виртуальные устройства в виде специальных файлов. Например:
/dev/sda1— первый раздел на первом SATA-диске;/dev/ttyS0— последовательный порт;/dev/null— "чёрная дыра", куда можно отправлять данные без сохранения.
Устройства создаются автоматически при подключении оборудования или при запуске системы.
/etc — конфигурационные файлы
Все системные настройки хранятся в /etc. Здесь находятся:
/etc/passwd— информация о пользователях;/etc/group— группы пользователей;/etc/fstab— таблица файловых систем, монтируемых при старте;/etc/hosts— локальное сопоставление имён и IP-адресов;- конфигурации служб — Apache, SSH, systemd и других.
Этот каталог не содержит исполняемых файлов — только текстовые конфигурации.
/home — домашние каталоги пользователей
Каждый обычный пользователь получает свой подкаталог в /home. Например, пользователь james будет иметь каталог /home/james. В нём хранятся:
- личные файлы и документы;
- скрытые файлы настроек (начинаются с точки):
.bashrc,.profile,.ssh; - ключи аутентификации:
~/.ssh/id_rsa,~/.ssh/authorized_keys.
Домашний каталог изолирован от других пользователей по умолчанию благодаря системе прав доступа.
/lib и /lib64 — системные библиотеки
Каталоги /lib (и /lib64 на 64-битных системах) содержат разделяемые библиотеки, необходимые для запуска программ из /bin и /sbin. Примеры:
libc.so— стандартная библиотека языка C;libm.so— математическая библиотека.
Без этих библиотек даже базовые команды не смогут работать.
/media и /mnt — точки монтирования
/mediaиспользуется для автоматического монтирования съёмных носителей — флешек, CD/DVD, внешних дисков./mntпредназначен для временного ручного монтирования файловых систем (например, сетевых томов или разделов при обслуживании).
Разделение этих каталогов помогает поддерживать порядок: автоматические подключения — в /media, административные — в /mnt.
/opt — дополнительное программное обеспечение
Каталог /opt предназначен для установки сторонних приложений, особенно тех, которые поставляются в виде самодостаточных пакетов (часто коммерческие или проприетарные программы). Каждое приложение обычно создаёт здесь свой подкаталог: /opt/myapp.
/proc — виртуальная файловая система процессов
/proc — это псевдофайловая система, предоставляемая ядром. Она не существует на диске, а генерируется динамически в памяти. Через неё можно получить информацию о:
- работающих процессах (подкаталоги вида
/proc/1234); - аппаратных ресурсах —
/proc/cpuinfo,/proc/meminfo,/proc/partitions; - параметрах ядра:
/proc/sys/.
Запись в некоторые файлы /proc позволяет изменять поведение системы на лету.
/root — домашний каталог суперпользователя
Каталог /root — это домашняя директория пользователя root (администратора). Он отделён от /home по соображениям безопасности и доступности: даже если /home находится на отдельном разделе и не смонтирован, root сможет войти в систему.
/run — временные файлы времени выполнения
Современные дистрибутивы используют /run для хранения данных, актуальных только во время сессии:
- PID-файлы служб;
- сокеты;
- информация о текущих пользователях (
/run/utmp).
Содержимое этого каталога очищается при перезагрузке.
/sbin — системные исполняемые файлы
Каталог /sbin содержит команды, предназначенные в первую очередь для системного администратора:
init,reboot,shutdown;fdisk,mkfs,iptables;ifconfig,route(в некоторых дистрибутивах).
Эти утилиты часто требуют прав суперпользователя.
/srv — данные сервисов
Каталог /srv предназначен для хранения данных, предоставляемых системой другим машинам или пользователям. Например:
/srv/www— веб-сайты;/srv/ftp— файлы FTP-сервера;/srv/git— репозитории Git.
Стандарт FHS рекомендует использовать именно этот путь для сервисных данных.
/sys — информация об оборудовании и драйверах
Подобно /proc, каталог /sys — это виртуальная файловая система, экспонирующая структуру устройств, шин и драйверов. Она используется в первую очередь для взаимодействия с подсистемой управления питанием, горячей заменой устройств (hotplug) и настройкой параметров оборудования через простые текстовые файлы.
/tmp — временные файлы
Каталог /tmp предназначен для хранения временных файлов, создаваемых программами и пользователями. Содержимое может быть удалено при перезагрузке или очищено автоматически по истечении срока давности. Некоторые системы монтируют /tmp в оперативную память для повышения производительности.
/usr — пользовательские программы и данные
Несмотря на название (Unix System Resources), каталог /usr содержит не пользовательские файлы, а второстепенные, но важные компоненты системы:
/usr/bin— большинство пользовательских команд —python,perl,git,gcc;/usr/lib— библиотеки для программ из/usr/bin;/usr/share— архитектурно-независимые данные — документация, значки, локализация;/usr/local— программное обеспечение, установленное локально администратором (вне пакетного менеджера).
В современных системах /usr часто объединяется с корнем, но логически остаётся отдельной частью.
/var — переменные данные
Каталог /var хранит файлы, которые постоянно изменяются в процессе работы системы:
/var/log— системные журналы:syslog,auth.log,kern.log;/var/mail— почтовые ящики пользователей;/var/spool— очереди задач — печать, cron, почта;/var/www— корневая директория веб-сервера (в некоторых дистрибутивах);/var/run— устаревшее место для runtime-данных (теперь чаще используется/run).
Этот каталог критически важен для диагностики и мониторинга системы.
Практика — первые 30 минут в Linux
Маршрут для перехода с Windows (параллель Windows / практика):
- Навигация —
pwd,ls -la,cd,mkdir ~/test; открыть тот же каталог в файловом менеджере. - Процессы —
htopилиtop; найти свой shell;killзависший процесс. - Сеть —
ip a,ping -c 3 8.8.8.8,ss -tuln. - Логи —
journalctl -b -p err, просмотр/var/log/syslog(если есть). - Пакет —
sudo apt install tree(илиdnf/pacman) иtree -L 2 /etc. - Служба —
systemctl status ssh(или другая установленная служба). - FHS — пройти
/bin,/etc,/home,/var/logи сопоставить с таблицами ниже.
htop— кто грузит CPU/RAM.iotop— дисковый I/O.df -h— заполненность разделов.journalctl -b -p err— ошибки загрузки.free -h— память и swap; при нехватке RAM — OOM killer вdmesg.
Далее — основы UNIX, сравнение с Windows, планирование CPU, подсистема I/O.