Практическое руководство по Linux для IT-специалистов: от установки до базового администрирования | AdminWiki
Timeweb Cloud — сервера, Kubernetes, S3, Terraform. Лучшие цены IaaS.
Попробовать

Практическое руководство по Linux для IT-специалистов: от установки до базового администрирования

08 апреля 2026 9 мин. чтения
Содержание статьи

Это руководство — структурированный путь освоения Linux для DevOps-инженеров и системных администраторов. Мы разберем ключевые навыки, необходимые для повседневной работы: от обоснованного выбора дистрибутива до эффективной работы в командной строке, управления пакетами и настройки сетевых интерфейсов. Вы получите готовые рабочие примеры конфигураций, которые минимизируют риски при развертывании, систематизируете знания и сможете уверенно работать в новых окружениях.

Материал основан на проверенной практике и ориентирован на решение конкретных задач. Мы сосредоточимся на практических аспектах, которые экономят время и снижают вероятность ошибок, предоставляя четкие инструкции для Ubuntu/Debian, Fedora/RHEL/CentOS и других популярных дистрибутивов.

Выбор дистрибутива Linux: основа для стабильной работы

Правильный выбор дистрибутива — фундамент для стабильной работы сервера. Он определяет доступность пакетов, частоту обновлений, сложность администрирования и уровень поддержки в enterprise-среде. Мы сравним три основных семейства, чтобы вы могли сделать взвешенный выбор, основанный на ваших задачах и окружении.

Ubuntu/Debian: универсальная стабильность для большинства задач

Семейство Debian, в частности Ubuntu LTS, является стандартом де-факто для многих облачных и веб-серверов. Его главные преимущества:

  • Огромное сообщество и документация: Практически любая проблема уже решена и описана.
  • Долгосрочная поддержка (LTS): Релизы Ubuntu LTS поддерживаются 5 лет, что критично для production-сред.
  • Простой менеджер пакетов APT: Интуитивно понятные команды apt update, apt install.

Недостаток — иногда более старые версии пакетов в стабильных репозиториях. Это компромисс в пользу надежности. Ubuntu/Debian идеально подходят для веб-серверов (Nginx, Apache), Docker-хостов, а также являются лучшим выбором для начинающих администраторов.

Fedora/RHEL/CentOS: корпоративная надежность и современные технологии

Это семейство — стандарт для корпоративных серверов, где критична предсказуемость и долгосрочная поддержка.

  • Red Hat Enterprise Linux (RHEL) / CentOS Stream: Ориентированы на стабильность. RHEL предоставляет коммерческую поддержку, CentOS Stream — upstream для будущих версий RHEL.
  • Fedora: Rolling-edge дистрибутив, который служит полигоном для технологий, позже попадающих в RHEL. Дает ранний доступ к новым версиям ядра и ПО.
  • Менеджеры пакетов DNF/YUM: dnf — современная замена yum в Fedora и RHEL 8+. Использует библиотеку libsolv для более быстрого разрешения зависимостей.
  • Интеграция с SELinux: Мандатный контроль доступа включен и настроен по умолчанию, что повышает безопасность.

Особенность — управление обновлениями через подписки (RHEL) и система модулей (Application Streams), позволяющая устанавливать разные версии одного ПО.

Arch Linux и нишевые дистрибутивы: когда нужна максимальная контроль

Arch Linux — это rolling-release дистрибутив, где пользователь получает абсолютно последние версии всех пакетов. Это дает максимальный контроль и свежее ПО, но требует глубоких знаний системы для администрирования.

  • Практически не используется для корпоративных production-серверов из-за потенциальной нестабильности обновлений.
  • Идеален для специфичных задач, где необходима последняя версия конкретного софта, или в качестве среды для разработки и тестирования.
  • Менеджер пакетов Pacman и система сборки AUR предоставляют доступ к огромному количеству пакетов.

Для работы в смешанных средах (Windows/Linux) рассмотрите Windows Subsystem for Linux (WSL 2). Он позволяет запускать полноценный дистрибутив Linux внутри Windows, что удобно для тестирования скриптов, изучения Linux или управления гибридной инфраструктурой. Современный Windows Terminal с GPU-ускорением значительно улучшает опыт работы с WSL, PowerShell и CMD, организуя их в отдельные вкладки.

