KNOWLEDGE_BASE / ONLINE

LINUX
WITHOUT
FEAR.

Большая практическая база знаний по Linux. От первой команды в терминале до диагностики серверов, Docker, systemd, SSH, сетей, файловых систем, процессов и безопасности.

Без бессмысленной теории. Здесь собраны команды и методы, которые действительно нужны при работе с Linux.

180+COMMANDS
70+GUIDES
12SECTIONS
24/7DATABASE
visitor@linux-guides: ~
visitor@linux-guides:~$ uname -a
Linux linux-guides 6.x GNU/Linux x86_64

visitor@linux-guides:~$ cat /etc/os-release
NAME="Linux Guides"
ID=knowledge_base
HOME_URL="linux-guides.online"

visitor@linux-guides:~$ ls ~/knowledge/
basics/
network/
systemd/
docker/
storage/
security/
troubleshooting/

visitor@linux-guides:~$ systemctl status knowledge-base
● knowledge-base.service
  Loaded: loaded
  Active: active (running)
  Tasks: 70 guides
  Memory: knowledge unlimited

visitor@linux-guides:~$
LINUX://GUIDES / UBUNTU / DEBIAN / ARCH / FEDORA / SYSTEMD / JOURNALCTL / SSH / NETWORK / DOCKER / BASH / STORAGE / CPU / RAM / SECURITY / TROUBLESHOOTING / LINUX://GUIDES / UBUNTU / DEBIAN / ARCH / FEDORA / SYSTEMD / JOURNALCTL / SSH / NETWORK / DOCKER / BASH / STORAGE / CPU / RAM / SECURITY / TROUBLESHOOTING /
// 01 — KNOWLEDGE_MAP

БОЛЬШАЯ БАЗА
LINUX.

Всё разбито по реальным задачам: от файлов и процессов до сети, контейнеров и диагностики серверов.

01 / BASICS
~/

Основы

Терминал, файловая система, пути, sudo, пользователи и первые команды.

18 GUIDES
02 / NETWORK
⇄

Сеть

IP, маршруты, DNS, порты, интерфейсы и диагностика соединений.

24 GUIDES
03 / SSH
>_

SSH

Ключи, подключения, SCP, конфигурация и обслуживание удалённых машин.

16 GUIDES
04 / SYSTEMD
●

systemd

Сервисы, unit-файлы, автозапуск, timers и системные журналы.

21 GUIDES
05 / DOCKER
▣

Docker

Контейнеры, Compose, volumes, networks, images и диагностика.

28 GUIDES
06 / STORAGE
▰

Диски

Разделы, файловые системы, mount, df, du, lsblk и заполненный диск.

19 GUIDES
07 / PROCESS
⌁

Процессы

CPU, RAM, load average, top, ps, kill, nice и мониторинг ресурсов.

17 GUIDES
08 / SECURITY
[+]

Безопасность

Права, firewall, SSH, обновления и базовый аудит Linux-сервера.

22 GUIDES
09 / BASH
$_

Bash

Pipes, grep, переменные, циклы, скрипты и автоматизация.

25 GUIDES
10 / LOGS
::

Логи

journalctl, dmesg, системные ошибки и анализ журналов.

14 GUIDES
11 / PACKAGES
pkg

Пакеты

APT, DNF, Pacman, зависимости, установка и обновления.

16 GUIDES
12 / SERVER
srv

Сервер

Cron, backup, веб-сервисы, мониторинг и обслуживание VPS.

30 GUIDES
// WHY_LINUX

НЕ НУЖНО
БОЯТЬСЯ
ТЕРМИНАЛА.

Linux становится намного проще, когда Вы понимаете несколько базовых вещей: файловую систему, права, процессы, сервисы и сеть.

Большинство проблем решается не сотней случайных команд, а последовательной диагностикой: определить симптом, проверить состояние, найти журнал, изменить только нужную часть системы и проверить результат.

LINUX KERNEL / USERSPACE
// 02 — COMMAND_DATABASE

КОМАНДЫ,
КОТОРЫЕ НУЖНЫ.

