---
tags: [linux, cheatsheet]
verified: 2026-09-02
---

# Linux — сводный cheatsheet

*Quick Reference по всем статьям цикла*

---

## Карта статей

1. [Файловая иерархия](./linux-filesystem-hierarchy.md) — /etc, /proc, /sys, /var, FHS
2. [systemd](./linux-systemd.md) — units, services, timers, targets, journald
3. [Сеть](./linux-networking.md) — стек, ip, NetworkManager, nftables
4. [Пакетные менеджеры](./linux-package-managers.md) — dpkg/apt, rpm/dnf, pacman, Flatpak/Snap
5. [Ядро](./linux-kernel.md) — Kconfig, модули, sysctl, initramfs
6. [Контейнеризация](./linux-containerization.md) — namespaces, cgroups, Docker, Podman
7. [Безопасность](./linux-security-hardening.md) — DAC, capabilities, SELinux/AppArmor, seccomp, audit
8. [Файловые системы](./linux-filesystems.md) — ext4, XFS, Btrfs, LVM
9. [Загрузка и обновление](./linux-boot-management.md) — GRUB2, systemd-boot, live patching, snapshots
10. [Мониторинг и отладка](./linux-monitoring-debugging.md) — journalctl, perf, eBPF, USE Method
11. [Пользователи, группы, PAM и systemd-logind](./linux-users-pam.md) — UID/GID, shadow, стек PAM, сессии logind
12. [Время и синхронизация: chrony, timesyncd, RTC](./linux-time-sync.md) — RTC и системные часы, slew против step, chronyc

Отдельно от цикла живёт семейство статей о диагностике производительности:
[карта инструментов по слоям системы](./linux-perf-tools.md), а под ней —
восемь справочников команд к отдельным слоям: [CPU и планировщик](./linux-tldr-cpu-scheduler.md),
[память](./linux-tldr-memory.md), [файловые системы и хранение](./linux-tldr-storage.md),
[сетевой стек](./linux-tldr-network.md), [приложения и системные вызовы](./linux-tldr-syscall.md),
[фреймворки трассировки](./linux-tldr-tracing.md), [контейнеры и Kubernetes](./linux-tldr-containers-k8s.md),
[оборудование](./linux-tldr-hardware.md).

---

## Информация о системе

```bash
uname -a                              # ядро, архитектура, hostname
cat /etc/os-release                   # дистрибутив и версия
hostnamectl                           # hostname, chassis, virtualization
uptime                                # время работы, load average
lscpu                                 # CPU: модель, ядра, кэши
free -h                               # память (смотреть available, не free)
lsblk                                 # блочные устройства и разделы
df -hT                                # смонтированные ФС с типами
ip -br addr                           # сетевые интерфейсы и IP
cat /proc/cmdline                     # параметры загрузки ядра
```

## [systemd: сервисы и система](./linux-systemd.md)

```bash
# Управление сервисами
systemctl start|stop|restart|reload <unit>
systemctl enable|disable <unit>       # автозагрузка
systemctl status <unit>               # статус + последние логи
systemctl is-active|is-enabled <unit>
systemctl list-units --failed         # сломанные units
systemctl daemon-reload               # перечитать unit-файлы после изменений

# Targets (runlevels)
systemctl get-default                 # текущий target
systemctl isolate rescue.target       # переключиться в rescue
systemctl set-default multi-user.target

# Таймеры
systemctl list-timers --all
# Создать: .timer + .service в /etc/systemd/system/

# Ресурсы
systemd-cgls                          # дерево cgroups
systemd-cgtop                         # top по cgroups
systemctl show <unit> -p MemoryCurrent  # текущее потребление памяти

# Анализ загрузки
systemd-analyze                       # общее время
systemd-analyze blame                 # по unit'ам
systemd-analyze critical-chain        # critical path
```

## [Логи: journalctl](./linux-systemd.md) + [мониторинг](./linux-monitoring-debugging.md)

```bash
journalctl -b                         # текущая загрузка
journalctl -b -1                      # предыдущая загрузка
journalctl -u <unit>                  # конкретный сервис
journalctl -p err -b                  # ошибки текущей загрузки
journalctl -f -u <unit>              # follow (tail -f)
journalctl -k                         # kernel messages (≈ dmesg)
journalctl --since "1 hour ago"
journalctl _COMM=sshd                 # по имени процесса
journalctl -o json-pretty             # JSON со всеми метаданными
journalctl --disk-usage               # размер журнала
journalctl --vacuum-size=500M         # очистить до 500M
```

## [Сеть](./linux-networking.md)