Фундамент: работа в командной строке Bash и управление пакетами

Эффективная работа в терминале — базовый навык. Здесь мы даем «шпаргалку» команд и паттернов, которые используются ежедневно, и сравниваем системы управления пакетами для разных дистрибутивов.

Базовый набор команд Bash для ежедневного администрирования

Эти команды составляют основу взаимодействия с системой. Запоминайте не только команды, но и ключевые флаги.

  • Навигация и файлы: ls -la (подробный список), cd, pwd, cat, less (просмотр больших файлов), tail -f /var/log/syslog (отслеживание логов в реальном времени).
  • Поиск: find /etc -name "*.conf" (поиск файлов), grep -r "error" /var/log (рекурсивный поиск текста).
  • Процессы: ps aux | grep nginx (поиск процесса), top или htop (мониторинг ресурсов), kill -9 (принудительное завершение).

Пример для реальной задачи: найти все файлы .log старше 7 дней и удалить их: find /var/log -name "*.log" -mtime +7 -delete.

apt: управление пакетами в Ubuntu и Debian

APT (Advanced Package Tool) — высокоуровневый интерфейс для управления пакетами. Вот основные команды для безопасной работы:

# Обновление списка доступных пакетов (ВСЕГДА делайте это первым)
sudo apt update

# Установка обновлений для всех установленных пакетов
sudo apt upgrade

# Установка нового пакета
sudo apt install nginx

# Удаление пакета с сохранением конфигурационных файлов
sudo apt remove nginx

# Полное удаление пакета с конфигами
sudo apt purge nginx

# Поиск пакета
apt search "monitoring"

# Просмотр установленных пакетов
apt list --installed

Важно: Команда apt dist-upgrade может удалять пакеты для разрешения сложных зависимостей. Используйте ее с осторожностью, предварительно проверяя план действий (apt dist-upgrade --dry-run). Для добавления сторонних репозиториев используйте add-apt-repository.

dnf и yum: работа с пакетами в Fedora, RHEL и CentOS

В современных версиях RHEL/Fedora используется dnf. Синтаксис похож на yum, но производительность выше.

# Обновление всех пакетов (аналог apt update && apt upgrade)
sudo dnf update

# Установка пакета
sudo dnf install nginx

# Удаление пакета
sudo dnf remove nginx

# Поиск
sudo dnf search "python3"

# Просмотр информации о пакете
dnf info nginx

# Установка группы пакетов (например, для разработки)
sudo dnf groupinstall "Development Tools"

Для доступа к дополнительным пакетам в RHEL/CentOS часто требуется репозиторий EPEL (Extra Packages for Enterprise Linux). Установите его: sudo dnf install epel-release.

Для автоматизации рутинных задач, таких как мониторинг свободного места или проверка служб, начните с написания простых bash-скриптов. Это основа для более сложных систем, подобных тем, что описаны в нашем практическом руководстве по мониторингу производительности сервера.

Настройка сетевых интерфейсов и VPN: обеспечение связи и безопасности

Настройка сети — одна из самых частых задач. Здесь мы предоставляем конкретные примеры конфигураций для разных дистрибутивов и современных протоколов, чтобы минимизировать риск ошибки.

Конфигурация сети: от статического IP до DHCP

Способ настройки зависит от дистрибутива. Всегда проверяйте имена интерфейсов командой ip a.

Ubuntu 22.04+ / Debian (использует netplan):
Файл конфигурации: /etc/netplan/01-netcfg.yaml

network:
  version: 2
  ethernets:
    ens3:
      dhcp4: no
      addresses:
        - 192.168.1.10/24
      routes:
        - to: default
          via: 192.168.1.1
      nameservers:
        addresses: [8.8.8.8, 1.1.1.1]

Применить: sudo netplan apply

RHEL 9+ / Fedora 40+ (использует NetworkManager и ключевые файлы):
Файл конфигурации: /etc/NetworkManager/system-connections/ens3.nmconnection

