Linux Administration
Linux Administration
Linux — Администрирование
1.Навигация и работа с файлами
Основные команды
pwd – показать текущую директорию
ls – список файлов и папок
ls -l – подробный список (права, владелец, размер)
ls -a – показать скрытые файлы
cd <директория> – перейти в папку
cd .. – на уровень выше
cd ~ – в домашнюю директорию
mkdir <имя> – создать папку
touch <файл> – создать файл
cp <источник> <цель> – копировать файл/папку
cp -r – копировать рекурсивно (для папок)
mv <источник> <цель> – переместить или переименовать
rm <файл> – удалить файл
rm -r – удалить папку рекурсивно
rm -f – принудительное удаление (без подтверждения)
cat <файл> – вывести содержимое файла
less <файл> – просмотр файла с прокруткой
head <файл> – первые 10 строк файла
tail <файл> – последние 10 строк файла
tail -f – следить за изменениями в реальном времени (логи)
which - показывает полный путь к исполняемому файлу, который будет запущен при вводе указанной команды в терминале
Редактор - nano
Команда nano в Linux — это простой и удобный текстовый редактор для терминала. Он часто используется для быстрого редактирования конфигурационных файлов, скриптов и других текстовых документов.
Запуск редактора
Основные горячие клавиши
nano управляется комбинациями клавиш (обозначаются как ^X — это Ctrl + X).
Сохранение и выход
2.Поиск
find <путь> -name "шаблон" – поиск файлов по имени
grep “текст” - поиск строк по тексту в выводе команды, используется через pipe | например: ps -A | grep “prometheus” - вывод всех процессов на сервере, которые содержат текст “prometheus”.
grep "текст" <файл> – поиск текста в файле
grep -r "текст" <папка> – рекурсивный поиск файла по содержимому
locate <файл> – быстрый поиск файла (требует updatedb)
3.Права и владельцы
chmod <права> <файл> – изменить права (например, chmod 755 file.sh) - порядок цифр: владелец/группа/другие пользователи
chown <пользователь>:<группа> <файл> – изменить владельца
sudo <команда> – выполнить команду от root
Типы прав
У каждого файла/папки есть 3 категории прав:
u (user) — владелец файла.
g (group) — группа-владелец.
o (others) — все остальные.
Виды прав
r (read) — чтение (4).
w (write) — запись (2).
x (execute) — выполнение (1).
Способы задания прав
Буквенный формат:
u=rwx — владелец получает все права.
g=rx — группа: чтение и выполнение.
o= — остальные: никаких прав.
Цифровой формат (восьмеричный)
Каждая категория (u, g, o) задаётся числом от 0 до 7:
4.Работа с процессами
ps – список процессов
ps aux – все процессы подробно
kill
kill -9
bg / fg – управление фоновыми задачами
top / htop – мониторинг процессов в реальном времени
Основные разделы вывода top:
Первая строка (uptime):
Время работы системы (up).
Количество пользователей.
Load average (средняя загрузка CPU за 1, 5 и 15 минут).
Вторая строка (Tasks):
Общее количество процессов (total).
Запущенные (running), спящие (sleeping), остановленные (stopped), зомби (zombie).
Третья строка (%CPU):
Загрузка процессора (us — пользовательские процессы, sy — системные, id — простой).
В Linux при выводе команды top утилизация CPU может показывать значения выше 100% (например, 400%). Это нормально, и вот почему:
Многоядерные/многопоточные CPU
100% = одно ядро CPU.
Если у процессора 4 ядра, то максимальная суммарная загрузка — 400% (4 × 100%).
Пример:
400% us — пользовательские процессы загружают все 4 ядра на 100%.
600% id — 6 ядер (если их всего 10) простаивают.
Как проверить количество ядер?
Как смотреть загрузку по ядрам?
Нажмите 1 (цифра один) — покажет загрузку каждого ядра отдельно.
Теперь вместо одной строки %Cpu(s) вы увидите отдельные строки для каждого ядра/потока.
Пример для 4-ех ядерного процессора:
Cpu0, Cpu1, ... — номера ядер (или потоков, если включен Hyper-Threading).
us — загрузка пользовательскими процессами.
sy — загрузка системными процессами.
id — простой (idle).
wa (I/O wait) Ожидание ввода-вывода (диск/сеть).
hi (hardware IRQ) Обслуживание аппаратных прерываний.
si (software IRQ) Обслуживание программных прерываний.
st (steal) Потеря ресурсов из-за виртуализации (например, на VPS).
Четвертая строка (%Mem):
Использование оперативной памяти.
Таблица процессов (по умолчанию сортируется по %CPU):
PID — ID процесса.
USER — владелец.
PR — приоритет.
NI — nice-значение (влияет на приоритет).
VIRT — виртуальная память.
RES — резидентная память (фактически используемая).
SHR — разделяемая память.
S — статус (R — работает, S — спит, Z — зомби).
%CPU и %MEM — загрузка CPU и RAM.
COMMAND — имя процесса.
5.Сеть
ifconfig / ip a – информация о сетевых интерфейсах
ping <хост> – проверить доступность хоста
netstat -tuln – открытые порты
ssh
scp <файл>
6.Система
df -h – свободное место на дисках
du -sh <папка> – размер папки
uname -a – информация о системеhttps://chat.deepseek.com/a/chat/s/7571b5ff-37fe-4d8a-b45e-bf8a181dcfe8
reboot / shutdown now – перезагрузка / выключение
7.Службы Linux
systemctl
Определение: Основная команда для управления системными сервисами (демонами) в systemd.
Пример:
status (подкоманда systemctl)
Определение: Показывает текущее состояние сервиса (работает, остановлен, ошибки).
Пример:
restart (подкоманда systemctl)
Определение: Перезапускает сервис (останавливает и снова запускает).
Пример:
stop (подкоманда systemctl)
Определение: Останавливает сервис.
Пример:
enable (подкоманда systemctl)
Определение: Включает автозагрузку сервиса при старте системы.
Пример:
Все команды требуют прав sudo (кроме status в некоторых случаях).
8.Установка пакетов
В Linux существует несколько менеджеров пакетов, и команды для установки программ зависят от дистрибутива.
apt (Debian/Ubuntu и производные)
apt (Advanced Package Tool) — основной менеджер пакетов в Debian-based системах (Ubuntu, Linux Mint и др.).
Пример установки пакета:
yum / dnf (RHEL/CentOS/Fedora)
yum (старый менеджер в RHEL/CentOS 7 и старых версиях Fedora).
dnf (новый менеджер в RHEL 8+, Fedora, CentOS Stream).
Основные команды dnf (аналогично yum):
Пример установки пакета:
pacman (Arch Linux и производные)
pacman — менеджер пакетов в Arch Linux, Manjaro и др.
Пример установки пакета:
zypper (openSUSE)
zypper — менеджер пакетов в openSUSE.
Пример установки пакета:
9.Logrotate
Logrotate — это утилита в Linux, предназначенная для автоматического ротации (перезаписи, сжатия и удаления) лог-файлов. Она помогает управлять размером логов, предотвращая их бесконтрольный рост и заполнение дискового пространства.
Основные функции logrotate:
Ротация логов – переименование и архивирование старых логов.
Сжатие – уменьшение размера логов (обычно с помощью gzip, bzip2, xz).
Удаление старых логов – автоматическая очистка по возрасту или количеству.
Отправка сигналов сервисам – перезапуск или релоад сервисов для записи в новые лог-файлы.
Как работает logrotate?
Конфигурация: настройки хранятся в /etc/logrotate.conf и /etc/logrotate.d/.
Запуск: обычно выполняется ежедневно через cron (/etc/cron.daily/logrotate).
Действия:
Переименовывает текущий лог (например, app.log → app.log.1).
Создает новый пустой app.log.
Сжимает старые логи (app.log.1.gz).
Удаляет слишком старые логи (если настроено).
Пример конфигурации
Файл /etc/logrotate.d/nginx:
Основные директивы logrotate
Ручной запуск logrotate
Полезные советы
Мониторинг логов: используйте du -sh /var/log/, чтобы проверить их размер.
Кастомизация: можно настраивать ротацию для каждого сервиса отдельно в /etc/logrotate.d/.
Проверка синтаксиса: logrotate -d /path/to/config покажет возможные ошибки.
Логирование работы logrotate: /var/lib/logrotate/status хранит историю выполнения.
10.Логи Linux
В Linux логи обычно хранятся в директории /var/log/. Вот основные файлы и их назначение:
Основные логи системы
Логи сервисов и демонов
Логи входа в систему
Журналирование через journalctl (systemd)
В системах с systemd логи также хранятся в бинарном виде и доступны через:
Где искать логи, если их нет в /var/log?
Конфигурация rsyslog/syslog-ng – проверьте /etc/rsyslog.conf или /etc/syslog-ng/syslog-ng.conf.
Логи приложений – некоторые программы пишут логи в свои директории (например, /opt/app/logs/).
Docker-контейнеры – логи контейнеров можно посмотреть через docker logs