```bash
# Интерфейсы и адреса
ip addr show                          # все интерфейсы
ip link set eth0 up|down
ip addr add 192.168.1.10/24 dev eth0
ip route show                         # таблица маршрутизации
ip route add default via 192.168.1.1
ip neigh show                         # ARP-таблица

# DNS
resolvectl status                     # systemd-resolved
dig example.com                       # DNS-запрос
cat /etc/resolv.conf                  # (может быть симлинк на resolved)

# Сокеты и соединения
ss -tlnp                              # listening TCP + процессы
ss -tanp                              # все TCP соединения
ss -s                                 # сводка по протоколам
ss -ti dst <IP>                       # TCP info (cwnd, rtt, retrans)

# Диагностика
ping -c 5 <host>
traceroute <host>                     # или mtr <host>
curl -vvv https://example.com         # HTTP с деталями
tcpdump -i eth0 -nn port 443         # захват пакетов

# Firewall (nftables)
nft list ruleset                      # все правила
nft add rule inet filter input tcp dport 443 accept
# Или через firewalld:
firewall-cmd --list-all
firewall-cmd --add-service=https --permanent
firewall-cmd --reload

# NetworkManager
nmcli device status                   # устройства
nmcli connection show                 # соединения
nmcli connection modify <conn> ipv4.addresses 10.0.0.5/24
nmcli connection up <conn>
```

## [Пакетные менеджеры](./linux-package-managers.md)

```bash
# === Debian/Ubuntu (dpkg + apt) ===
apt update && apt upgrade             # обновить пакеты
apt install|remove|purge <pkg>
apt search <query>
apt show <pkg>                        # информация о пакете
apt list --installed                  # установленные
apt policy <pkg>                      # версии и приоритеты
dpkg -L <pkg>                         # файлы пакета
dpkg -S /path/to/file                 # какому пакету принадлежит
apt-mark hold|unhold <pkg>            # заморозить версию
dpkg --configure -a                   # починить half-configured
apt --fix-broken install              # починить зависимости

# === RHEL/Fedora (rpm + dnf) ===
dnf install|remove|upgrade <pkg>
dnf search <query>
dnf info <pkg>
dnf provides /path/to/file           # какой пакет содержит файл
dnf repoquery --requires <pkg>       # зависимости
dnf history                           # история транзакций
dnf history undo <N>                  # откат транзакции
rpm -qa                               # все установленные
rpm -ql <pkg>                         # файлы пакета
rpm -qf /path/to/file                # какому пакету принадлежит

# === Arch (pacman) ===
pacman -Syu                           # sync + upgrade (всегда вместе!)
pacman -S <pkg>                       # установить
pacman -Rs <pkg>                      # удалить с зависимостями
pacman -Ss <query>                    # поиск
pacman -Qi <pkg>                      # информация
pacman -Ql <pkg>                      # файлы пакета
pacman -F /path/to/file              # какому пакету принадлежит

# === Универсальные форматы ===
flatpak install flathub <app>
flatpak update
flatpak list
snap install <app>
snap list
```

## [Ядро и модули](./linux-kernel.md)

```bash
uname -r                              # версия ядра
cat /boot/config-$(uname -r) | grep CONFIG_EXT4  # опции конфигурации
zcat /proc/config.gz                  # если CONFIG_IKCONFIG_PROC=y

# Модули
lsmod                                 # загруженные модули
modinfo <module>                      # метаданные
modprobe <module>                     # загрузить + зависимости
modprobe -r <module>                  # выгрузить
modprobe --show-depends <module>      # дерево зависимостей
# Blacklist: /etc/modprobe.d/*.conf → blacklist <module>
# Параметры: /etc/modprobe.d/*.conf → options <module> param=value

# sysctl (runtime-параметры ядра)
sysctl -a                             # все параметры
sysctl <key>                          # прочитать
sysctl -w <key>=<value>               # записать (временно)
# Постоянно: /etc/sysctl.d/99-custom.conf → key = value
sysctl --system                       # применить все файлы

# Ключевые sysctl
vm.swappiness = 10                    # агрессивность swap (серверы)
vm.overcommit_memory = 1              # для Redis (fork+COW)
fs.inotify.max_user_watches = 524288  # для IDE/dev workstations
kernel.panic = 10                     # reboot через 10s после panic
net.ipv4.ip_forward = 1              # маршрутизация

# Hardware
lspci -k                              # PCI-устройства и драйверы
lsusb                                 # USB-устройства
cat /proc/interrupts                  # прерывания
```

## [Контейнеры](./linux-containerization.md)