[connection]
id=ens3
uuid=<авто>
type=ethernet
interface-name=ens3

[ipv4]
method=manual
addresses1=192.168.1.10/24,192.168.1.1
dns=8.8.8.8;1.1.1.1;

[ipv6]
method=disabled

Применить: sudo nmcli connection reload и sudo nmcli connection up ens3

WireGuard vs OpenVPN: выбор протокола для стабильного и быстрого VPN

Выбор протокола VPN напрямую влияет на производительность и нагрузку на CPU.

  • OpenVPN: Зрелый, проверенный протокол с мощной криптографией. Имеет более комплексную кодобазу, что может создавать бóльшую нагрузку на процессор, особенно на слабом оборудовании, вызывая колебания («пляски») скорости.
  • WireGuard: Современный протокол с легким кодом (~4 тыс. строк). Архитектура проще, что часто приводит к более высокой и стабильной скорости соединения с меньшими задержками. Потребляет меньше ресурсов CPU.

Для большинства новых проектов, особенно где важны производительность и простота настройки, WireGuard является предпочтительным вариантом. Установка проста: sudo apt install wireguard (Ubuntu) или sudo dnf install wireguard-tools (Fedora/RHEL).

Практическая настройка WireGuard на Linux сервере

Пошаговая настройка сервера WireGuard.

1. Генерация ключей:
wg genkey | sudo tee /etc/wireguard/private.key | wg pubkey | sudo tee /etc/wireguard/public.key
Установите правильные права: sudo chmod 600 /etc/wireguard/private.key

2. Создание конфигурации сервера /etc/wireguard/wg0.conf:

[Interface]
Address = 10.0.0.1/24
SaveConfig = true
PostUp = iptables -A FORWARD -i wg0 -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
PostDown = iptables -D FORWARD -i wg0 -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE
ListenPort = 51820
PrivateKey = <СОДЕРЖИМОЕ_СЕРВЕРНОГО_PRIVATE.KEY>

3. Добавление пира (клиента) в тот же файл:

[Peer]
# Клиент 1
PublicKey = <ПУБЛИЧНЫЙ_КЛЮЧ_КЛИЕНТА_1>
AllowedIPs = 10.0.0.2/32

4. Запуск и автозагрузка:
sudo systemctl enable --now wg-quick@wg0

Проверка: sudo wg show

При выборе VPN-сервиса обратите внимание: годовые планы подписки часто в 2-3 раза дешевле ежемесячной оплаты.

Устройство файловой системы Linux и управление службами

Понимание структуры файловой системы (Filesystem Hierarchy Standard, FHS) и умение управлять службами через systemd — обязательные знания для безопасного администрирования.

Ключевые директории файловой системы: где что лежит и почему

Знание назначения директорий позволяет быстро находить нужные файлы.

  • /etc: Конфигурационные файлы системы и приложений. Например, /etc/nginx/nginx.conf, /etc/ssh/sshd_config. Никогда не храните здесь скрипты или данные.
  • /var: Переменные данные: логи (/var/log), очереди, кэши, файлы баз данных. Директория /var/log — первое место для диагностики проблем.
  • /home: Домашние директории пользователей. Для системных пользователей (например, nginx, postgres) домашние директории обычно находятся в /var/lib.
  • /opt, /usr/local: Для дополнительного ПО, установленного вручную (не из пакетов). /opt часто используется для проприетарного софта (например, Google Chrome), /usr/local — для программ, собранных из исходников.

Пример поиска всех конфигов Nginx: find /etc -type f -name "*nginx*" 2>/dev/null.

systemd: управление службами и анализ логов

Systemd — это система инициализации и менеджер служб в современных дистрибутивах. Универсальные команды для управления любой службой:

# Запуск/остановка/перезагрузка службы
sudo systemctl start nginx
sudo systemctl stop nginx
sudo systemctl restart nginx

# Включение/отключение автозагрузки при старте системы
sudo systemctl enable nginx
sudo systemctl disable nginx

# Проверка статуса службы (ключевая команда для диагностики)
sudo systemctl status nginx