Не случайный список из сотен команд, а основные инструменты, которые постоянно используются при работе с Linux.

Информация о системеSYSTEM
uname -a uname -r cat /etc/os-release hostnamectl
Версия ядра, архитектура, дистрибутив и hostname.
Информация о CPUHARDWARE
lscpu nproc grep "model name" /proc/cpuinfo | head
Модель CPU, архитектура и количество доступных потоков.
RAM и SwapMEMORY
free -h swapon --show cat /proc/meminfo | head -20
Использование оперативной памяти и swap.
Свободное местоSTORAGE
df -h df -i du -sh /* du -ah /var 2>/dev/null | sort -rh | head -20
Свободное место, inode и поиск крупных файлов/каталогов.
Диски и разделыSTORAGE
lsblk -f findmnt sudo fdisk -l
Диски, разделы, файловые системы и точки монтирования.
IP и маршрутыNETWORK
ip addr ip link ip route
Интерфейсы, IP-адреса и таблица маршрутизации.
Какие порты слушаютсяNETWORK
sudo ss -lntup sudo ss -tupna
Listening sockets и текущие TCP/UDP соединения.
Проверка DNSNETWORK
getent hosts example.com resolvectl status resolvectl query example.com
Проверка разрешения домена и используемых DNS-серверов.
Проверка интернетаNETWORK
ping -c 4 1.1.1.1 curl -I https://example.com curl -4 ifconfig.me
Проверка IP-связности, HTTP и внешнего IPv4.
Процессы по CPUPROCESS
ps aux --sort=-%cpu | head -20 top uptime
Какие процессы используют CPU и текущий load average.
Процессы по RAMPROCESS
ps aux --sort=-%mem | head -20 free -h
Поиск процессов с самым большим потреблением памяти.
Завершить процессPROCESS
kill PID kill -TERM PID kill -KILL PID
Сначала используйте обычный TERM. KILL оставляйте для зависших процессов.
Сервисы systemdSYSTEMD
systemctl --failed systemctl --type=service --state=running systemctl status ssh
Запущенные и упавшие сервисы, а также статус конкретного unit.
Системные ошибкиLOGS
sudo journalctl -p warning..alert --since today sudo journalctl -xe sudo journalctl -b
Ошибки, предупреждения и журнал текущей загрузки.
Сообщения ядраKERNEL
sudo dmesg -T | tail -100 sudo dmesg -T | grep -iE "error|fail|warn"
Полезно при проблемах с дисками, сетью, драйверами и оборудованием.
Файлы и праваFILES
ls -lah stat file chmod 640 file sudo chown user:group file
Просмотр метаданных, изменение прав и владельца.
ПоискFILES
find /etc -type f -name "*.conf" 2>/dev/null grep -Rni "Listen" /etc 2>/dev/null
Поиск файлов и текста внутри файлов.
Docker - общее состояниеDOCKER
docker ps -a docker images docker stats --no-stream docker system df
Контейнеры, images, ресурсы и использование диска.
Docker logsDOCKER
docker logs --tail 100 CONTAINER docker logs -f CONTAINER
Последние строки или просмотр логов в реальном времени.
Uptime и перезагрузкаSYSTEM
uptime who -b sudo reboot sudo shutdown -h now
Uptime, время последней загрузки и управление питанием.
// 03 — DISTRIBUTIONS

ВЫБЕРИТЕ
СВОЙ DISTRO.

Большая часть Linux одинакова. Главное различие для начинающего пользователя - пакеты, релизная модель и некоторые системные инструменты.

Ubuntu

Один из самых популярных вариантов для desktop, VPS и облачных серверов.

sudo apt update sudo apt upgrade sudo apt install PACKAGE sudo apt remove PACKAGE

Debian

Стабильная система, часто используемая как основа серверной инфраструктуры.

sudo apt update apt search PACKAGE apt list --installed sudo apt autoremove

Arch

Минималистичный rolling-release дистрибутив с большим контролем над системой.

sudo pacman -Syu sudo pacman -S PACKAGE sudo pacman -R PACKAGE pacman -Q

Fedora

Современный RPM-дистрибутив с быстрым внедрением новых Linux-технологий.

sudo dnf upgrade sudo dnf install PACKAGE sudo dnf remove PACKAGE dnf search PACKAGE
// 04 — POPULAR_GUIDES

ГАЙДЫ ДЛЯ
РЕАЛЬНЫХ ЗАДАЧ.

То, с чем сталкиваются пользователи Linux и администраторы серверов каждый день.

GUIDE / 001BEGINNER

Настройка SSH-ключей

Создание ключа, копирование публичной части и проверка входа.

SSHSERVER
GUIDE / 002MEDIUM

Свой systemd service

ExecStart, User, WorkingDirectory, Restart и автозапуск.

SYSTEMDSERVICE
GUIDE / 003BEGINNER

Диск заполнен на 100%

Как найти, куда ушло место, и не удалить нужные данные.

DISKDFDU
GUIDE / 004MEDIUM

Docker Compose

Сервисы, volumes, networks, restart policy и диагностика.

DOCKERCOMPOSE
GUIDE / 005MEDIUM

Есть сеть, но нет интернета

IP, default route, DNS и пошаговая диагностика.

NETWORKDNS
GUIDE / 006BEGINNER

chmod 755, 644 и rwx

Как работают Linux permissions и почему не стоит везде ставить 777.

FILESPERMISSIONS
GUIDE / 007MEDIUM

Высокий Load Average

Как отличить CPU bottleneck от ожидания I/O.

CPULOAD
GUIDE / 008BEGINNER

Читаем journalctl

Логи сервиса, текущей загрузки, диапазоны времени и приоритеты.

LOGSJOURNAL
GUIDE / 009MEDIUM

Backup через rsync

Копирование данных, удалённый сервер и исключения.

BACKUPRSYNC
// 05 — NETWORK
root@server:~# ip route
default via 192.168.1.1 dev eth0
192.168.1.0/24 dev eth0 proto kernel

root@server:~# ss -lnt
LISTEN 0 4096 0.0.0.0:22
LISTEN 0 4096 0.0.0.0:80
LISTEN 0 4096 0.0.0.0:443
NETWORK / DIAGNOSTICS

СЕТЬ
БЕЗ МАГИИ.

Не нужно сразу менять DNS, firewall и конфигурацию сети. Сначала определите, на каком уровне возникает проблема.

01 // ip link - поднят ли интерфейс?
02 // ip addr - есть ли IP?
03 // ip route - есть ли default route?
04 // ping 1.1.1.1 - работает ли IP-связность?
05 // getent hosts example.com - работает ли DNS?
06 // ss -lntup - слушает ли приложение порт?
07 // curl -v URL - отвечает ли приложение?
// NETWORK_GUIDE

ДИАГНОСТИКА
ПО ШАГАМ.

Набор проверок, который полезен почти при любой сетевой проблеме Linux.

01 / INTERFACE

Проверяем интерфейс

Сначала посмотрите, какие интерфейсы есть в системе и находятся ли они в состоянии UP.

ip link ip addr
02 / ROUTE

Проверяем маршрут

Для обычного доступа в интернет системе чаще всего нужен default route.

ip route ip route get 1.1.1.1
03 / DNS

Отделяем DNS от сети

Если IP доступен, но доменное имя нет, проблема может быть в разрешении имён.

ping -c 3 1.1.1.1 getent hosts example.com resolvectl status
04 / PORT

Проверяем приложение

Если сервер доступен, но конкретный сервис нет, убедитесь, что порт действительно слушается.

sudo ss -lntup systemctl --failed
05 / HTTP

Проверяем HTTP отдельно

curl позволяет увидеть DNS resolution, подключение, TLS и HTTP-ответ, поэтому часто намного полезнее обычного ping при диагностике веб-сервиса.

curl -I https://example.com curl -v https://example.com
// 06 — SYSTEMD

СЕРВИСЫ
ПОД КОНТРОЛЕМ.

systemctl управляет состоянием systemd units. Если приложение не работает, status обычно должен быть одной из первых команд.

$ systemctl status nginx
$ sudo systemctl restart nginx
$ sudo systemctl enable nginx
$ systemctl --failed
$ journalctl -u nginx --since today
/etc/systemd/system/example.service
[Unit] Description=Example Application After=network-online.target [Service] Type=simple User=example WorkingDirectory=/opt/example ExecStart=/opt/example/app Restart=on-failure RestartSec=5 [Install] WantedBy=multi-user.target
// 07 — DOCKER

КОНТЕЙНЕРЫ
БЕЗ ПАНИКИ.

Основные команды Docker для запуска, проверки состояния и диагностики контейнеров.

CONTAINERS
docker psЗапущенные контейнеры
docker ps -aВсе контейнеры
docker restart NAMEПерезапуск
docker inspect NAMEКонфигурация
docker statsCPU и RAM
LOGS
docker logs NAMEВсе доступные логи
docker logs -f NAMEСледить за логом
docker logs --tail 100 NAMEПоследние 100 строк
journalctl -u dockerDocker daemon
COMPOSE
docker compose up -dЗапуск
docker compose downОстановка
docker compose psСтатус
docker compose logs -fЛоги
docker compose pullСкачать новые images
STORAGE
docker system dfИспользование диска
docker imagesImages
docker volume lsVolumes
docker network lsNetworks
Осторожно: перед использованием команд очистки Docker убедитесь, что удаляемые images, containers и особенно volumes действительно больше не нужны.
// 08 — STORAGE

КУДА ДЕЛОСЬ
МЕСТО?

Одна из самых частых серверных проблем - внезапно заполненный диск.

DISK / 01

Сначала df

Показывает использование смонтированных файловых систем.

df -h df -i
DISK / 02

Потом du

Позволяет определить, какие каталоги занимают место.

sudo du -xhd1 / | sort -h sudo du -xhd1 /var | sort -h
DISK / 03

Проверяем journal

Systemd journal тоже может занимать заметное место.

journalctl --disk-usage
DISK / 04

Проверяем Docker

Images, build cache и старые контейнеры способны быстро занять диск.

docker system df docker ps -a docker images
DISK / 05

df и du показывают разные цифры?

Одна из возможных причин - файл уже удалён из каталога, но процесс продолжает держать его открытым.

sudo lsof +L1
// 09 — SECURITY_BASELINE

БАЗОВАЯ
ЗАЩИТА.

Не существует одной команды, которая делает сервер безопасным. Начните с простых и понятных вещей.

01 / UPDATE

Обновления

Регулярно устанавливайте исправления безопасности из доверенных репозиториев.

sudo apt update
02 / SSH

SSH-ключи

Для администрирования сервера используйте современные ключи и защищайте приватную часть.

ssh-keygen -t ed25519
03 / PORTS

Проверяйте порты

Вы должны понимать, какой процесс слушает каждый внешний порт.

sudo ss -lntup
04 / FIREWALL

Firewall

Разрешайте только тот входящий трафик, который действительно нужен.

sudo nft list ruleset
05 / USERS

Не всё от root

Обычные приложения не должны автоматически получать максимальные привилегии.

id && groups
06 / SERVICES

Лишние сервисы

Проверяйте запущенные сервисы и отключайте ненужные после проверки их назначения.

systemctl --type=service
07 / FAILED

Ошибки systemd

Упавшие units могут указывать на проблемы конфигурации или обновления.

systemctl --failed
08 / LOGIN

История входов

Проверяйте последние интерактивные входы на сервер.

last -a | head
09 / PERMISSIONS

Права файлов

Не выдавайте write/execute всем пользователям просто для устранения ошибки.

stat FILE
// 10 — FILE_PERMISSIONS

RWX БЕЗ
ЗАГАДОК.

Linux разделяет права владельца, группы и остальных пользователей.

MODE / 644

Обычный файл

Владелец может читать и изменять файл. Группа и остальные - только читать.

chmod 644 file.txt
MODE / 755

Исполняемый файл

Владелец может читать, писать и выполнять. Остальные - читать и выполнять.

chmod 755 script.sh
OWNER

Владелец

chown изменяет владельца и при необходимости группу.

sudo chown user:group file
INSPECT

Посмотреть права

ls и stat помогут увидеть текущий режим, владельца и группу.

ls -lah file stat file
WARNING / 777

Почему не надо сразу chmod 777?

777 выдаёт чтение, запись и выполнение владельцу, группе и всем остальным. Это часто маскирует настоящую проблему с владельцем или группой вместо её исправления.

Лучше: определить, какой пользователь запускает приложение, кто должен владеть файлом и какие операции действительно необходимы.
// 11 — PERFORMANCE

CPU, RAM
И LOAD.

Высокое число само по себе ещё не диагноз. Нужно понять, какой ресурс ограничивает систему.

CPU / 01LIVE

CPU 100%

Начните с top и списка процессов по CPU. Определите PID и приложение.

toppsCPU
RAM / 02MEMORY

Мало свободной RAM

Смотрите не только free, но и available. Linux активно использует память под cache.

freeRAM
LOAD / 03SYSTEM

Load Average

Высокий load может быть связан не только с CPU, но и с задачами, ожидающими I/O.

uptimeload
IO / 04DISK

Медленный диск

Если CPU свободен, а система зависает, стоит проверить I/O и состояние накопителя.

I/ODISK
SWAP / 05MEMORY

Swap

Swap не является заменой RAM, но может дать системе запас при кратковременных пиках.

swapRAM
UPTIME / 06SYSTEM

Быстрый health check

uptime, free, df, systemctl --failed и ps дают быстрый обзор состояния сервера.

healthserver
// 12 — MEGA_CHEATSHEET

LINUX
CHEATSHEET.

Самое нужное в одном месте.

FILES
ls -lahСписок файлов
pwdТекущий каталог
cd /pathПерейти в каталог
mkdir -p DIRСоздать каталог
cp -a SRC DSTКопировать
mv SRC DSTПереместить
rm -i FILEУдалить с подтверждением
TEXT
cat FILEВывести файл
less FILEПросмотр
head -20 FILEПервые строки
tail -20 FILEПоследние строки
tail -f FILEСледить за файлом
grep TEXT FILEПоиск текста
NETWORK
ip addrIP
ip routeМаршруты
ss -lntupПорты
ping HOSTPing
curl -I URLHTTP headers
getent hosts DOMAINDNS lookup
PROCESS
ps auxПроцессы
topМониторинг
kill PIDЗавершить
uptimeUptime/load
free -hRAM
SYSTEMD
systemctl status NAMEСтатус
systemctl restart NAMERestart
systemctl enable NAMEАвтозапуск
systemctl --failedОшибки
journalctl -u NAMEЛоги
ARCHIVES
tar -czf a.tar.gz DIRСоздать tar.gz
tar -xzf a.tar.gzРаспаковать
zip -r a.zip DIRСоздать ZIP
unzip a.zipРаспаковать ZIP
// 13 — TROUBLESHOOTING_DATABASE

ЧТО-ТО
СЛОМАЛОСЬ?

Открывайте нужный сценарий и проверяйте систему последовательно.

01Сервис не запускается+
Сначала получите статус unit и последние сообщения журнала. systemctl status NAME --no-pager journalctl -u NAME -n 100 --no-pager После этого проверяйте конфигурацию самого приложения. Не переустанавливайте пакет до того, как увидите исходную ошибку.
02Address already in use / порт занят+
Найдите процесс, который уже слушает нужный порт. sudo ss -lntup sudo ss -lntp | grep ':443' Затем определите, должен ли существующий сервис использовать этот порт.
03No space left on device+
Проверьте как свободное место, так и inode. df -h df -i sudo du -xhd1 /var | sort -h Если используется Docker, отдельно проверьте docker system df.
04Сервер не выходит в интернет+
Проверяйте снизу вверх. ip link ip addr ip route ping -c 3 1.1.1.1 getent hosts example.com Если IP работает, а имя нет - смотрите DNS. Если нет IP-связности - DNS пока не является основной проблемой.
05Docker-контейнер постоянно перезапускается+
Сначала посмотрите состояние и логи. docker ps -a docker logs --tail 150 CONTAINER docker inspect CONTAINER Частые причины: неверные переменные окружения, отсутствующий файл, недоступная БД или неправильные права.
06CPU загружен на 100%+
Определите процесс, а не перезагружайте сервер вслепую. top ps aux --sort=-%cpu | head -20 После определения PID выясните, какому сервису или контейнеру он принадлежит.
07Заканчивается оперативная память+
free -h ps aux --sort=-%mem | head -20 swapon --show Смотрите available memory и процессы. Низкое значение free само по себе не всегда означает проблему.
08SSH connection refused+
На сервере проверьте сервис и listening socket. systemctl status ssh sudo ss -lntp | grep ':22' Если порт слушается локально, следующим этапом является firewall и внешняя сеть.
09Permission denied+
Не начинайте с chmod 777. id ls -lah FILE stat FILE Определите владельца, группу и пользователя, от имени которого выполняется операция.
10После перезагрузки сервис не поднялся+
systemctl --failed systemctl is-enabled NAME journalctl -b -u NAME Проверьте, включён ли автозапуск и что происходило с сервисом именно в текущую загрузку.
// 14 — USEFUL_TECHNIQUES

ПОЛЕЗНЫЕ
ПРИЁМЫ.

Мелочи, которые делают работу в терминале намного удобнее.

TIP / 01SHELL

История команд

Используйте history и поиск Ctrl+R вместо постоянного повторного ввода длинных команд.

historybash
TIP / 02PIPE

Комбинируйте команды

Pipe позволяет передать вывод одной программы другой.

|grepsort
TIP / 03MAN

Читайте man

Не помните опцию? man и --help зачастую быстрее поиска случайной статьи.

man--help
TIP / 04SAFE

Проверяйте перед rm

Для важного каталога сначала выполните ls/find и убедитесь, что путь выбран правильно.

rmsafety
TIP / 05CONFIG

Backup конфига

Перед серьёзным изменением конфигурации удобно сохранить исходную копию.

cpconfig
TIP / 06LOGS

Не угадывайте ошибку

Если сервис упал, сначала прочитайте status и журнал, а уже потом меняйте систему.

logsdebug
// 15 — FAQ

ЧАСТЫЕ
ВОПРОСЫ.

База для тех, кто только начинает работать с Linux.

Linux и Ubuntu - одно и то же?+
Нет. Ubuntu - один из дистрибутивов, построенных вокруг Linux и большого набора пользовательского ПО.
Нужно ли всё делать от root?+
Нет. Для обычной работы лучше использовать обычного пользователя и повышать привилегии только для конкретных административных операций.
Как узнать версию Linux?+
Дистрибутив обычно можно посмотреть через cat /etc/os-release, а версию ядра через uname -r.
Где Linux хранит логи?+
Это зависит от системы и приложения. На systemd-системах большая часть системных событий доступна через journalctl. Многие приложения также используют /var/log.
Почему free показывает мало свободной RAM?+
Linux использует неиспользуемую память под cache. Для быстрой оценки запаса памяти полезнее смотреть поле available в free -h.
Почему команда требует sudo?+
Некоторые операции меняют системные файлы, сеть, сервисы или другие защищённые ресурсы и требуют повышенных прав.
Можно ли просто копировать любую команду из интернета?+
Нет. Особенно внимательно относитесь к командам с root, удалением файлов, изменением firewall, дисков и загрузчика. Понимайте назначение команды перед выполнением.
Как узнать справку по команде?+
Попробуйте man COMMAND, COMMAND --help или apropos KEYWORD.
// 16 — FEEDBACK_CHANNEL

НАШЛИ ОШИБКУ?
ПРЕДЛОЖИТЕ ГАЙД.

Linux постоянно развивается. Если Вы нашли неточность, хотите предложить новый раздел или знаете более удобный способ решения задачи - напишите редакции.

GENERAL    hello@linux-guides.online
GUIDES     guides@linux-guides.online
SECURITY   security@linux-guides.online
EDITORIAL  editor@linux-guides.online
RESPONSE    обычно до 48 часов