```bash
# Docker
docker run -d --name web -p 8080:80 --memory=256m --cpus=1.5 nginx:alpine
docker exec -it <container> /bin/sh
docker logs -f <container>
docker stats                          # ресурсы в реальном времени
docker inspect <container>            # полная конфигурация
docker compose up -d                  # multi-container
docker system prune -a                # очистка

# Podman (те же команды, rootless по умолчанию)
podman run -d --name web -p 8080:80 nginx:alpine
# systemd-интеграция — Quadlet (Podman 4.4+): .container в /etc/containers/systemd/
# (rootless — ~/.config/containers/systemd/); podman generate systemd устарел
podman kube generate mypod > pod.yaml # Kubernetes YAML

# Namespaces / cgroups (низкоуровневые)
lsns                                  # список namespaces
nsenter --target <PID> --mount --net --pid /bin/bash  # войти в namespace
unshare --fork --pid --mount-proc /bin/bash  # создать новый namespace
cat /sys/fs/cgroup/<path>/memory.current     # потребление памяти cgroup
```

## [Безопасность](./linux-security-hardening.md)

```bash
# SELinux (RHEL/Fedora)
getenforce                            # текущий режим
setenforce 0|1                        # Permissive|Enforcing (до reboot)
ls -Z /path                           # контексты файлов
ps -eZ | grep <process>              # контексты процессов
ausearch -m avc -ts recent            # последние denial'ы
audit2why < /var/log/audit/audit.log  # объяснить denial
restorecon -Rv /path                  # восстановить контексты
semanage fcontext -a -t <type> "/path(/.*)?"  # постоянное правило

# AppArmor (Ubuntu/Debian)
aa-status                             # загруженные профили
aa-enforce|aa-complain /etc/apparmor.d/<profile>
aa-logprof                            # обновить профиль по логам

# Capabilities
getcap /path/to/binary                # capabilities файла
setcap cap_net_bind_service+ep /path  # назначить capability
getpcaps <PID>                        # capabilities процесса

# Audit
ausearch -k <key>                     # поиск по ключу
aureport --auth                       # сводка аутентификации
# Правила: /etc/audit/rules.d/*.rules

# Hardening sysctl
kernel.dmesg_restrict = 1
kernel.kptr_restrict = 2
kernel.yama.ptrace_scope = 1
kernel.unprivileged_bpf_disabled = 1
```

## [Файловые системы и LVM](./linux-filesystems.md)

```bash
# Создание ФС
mkfs.ext4 -L label /dev/sdX1
mkfs.xfs -L label /dev/sdX1
mkfs.btrfs -L label /dev/sdX1

# ext4
tune2fs -l /dev/sdX1                  # параметры
tune2fs -m 1 /dev/sdX1               # зарезервировано для root (с 5% до 1%)
e2fsck -f /dev/sdX1                   # проверка (unmounted)
resize2fs /dev/sdX1                   # ресайз (grow online, shrink offline)

# XFS
xfs_info /mount/point
xfs_growfs /mount/point               # grow (online, no shrink!)
xfs_repair /dev/sdX1                  # repair (unmounted)

# Btrfs
btrfs subvolume create /mnt/@name     # субтом
btrfs subvolume snapshot /mnt/@ /mnt/@-snap  # снэпшот
btrfs subvolume snapshot -r /mnt/@ /mnt/@-backup  # read-only
btrfs send /mnt/@-backup | btrfs receive /backup/  # инкрементальный бэкап
btrfs filesystem show                 # устройства
btrfs filesystem usage /mnt/          # точное использование места
btrfs scrub start /mnt/              # проверка целостности (online)
btrfs device stats /mnt/             # ошибки I/O и checksums
chattr +C /var/lib/postgresql/        # отключить CoW для БД

# LVM
pvcreate /dev/sdX1                    # Physical Volume
vgcreate vg0 /dev/sdX1               # Volume Group
lvcreate -L 100G -n data vg0         # Logical Volume
lvextend -L +50G /dev/vg0/data       # расширить
resize2fs /dev/vg0/data              # ext4 grow (или xfs_growfs)
lvcreate -s -L 10G -n snap /dev/vg0/data  # snapshot
pvs; vgs; lvs                         # краткая сводка
```

## [Загрузка и обновление](./linux-boot-management.md)