Для просмотра и фильтрации логов используйте journalctl:

# Логи конкретной службы за последний час
sudo journalctl --unit=nginx --since="1 hour ago"

# Логи с выводом в реальном времени (аналог tail -f)
sudo journalctl --unit=nginx -f

# Логи с приоритетом ошибок (err) или критические (crit)
sudo journalctl -p err

Создание простого сервисного unit-файла для вашего скрипта (/etc/systemd/system/my-backup.service):

[Unit]
Description=My Backup Script
After=network.target

[Service]
Type=oneshot
ExecStart=/usr/local/bin/backup.sh
User=backup-user

[Install]
WantedBy=multi-user.target

После создания файла выполните sudo systemctl daemon-reload.

Интеграция в смешанные среды и автоматизация базовых задач

Современный IT-специалист часто работает в гетерогенных средах. Умение интегрировать Linux-инструменты в такие условия и автоматизировать рутину — конкурентное преимущество.

Windows Subsystem for Linux (WSL) как инструмент для администратора

WSL 2 — это не эмулятор, а полноценное ядро Linux, работающее внутри Windows. Это мощный инструмент для:

  • Тестирования скриптов и конфигураций перед переносом на production-сервер.
  • Изучения Linux в знакомой среде Windows.
  • Управления смешанной инфраструктурой с использованием единого набора инструментов (ssh, ansible, bash).

Установите дистрибутив (например, Ubuntu) из Microsoft Store. Для удобной работы используйте Windows Terminal, который поддерживает вкладки, панели, GPU-ускоренный рендеринг текста и отображение программистских лигатур. Вы можете одновременно открыть вкладку с WSL, PowerShell и SSH-сессией на удаленный сервер.

Базовые скрипты Bash для автоматизации рутинных операций

Автоматизация начинается с простых скриптов. Вот несколько проверенных примеров.

Скрипт для проверки свободного места на диске и отправки предупреждения:

#!/bin/bash
THRESHOLD=90
USAGE=$(df / | grep / | awk '{ print $5 }' | sed 's/%//g')
if [ $USAGE -gt $THRESHOLD ]; then
    echo "Внимание! Диск / заполнен на ${USAGE}%" | mail -s "Дисковое предупреждение" admin@example.com
fi

Скрипт для очистки старых логов в /var/log:

#!/bin/bash
# Удаляем логи apache/nginx старше 30 дней
find /var/log/nginx -name "*.log" -mtime +30 -delete
find /var/log/apache2 -name "*.log" -mtime +30 -delete
# Архивируем системные логи старше 7 дней перед удалением
find /var/log -name "*.log" -mtime +7 -exec gzip {} \;

Скрипт для проверки доступности ключевых служб:

#!/bin/bash
SERVICES=("nginx" "postgresql" "docker")
for SERVICE in "${SERVICES[@]}"
do
    if systemctl is-active --quiet $SERVICE; then
        echo "[OK] $SERVICE работает."
    else
        echo "[ERROR] $SERVICE не запущен!"
        # Можно добавить команду для перезапуска: sudo systemctl restart $SERVICE
    fi
done

Основы безопасного написания скриптов:

  • Всегда проверяйте коды возврата команд: if [ $? -ne 0 ]; then echo "Ошибка"; exit 1; fi
  • Используйте set -e в начале скрипта, чтобы он завершался при первой ошибке.
  • Цитируйте переменные: echo "$PATH", а не echo $PATH.

Для работы с инфраструктурой как код и CI/CD пайплайнами могут пригодиться инструменты вроде GitHub CLI. Например, GitHub Copilot cloud agent может помочь в исследовании репозиториев и планировании изменений, но его использование выходит за рамки данного руководства.

Освоив базовое администрирование Linux, вы сможете увереннее работать с более сложными технологиями оркестрации, такими как Docker и Kubernetes. Для углубленного изучения контейнеризации рекомендуем наше полное руководство по Docker для DevOps, а также продвинутый гайд по безопасности и оптимизации Docker.

Поделиться:
Сохранить гайд? В закладки браузера