🐧

Linux Administration

Linux — Администрирование

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 @ – подключиться по SSH (с другого хоста, можно с Windows)

scp <файл> @:<путь> – копировать файл через SSH (с другого хоста, можно с Windows)

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 .

✍️ Сетевое взаимодействие