```bash
# GRUB
# Конфигурация: /etc/default/grub → GRUB_CMDLINE_LINUX, GRUB_TIMEOUT
update-grub                           # Debian: перегенерировать grub.cfg
grub2-mkconfig -o /boot/grub2/grub.cfg  # RHEL

# UEFI
efibootmgr -v                         # boot entries
efibootmgr -n 0003                    # следующая загрузка (одноразово)

# Управление ядрами
grubby --default-kernel               # RHEL: дефолтное ядро
grubby --set-default /boot/vmlinuz-<version>

# GRUB rescue
set root=(hd0,gpt2)
linux /vmlinuz root=/dev/sda2 ro
initrd /initrd.img
boot

# initramfs
update-initramfs -u -k $(uname -r)   # Debian
dracut --force                        # RHEL
mkinitcpio -P                         # Arch

# Btrfs snapshots rollback
snapper list                          # список снэпшотов
snapper rollback <N>                  # откат
```

## [Мониторинг и отладка](./linux-monitoring-debugging.md)

```bash
# === 60-секундная диагностика (Brendan Gregg) ===
uptime                                # load average
dmesg -T | tail                       # kernel messages
vmstat 1 5                            # CPU/mem/swap/IO
mpstat -P ALL 1 3                     # per-CPU
pidstat 1 3                           # per-process
iostat -xz 1 3                        # disk I/O (await, %util)
free -h                               # память (available!)
sar -n DEV 1 3                        # сетевой throughput
sar -n TCP,ETCP 1 3                   # TCP stats
top                                   # интерактивный обзор

# Трассировка
strace -f -e trace=open,read,write -p <PID>  # syscalls (overhead!)
strace -c command                     # summary по syscalls
perf trace -p <PID>                   # strace через perf (меньший overhead)

# Профилирование
perf record -g -F 99 -p <PID> -- sleep 30   # CPU profiling
perf report                           # отчёт
perf stat command                     # hardware counters (IPC, cache misses)

# eBPF (production-safe)
opensnoop-bpfcc                       # трассировка open()
execsnoop-bpfcc                       # новые процессы
biolatency-bpfcc                      # латентность block I/O
tcpconnect-bpfcc                      # TCP connections
tcpretrans-bpfcc                      # TCP retransmits
runqlat-bpfcc                         # scheduler latency
ext4slower-bpfcc 10                   # медленные ext4 операции

# bpftrace one-liners
bpftrace -e 'tracepoint:syscalls:sys_enter_openat { printf("%s %s\n", comm, str(args.filename)); }'
bpftrace -e 'profile:hz:99 { @[kstack] = count(); }'
bpftrace -e 'kprobe:vfs_read { @[comm] = count(); }'

# Process debugging
coredumpctl list                      # core dumps
coredumpctl debug <PID>               # открыть в gdb
cat /proc/<PID>/status                # статус процесса
cat /proc/<PID>/maps                  # memory map
ls -la /proc/<PID>/fd/               # открытые файлы
cat /proc/<PID>/stack                 # kernel stack (root)
```

## [USE Method: чеклист по ресурсам](./linux-monitoring-debugging.md)

```text
Ресурс        Utilization              Saturation                  Errors
─────────────────────────────────────────────────────────────────────────────
CPU           mpstat -P ALL (%usr+%sys) vmstat r > CPU count        perf stat
Memory        free -h (available)       vmstat si/so, sar -B        dmesg | grep oom
Disk I/O      iostat -xz (%util)       iostat aqu-sz               smartctl, dmesg
Network       sar -n DEV (vs link)     ss -ti retrans, nstat       ip -s link (errors)
```

## FreeBSD эквиваленты (сводка)

```text
Linux                    FreeBSD
─────────────────────────────────────────
systemctl                service / sysrc
journalctl               /var/log/messages
apt / dnf / pacman       pkg
ip addr / ip route       ifconfig / route
nftables                 PF (pf.conf)
modprobe / lsmod         kldload / kldstat
docker / podman          jail / bastille
SELinux / AppArmor       MAC framework / securelevel
strace                   truss
perf / eBPF              DTrace
ext4 / Btrfs             UFS2 / ZFS
LVM                      GEOM + ZFS zpools
GRUB2                    loader (/boot/loader.conf)
update-grub              freebsd-update
snapper (Btrfs)          bectl (ZFS boot environments)
cgroups                  RCTL
/proc/PID/*              procstat
top / htop               top / systat
```

---

## Связанные заметки

- [Linux — средства диагностики производительности](./linux-perf-tools.md) — карта диагностических инструментов и справочники команд
- [Linux — план цикла статей](./linux-knowledge-base-plan.md) — структура и стиль статей цикла
- [FreeBSD — сводный cheatsheet](./freebsd-cheatsheet.md) — аналогичная шпаргалка по FreeBSD
