Основы Linux: базовый курс для начинающих

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

1. Введение в Linux: дистрибутивы, установка и окружение

Введение в Linux: дистрибутивы, установка и окружение

Что такое Linux и зачем он нужен

Linux — это семейство операционных систем, которые используют ядро Linux.

Ядро — центральная часть системы, которая управляет:

  • работой процессора и памяти
  • устройствами (диск, сеть, видеокарта)
  • запуском программ
  • безопасным доступом к ресурсам
  • При этом то, что обычно называют Linux, почти всегда является не только ядром, а готовой системой из множества компонентов: установщика, графического интерфейса, набора утилит, менеджера пакетов и настроек. Такой «собранный комплект» называется дистрибутив.

    Почему Linux часто выбирают:

  • бесплатность и открытый исходный код
  • высокая стабильность (особенно на серверах)
  • гибкость настройки
  • большой выбор дистрибутивов под разные задачи
  • Дистрибутивы: что это и чем они отличаются

    Дистрибутив Linux — это набор программ вокруг ядра Linux, который превращает его в удобную, устанавливаемую систему.

    Дистрибутивы отличаются:

  • способом установки и обновлений
  • менеджером пакетов (инструментом установки программ)
  • частотой обновлений и «свежестью» версий
  • графической средой (если она есть по умолчанию)
  • политикой безопасности и настройками «из коробки»
  • Популярные семейства и примеры

    | Семейство | Примеры дистрибутивов | Часто используется | Обычно ставят программы через | |---|---|---|---| | Debian-based | Debian, Ubuntu, Linux Mint | десктоп и сервер | apt | | Red Hat-based | Fedora, RHEL/Alma/Rocky (корпоративная линия) | серверы, разработка | dnf | | Arch-based | Arch Linux, Manjaro | энтузиасты, «самое свежее» | pacman | | SUSE-based | openSUSE | десктоп/сервер, администрирование | zypper |

    Как выбрать дистрибутив новичку

    Если вы начинаете с нуля и хотите меньше проблем на старте:

  • Ubuntu — самый популярный «стартовый» вариант, много инструкций и сообществ.
  • Linux Mint — часто выбирают пользователи Windows благодаря привычному интерфейсу.
  • Fedora — подходит, если хочется более «свежих» технологий при хорошей поддержке.
  • Если цель курса — освоить основы Linux, подойдёт почти любой из этих вариантов. Важно не «самый правильный дистрибутив», а регулярная практика.

    !Диаграмма, помогающая понять, что многие дистрибутивы связаны «родством»

    Способы установки и запуска Linux

    Для обучения важно выбрать способ, который соответствует вашему компьютеру и уровню риска.

    Live-режим (загрузка с флешки без установки)

    Live-режим — это запуск Linux с USB-накопителя без установки на диск.

    Плюсы:

  • можно безопасно посмотреть систему
  • не затрагивает ваш диск (если вы сами не начнёте установку)
  • Минусы:

  • обычно работает медленнее, чем установленная система
  • изменения могут не сохраняться (зависит от режима записи)
  • Для записи установочной флешки часто используют balenaEtcher.

    Установка рядом с Windows (dual boot)

    Dual boot — это режим, когда на компьютере установлены две системы, и при включении вы выбираете, какую загрузить.

    Плюсы:

  • Linux работает «на железе» с полной производительностью
  • Минусы:

  • требуется аккуратная работа с разделами диска
  • есть риск потерять данные при ошибках
  • Обязательные правила перед такой установкой:

  • сделайте резервную копию важных данных
  • убедитесь, что знаете, как вернуть загрузку Windows (если что-то пойдёт не так)
  • Виртуальная машина (VM)

    Виртуальная машина — это «компьютер внутри компьютера»: Linux запускается как программа в Windows/macOS.

    Плюсы:

  • безопасно: проще откатить состояние и удалить
  • удобно для обучения
  • Минусы:

  • нужна оперативная память и место на диске
  • производительность ниже, чем при установке напрямую
  • Для старта подойдёт VirtualBox.

    WSL (Linux внутри Windows)

    WSL (Windows Subsystem for Linux) позволяет запускать Linux-окружение внутри Windows.

    Плюсы:

  • удобно для обучения командной строке и разработке
  • не нужно переразмечать диск
  • Минусы:

  • это не «полноценный Linux-десктоп» по умолчанию
  • некоторые системные темы (например, загрузчик, драйверы) будут вне практики
  • Официальная документация: WSL documentation.

    !Картинка для выбора способа запуска Linux новичку

    Что вы увидите после установки: окружение Linux

    После первого запуска Linux вы столкнётесь с несколькими важными понятиями. Разберём их простыми словами.

    Графическая среда и рабочий стол

    Графическая среда (desktop environment) — это интерфейс «как в Windows/macOS»: панель, меню приложений, настройки, окна.

    Популярные варианты:

  • GNOME (часто в Ubuntu/Fedora)
  • KDE Plasma (часто в openSUSE/Manjaro)
  • Cinnamon (часто в Linux Mint)
  • Важно: графическая среда — это не «весь Linux». Даже без неё Linux может работать (например, на сервере).

    Терминал и командная строка

    Терминал — программа, в которой вы вводите команды.

    Командная строка — способ управлять системой текстовыми командами.

    В Linux терминал — базовый инструмент, потому что:

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

    Shell: что выполняет команды

    Shell (оболочка) — программа, которая читает ваши команды и запускает их.

    Чаще всего по умолчанию это bash или zsh. Для новичка важно понимать простую идею: вы пишете команду, shell её интерпретирует и запускает нужные программы.

    Файловая система: где находятся файлы

    В Linux нет дисков вида C: и D: как в Windows. Есть единое дерево каталогов, которое начинается с корня:

  • корень файловой системы: /
  • домашняя папка пользователя: /home/имя
  • настройки системы и программы обычно лежат в системных каталогах (мы разберём их позже)
  • Ключевая привычка новичка: внимательно смотреть путь к файлу и понимать, где вы находитесь.

    Пользователи и права

    В Linux каждый процесс работает от имени какого-то пользователя.

  • обычный пользователь — для повседневной работы
  • администратор (часто называют root) — имеет право изменять систему целиком
  • Во многих дистрибутивах админ-действия выполняют через sudo — это команда, которая временно даёт повышенные права. Мы будем использовать её аккуратно и только когда это нужно.

    Программы и обновления: менеджер пакетов

    Большинство программ в Linux устанавливают не скачиванием «установщика с сайта», а через репозитории.

  • репозиторий — это официальный «каталог» проверенных пакетов
  • пакет — упакованная программа (часто с зависимостями)
  • Примеры менеджеров пакетов:

  • apt (Debian/Ubuntu/Mint)
  • dnf (Fedora)
  • pacman (Arch/Manjaro)
  • Это важно по двум причинам:

  • проще обновлять систему и программы
  • ниже риск установить вредоносное ПО из случайного источника
  • Минимальная подготовка к следующей части курса

    Перед тем как идти дальше, убедитесь, что у вас есть рабочая среда для практики.

    Рекомендуемый минимум:

  • выбран способ запуска Linux (VM, WSL, dual boot или отдельный компьютер)
  • вы умеете открывать терминал
  • у вас есть доступ в интернет из Linux
  • вы знаете, какой у вас дистрибутив (например, Ubuntu 24.04 или Linux Mint 22)
  • В следующей статье мы начнём с базовых команд терминала: навигация по каталогам, просмотр содержимого, работа с файлами без риска «сломать систему».

    2. Командная строка: навигация, справка и базовые команды

    Командная строка: навигация, справка и базовые команды

    В предыдущей статье вы выбрали способ запуска Linux (виртуальная машина, WSL, установка) и познакомились с идеей терминала и shell. Теперь закрепим базу: научимся уверенно перемещаться по файловой системе, получать справку по командам и выполнять самые нужные повседневные действия.

    Как устроена работа в терминале

    Терминал — это программа-окно для ввода команд. Команды выполняет shell (обычно bash). Типичная строка в терминале выглядит так:

    bash ls -l /etc bash pwd bash cd ~ cd .. cd ./Downloads bash ls bash ls -lah bash cd bash cd /etc bash cd Downloads bash cd .. bash cd "My Files" bash ls --help bash man ls bash info coreutils bash apropos "copy files" apropos network bash type ls which ls bash ls -lah /etc | less bash mkdir demo cd demo touch a.txt cp a.txt a-copy.txt ls -l mv a-copy.txt b.txt rm a.txt ls -l cd .. rmdir demo ``

    !Подсказка, как читать и составлять пути при навигации

    Что дальше

    Теперь у вас есть минимальный набор навыков, чтобы:

  • понимать, где вы находитесь (pwd)
  • смотреть содержимое (ls)
  • перемещаться (cd)
  • находить справку (--help, man, info, apropos)
  • выполнять базовые операции с файлами и папками (mkdir, touch, cp, mv, rm)
  • В следующих материалах логично перейти к более системной работе с файлами: просмотр содержимого (cat, less, head, tail), поиск (find, grep`), а затем — к правам доступа и работе с пакетами.

    3. Файловая система и права доступа: владельцы, chmod, chown

    Файловая система и права доступа: владельцы, chmod, chown

    В прошлой статье вы научились навигации (pwd, cd, ls) и базовым операциям с файлами. Теперь разберём то, что в Linux встречается постоянно: кто владеет файлами и что именно можно с ними делать. Это основа безопасности и нормальной работы в терминале.

    Почему права доступа важны

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

  • владелец (пользователь)
  • группа (набор пользователей)
  • права доступа для владельца, группы и остальных
  • Обычно вы работаете как обычный пользователь, а административные действия выполняете через sudo. Это снижает риск “сломать систему” одной командой.

    Владельцы и группы: базовые понятия

    Пользователь

    Пользователь в Linux имеет имя (например, alex) и идентификатор (UID). Большинство действий вы делаете от имени своего пользователя.

    Узнать текущего пользователя:

    Группа

    Группа объединяет пользователей, чтобы выдавать права сразу нескольким людям. У файла тоже есть “группа-владелец”.

    Узнать группы текущего пользователя:

    Владелец и группа файла

    Владелец файла не обязательно тот, кто его создал (например, администратор может менять владельца). По умолчанию новый файл принадлежит пользователю, который его создал, и его основной группе.

    Как посмотреть права: ls -l

    Самый быстрый способ увидеть права, владельца и группу:

    Пример вывода (вид может немного отличаться):

    Здесь важно:

  • первый блок символов (например, -rw-r--r--) описывает тип и права
  • далее идут владелец (alex) и группа (staff)
  • !Подсказка, как читать вывод ls -l

    Тип файла и три набора прав

    Тип файла

    Первый символ показывает тип:

  • - обычный файл
  • d каталог
  • l символьная ссылка
  • Остальные 9 символов идут тройками: для владельца, группы и остальных.

    Что означают r, w, x

  • r чтение (read)
  • w запись (write)
  • x выполнение (execute)
  • Но смысл немного отличается для файла и каталога.

    Права на файл

  • r можно читать содержимое файла
  • w можно изменять файл
  • x можно запускать файл как программу или скрипт
  • Права на каталог

  • r можно посмотреть список имён внутри каталога (например, ls)
  • w можно создавать/удалять/переименовывать элементы внутри каталога
  • x можно “войти” в каталог (cd) и обращаться к файлам внутри по имени
  • Важный практический момент: чтобы прочитать файл по пути, обычно нужен x на каждом каталоге в этом пути.

    Как читать права вида -rw-r--r--

    Разберём пример -rw-r--r--:

  • - это обычный файл
  • rw- права владельца: читать и писать, но не выполнять
  • r-- права группы: только читать
  • r-- права остальных: только читать
  • Ещё пример: drwxr-x---:

  • d это каталог
  • rwx владелец может читать список, изменять и заходить
  • r-x группа может заходить и читать список, но не может менять
  • --- остальные не имеют доступа
  • Изменение прав: chmod

    Команда chmod меняет права доступа к файлу или каталогу.

    Справка:

  • man chmod
  • Есть два самых популярных способа: символьный и числовой.

    Символьный режим chmod

    Формат:

  • кому: u (владелец), g (группа), o (остальные), a (все)
  • операция: + добавить, - убрать, = установить ровно
  • права: r, w, x
  • Примеры:

  • u+x добавит выполнение владельцу
  • go-rw уберёт чтение и запись у группы и остальных
  • a=r оставит всем только чтение (и уберёт запись и выполнение)
  • Числовой режим chmod (восьмеричный)

    Права можно задавать числом из трёх цифр, где каждая цифра относится к:

  • первой: владелец
  • второй: группа
  • третьей: остальные
  • Каждая цифра складывается из значений:

  • r это 4
  • w это 2
  • x это 1
  • Например:

  • 7 = 4+2+1 это rwx
  • 6 = 4+2 это rw-
  • 5 = 4+1 это r-x
  • 4 = 4 это r--
  • Примеры:

  • 644 это rw-r--r-- (типично для текстовых файлов)
  • 755 это rwxr-xr-x (типично для каталогов и исполняемых файлов)
  • 600 это rw------- (типично для приватных ключей)
  • !Как понимать числовой режим chmod

    Рекурсивное применение: chmod -R

    Чтобы применить права ко всем файлам и подкаталогам внутри каталога, используют -R:

    Будьте осторожны с -R: легко выдать лишний доступ или сломать работу программ, если применить к системным каталогам.

    Изменение владельца: chown

    Команда chown меняет владельца файла, а также при необходимости и группу.

    Справка:

  • man chown
  • Чаще всего chown требует прав администратора, поэтому используется с sudo.

    Синтаксис chown

  • сменить владельца:
  • сменить владельца и группу:
  • сменить только группу (с двоеточием слева):
  • Рекурсивная смена владельца: chown -R

    Например, если вы случайно создали файлы от root в своём проекте:

    Здесь $USER это переменная окружения, в которой обычно хранится имя текущего пользователя.

    Изменение группы: chgrp

    Иногда нужно поменять только группу. Для этого есть chgrp.

    Справка:

  • man chgrp
  • Пример:

    На практике достаточно помнить: chown умеет менять и владельца, и группу, поэтому chgrp встречается реже.

    Частые ошибки новичков и как их избегать

  • “Почему не удаляется файл, хотя у меня есть w на файл”
  • На удаление влияет право w на каталог, где лежит файл, и право x на этот каталог.
  • “Я сделал chmod +x и ничего не изменилось”
  • Обычно нужно указать, кому добавить: chmod u+x file. Или использовать полную запись, например chmod a+x file.
  • “Я использовал sudo и теперь файлы в проекте не редактируются”
  • Скорее всего, часть файлов стала принадлежать root. Проверьте ls -l и исправьте sudo chown -R на каталог проекта.
  • “Поставил chmod 777 чтобы работало”
  • Это почти всегда плохая идея: вы даёте полный доступ всем. Лучше понять, кому именно нужен доступ, и выдать минимально достаточные права.
  • Что дальше

    Теперь вы умеете:

  • читать права и владельцев через ls -l
  • понимать смысл r, w, x для файлов и каталогов
  • менять права через chmod (символьный и числовой режим)
  • менять владельца и группу через chown
  • Следующий логичный шаг в курсе: научиться читать содержимое файлов и искать информацию в системе с помощью cat, less, head, tail, grep и find.

    4. Пользователи и группы: управление доступом и sudo

    Пользователи и группы: управление доступом и sudo

    В предыдущих статьях вы научились работать в терминале и разбирать права доступа (r, w, x), а также менять их через chmod и владельца через chown. Теперь соберём картину целиком: кто такой пользователь в Linux, что такое группа, и как безопасно выполнять административные действия через sudo.

    Зачем в Linux нужны пользователи и группы

    Linux изначально проектировался как многопользовательская система. Даже на домашнем компьютере это даёт важные преимущества:

  • снижение риска: обычный пользователь не может случайно повредить системные файлы
  • контроль доступа: разные пользователи и программы имеют разные права
  • удобство администрирования: группы позволяют выдавать доступ сразу нескольким людям
  • Связь с правами доступа из прошлой темы простая:

  • каждый файл имеет владельца и группу
  • права задаются отдельно для владельца, группы и остальных
  • !Как связаны пользователь, группы, права на файл и sudo

    Учётные записи: обычный пользователь и root

    В Linux есть разные типы учётных записей:

  • обычные пользователи: повседневная работа, запуск программ, работа с файлами в домашней папке
  • root: суперпользователь, может изменять систему целиком
  • системные пользователи: сервисные учётные записи для демонов и служб (часто без возможности входа в систему)
  • Практическое правило для новичка:

  • работайте как обычный пользователь
  • используйте sudo только для конкретных админ-действий
  • Как узнать, кто вы и в каких вы группах

    Текущий пользователь

    Идентификаторы и группы пользователя

    Команда id показывает UID, GID и список групп:

    Если нужна только строка групп:

    Почему это важно:

  • доступ к файлам часто выдан не конкретному пользователю, а группе
  • возможность выполнять sudo обычно тоже завязана на членство в специальной группе (или правило в конфигурации)
  • Где Linux хранит информацию о пользователях и группах

    На большинстве дистрибутивов базовая информация хранится в текстовых файлах:

  • /etc/passwd содержит список пользователей и их параметры
  • /etc/group содержит список групп и участников
  • /etc/shadow содержит хэши паролей и параметры паролей (обычно доступен только root)
  • Посмотреть пользователя в /etc/passwd можно так:

    Эта команда использует идею из прошлой статьи: chown возвращает владельца и группу.

    Что дальше

    Теперь вы понимаете:

  • как Linux описывает пользователей и группы
  • как проверять свои группы и принадлежность файлов
  • как добавлять пользователя в группу и почему важно не забыть -a в usermod -aG
  • зачем нужен sudo, чем он безопаснее постоянной работы под root и почему visudo важнее обычного редактирования
  • Следующий логичный шаг после управления доступом: научиться уверенно читать и искать информацию в файлах и по системе с помощью cat, less, head, tail, grep и find.

    5. Установка и обновление ПО: репозитории и пакетные менеджеры

    Установка и обновление ПО: репозитории и пакетные менеджеры

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

    Почему в Linux программы обычно ставят не с сайтов

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

    Это удобно, потому что:

  • обновления приходят централизованно
  • зависимости (дополнительные библиотеки) подтягиваются автоматически
  • пакеты обычно подписаны и проверены
  • проще удалить программу без «хвостов»
  • При этом иногда встречаются и другие форматы распространения приложений (о них кратко будет в конце), но для базового уровня достаточно уверенно владеть классическими пакетными менеджерами.

    Основные термины простыми словами

    Пакет

    Пакет — это упакованная программа (и связанные файлы), подготовленная под конкретный формат дистрибутива.

    Примеры форматов:

  • .deb в Debian, Ubuntu, Linux Mint
  • .rpm в Fedora, RHEL-подобных системах
  • Репозиторий

    Репозиторий — это официальный (или сторонний) сервер/каталог, где лежат пакеты и информация о версиях.

    Обычно система настроена на несколько репозиториев:

  • основной (main)
  • обновления безопасности
  • обновления системы
  • дополнительные компоненты
  • Пакетный менеджер

    Пакетный менеджер — это инструмент, который:

  • знает, откуда скачивать пакеты (репозитории)
  • умеет обновлять список доступных пакетов
  • устанавливает и удаляет пакеты
  • решает зависимости
  • обновляет систему
  • Как выглядит процесс установки и обновления

    !Схема, что именно происходит “под капотом” при установке пакета

    В упрощённом виде рабочий цикл такой:

  • Обновить список пакетов из репозиториев.
  • Установить программу или обновить уже установленные.
  • При необходимости удалить пакет.
  • Важно различать два действия:

  • обновить списки (система узнаёт, какие версии доступны)
  • обновить пакеты (система реально скачивает и ставит новые версии)
  • Какие пакетные менеджеры встречаются чаще всего

    | Дистрибутивы | Пакетный менеджер | Типичные команды | |---|---|---| | Debian, Ubuntu, Mint | apt | apt update, apt install, apt upgrade | | Fedora | dnf | dnf upgrade, dnf install | | Arch, Manjaro | pacman | pacman -Syu, pacman -S | | openSUSE | zypper | zypper refresh, zypper update, zypper install |

    Эти инструменты делают похожие вещи, но команды и «ритуалы» немного отличаются.

    apt: установка и обновления в Debian и Ubuntu

    Обновление списка пакетов

    Эта команда:

  • не обновляет программы
  • только скачивает актуальную информацию о доступных версиях
  • Обновление установленных пакетов

    Если обновления затрагивают зависимости так, что нужно установить/удалить дополнительные пакеты, иногда используют:

    Для новичка правило такое:

  • обычно достаточно update + upgrade
  • full-upgrade используйте, когда понимаете, что меняется, и видите, что система предлагает сделать
  • Установка пакета

    Можно устанавливать сразу несколько:

    Удаление пакета

    Если нужно удалить ещё и конфигурационные файлы пакета:

    Поиск и просмотр информации

    Поиск по названию и описанию:

    Информация о пакете:

    Список установленных пакетов (очень длинный вывод):

    Где хранятся настройки репозиториев

    В Debian/Ubuntu источники пакетов обычно задаются здесь:

  • /etc/apt/sources.list
  • /etc/apt/sources.list.d/
  • Это полезно знать, но редактировать эти файлы вручную новичку стоит только по официальным инструкциям.

    Документация:

  • Страница руководства apt
  • Страница руководства sources.list
  • dnf: установка и обновления в Fedora

    Обновление системы

    В Fedora обычно достаточно одной команды:

    Она обновит метаданные и поставит обновления.

    Установка и удаление

    Поиск и информация

    Документация:

  • Страница руководства dnf
  • Документация Fedora по DNF
  • pacman: установка и обновления в Arch-подобных системах

    В Arch важно регулярно синхронизировать базу и обновлять систему одной командой:

    Установка:

    Удаление:

    Поиск:

    Информация:

    Документация:

  • Страница руководства pacman
  • zypper: установка и обновления в openSUSE

    Обновить информацию о репозиториях:

    Обновить систему:

    Установка и удаление:

    Документация:

  • Справка openSUSE по Zypper
  • Зависимости: почему иногда ставится “лишнее”

    Программа редко состоит из одного файла. Ей могут быть нужны библиотеки и сервисы.

    Когда вы ставите пакет, менеджер пакетов:

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

  • не удаляйте «непонятные» зависимости вручную, если не уверены
  • если менеджер пакетов пишет, что что-то будет удалено или заменено, прочитайте список внимательно
  • Безопасность: как не превратить установку ПО в проблему

    Используйте официальные репозитории, когда это возможно

    Официальные репозитории дистрибутива обычно:

  • подписывают пакеты
  • проверяют сборки
  • публикуют обновления безопасности
  • Осторожно со сторонними репозиториями и командами из интернета

    Если инструкция предлагает запуск вида:

    это означает: вы скачиваете неизвестный скрипт и сразу выполняете его с правами администратора. Для новичка это высокий риск.

    Более безопасный подход:

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

    Менеджеры пакетов проверяют подлинность пакетов через криптографические подписи.

    На практическом уровне достаточно помнить:

  • пакеты из репозиториев обычно проверяются автоматически
  • если система ругается на подпись или ключ, это повод остановиться и разобраться, а не «продавить установку любой ценой»
  • Что делать, если программа “не находится”

    Если apt install имя или аналогичная команда пишет, что пакет не найден:

  • Проверьте, что вы обновили списки пакетов.
  • Попробуйте поиск по ключевому слову.
  • Уточните название пакета (оно может отличаться от названия программы).
  • Убедитесь, что нужный компонент репозиториев включён (например, в некоторых дистрибутивах есть отдельные секции).
  • Коротко о Snap, Flatpak и AppImage

    Иногда приложение удобнее поставить не из репозиториев дистрибутива, а в «универсальном» формате.

    Основные варианты:

  • Snap — пакеты, изолированные и распространяемые через Snap Store (часто встречается в Ubuntu).
  • Flatpak — приложения изолируются, часто ставятся из Flathub.
  • AppImage — один исполняемый файл, который можно скачать и запустить.
  • Для базового курса важно:

  • сначала уверенно освоить apt/dnf/pacman/zypper
  • использовать альтернативные форматы только когда это действительно нужно
  • Практическая памятка команд

    Debian/Ubuntu/Mint (apt)

    Fedora (dnf)

    Arch/Manjaro (pacman)

    openSUSE (zypper)

    Что дальше

    Теперь у вас есть базовый, но реальный навык администрирования: вы умеете безопасно устанавливать и обновлять программы через репозитории, понимаете разницу между обновлением списков и обновлением пакетов, и знаете, почему sudo в установке ПО нужно использовать аккуратно.

    Дальше логично закрепить практику: научиться читать логи и сообщения команд, а также уверенно искать информацию в системе и в файлах (например, через grep, find, less).

    6. Процессы и службы: systemd, мониторинг и журналы

    Процессы и службы: systemd, мониторинг и журналы

    В прошлых темах вы освоили командную строку, права доступа и работу с sudo, а также установку ПО через пакетный менеджер. Следующий практический шаг — понять, что происходит в системе прямо сейчас: какие программы запущены, какие из них работают как службы, как ими управляет systemd, и где смотреть сообщения об ошибках.

    Процессы: что это и как их смотреть

    Процесс — это запущенная программа. У каждого процесса есть:

  • PID (Process ID) — уникальный номер процесса
  • владелец (пользователь), от имени которого он выполняется
  • потребление ресурсов (CPU, память)
  • родительский процесс (кто его запустил)
  • !Дерево процессов: от PID 1 до программ пользователя

    Быстрый просмотр процессов: ps

    Посмотреть процессы текущего терминала:

    Часто используемый вариант, чтобы увидеть процессы всей системы в удобном формате:

    Или в виде дерева (очень наглядно):

    Полезные страницы руководства:

  • Руководство ps
  • Поиск процесса по имени: pgrep

    Если вы помните имя программы, но не знаете PID:

  • -a показывает командную строку вместе с PID
  • Документация:

  • Руководство pgrep
  • Интерактивный мониторинг: top и htop

    top показывает процессы в реальном времени:

    Если установлен htop, он обычно удобнее для новичка (интерактивный интерфейс, сортировки, поиск):

    Если htop не установлен, поставьте его пакетным менеджером (и вспомните тему про репозитории):

    Документация:

  • Руководство top
  • Руководство htop
  • Остановка процессов: kill и сигналы

    В Linux завершение процесса — это отправка ему сигнала.

    Самые важные сигналы

    | Сигнал | Что означает | Когда используют | |---|---|---| | SIGTERM (15) | вежливо попросить завершиться | вариант по умолчанию, даёт программе закрыться корректно | | SIGKILL (9) | немедленно убить процесс | если процесс завис и не реагирует |

    Отправить сигнал по PID:

    По умолчанию kill отправляет SIGTERM.

    Если нужно принудительно:

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

    Документация:

  • Руководство kill
  • Список сигналов
  • Службы и systemd: что это и почему это важно

    Служба — это программа, которая обычно работает в фоне и выполняет системную задачу: сеть, SSH, журналирование, планировщики, веб-сервер.

    Во многих современных дистрибутивах запуском и управлением служб занимается systemd.

    systemd и PID 1

    Обычно systemd — это первый процесс в системе (PID 1). Он:

  • запускает другие службы при старте
  • следит за их состоянием
  • перезапускает их при сбоях (если настроено)
  • собирает логи через journald
  • Проверить, что PID 1 — это systemd:

    Документация:

  • Руководство systemd
  • Юниты systemd

    systemd управляет объектами, которые называются юнитами (unit). Часто встречающиеся типы:

  • service — служба
  • timer — запуск по расписанию (аналог cron в мире systemd)
  • socket — активация службы по входящему соединению
  • target — логическая “цель” запуска (группировка)
  • Посмотреть активные юниты:

    Посмотреть все установленные юниты (включая выключенные):

    Документация:

  • Руководство systemctl
  • Управление службами: systemctl

    Большинство действий со службами требует прав администратора, поэтому используйте sudo.

    Проверить состояние службы

    Если служба называется с суффиксом, можно указать полностью:

    Запуск, остановка, перезапуск

    Полезная команда, если вы изменили конфиг службы и хотите “мягко” применить настройки (если поддерживается):

    Автозапуск при старте: enable и disable

    Важно различать:

  • start запускает службу прямо сейчас
  • enable включает автозапуск при загрузке системы
  • Включить автозапуск:

    Выключить автозапуск:

    Часто делают оба действия сразу:

    Проверить, включён ли автозапуск:

    Что делать, если служба не стартует

    Практическая последовательность:

  • Посмотреть статус:
  • Посмотреть логи юнита:
  • Если вы правили unit-файл или добавляли свой, перечитать конфигурацию systemd:
  • Журналы: journalctl и journald

    В системах с systemd логи часто попадают в systemd-journald и читаются через journalctl.

    Базовые команды journalctl

    Показать сообщения текущей загрузки (boot):

    Показать последние сообщения и “следить” в реальном времени:

    Показать логи конкретной службы:

    Показать логи службы только для текущей загрузки:

    Показать сообщения с определённого времени:

    Показать ошибки и предупреждения (часто полезно при диагностике):

    Удобный режим для поиска причин проблем при старте, часто используется так:

    Документация:

  • Руководство journalctl
  • Руководство systemd-journald
  • !Куда попадают сообщения и как их читать через journalctl

    А где привычные файлы в /var/log

    В некоторых системах часть логов всё ещё пишется в файлы в /var/log, но конкретные имена зависят от дистрибутива и настроек.

    Примеры, которые могут встречаться:

  • /var/log/syslog (часто Debian/Ubuntu)
  • /var/log/messages (часто RHEL/Fedora)
  • /var/log/auth.log (аутентификация)
  • Если вы не уверены, что именно есть в вашей системе, посмотрите содержимое каталога:

    И открывайте большие файлы через less:

    Практические сценарии, которые стоит уметь

    Узнать, что “съедает” CPU или память

  • Откройте top или htop.
  • Найдите процесс по имени.
  • Если это ваш процесс — завершите корректно.
  • Если это служба — лучше управлять через systemctl, а не через kill.
  • Служба не работает после установки пакета

  • Проверьте, установился ли пакет.
  • Посмотрите статус:
  • Посмотрите логи:
  • Если нужно включить автозапуск:
  • Что дальше

    Теперь вы умеете отличать процесс от службы, смотреть запущенные процессы и ресурсы, корректно завершать программы, управлять службами через systemctl и находить причины проблем через journalctl. Эти навыки постоянно используются в реальной работе с Linux, особенно на серверах и в разработке.

    7. Сеть и безопасность: IP, SSH, firewall и базовые практики

    Сеть и безопасность: IP, SSH, firewall и базовые практики

    В предыдущей теме вы научились смотреть процессы и управлять службами через systemctl, а также читать логи через journalctl. Сеть и безопасность тесно связаны с этими навыками: сетевые сервисы работают как службы, а диагностика проблем почти всегда упирается в логи и понимание того, какие порты открыты и кто имеет к ним доступ.

    Базовые понятия сети простыми словами

    IP-адрес, маска, шлюз

  • IP-адрес — адрес вашего компьютера в сети.
  • Маска сети (часто в виде CIDR, например 192.168.1.10/24) — говорит, какая часть адреса относится к сети, а какая к узлу.
  • Шлюз (default gateway) — устройство, через которое ваш компьютер ходит в другие сети, чаще всего в интернет.
  • Практически важно понимать два типа адресов:

  • Частные (локальные) адреса: обычно 192.168.x.x, 10.x.x.x, 172.16.x.x172.31.x.x.
  • Публичные адреса: видны в интернете (на сервере чаще всего именно такой адрес).
  • !Схема роли IP-адреса и шлюза

    DNS

    DNS — это система, которая переводит имена вроде example.com в IP-адреса. Если DNS не работает, интернет может быть доступен по IP, но “сайты не открываются по имени”.

    Как посмотреть сетевые настройки в Linux

    Современный стандартный инструмент — ip из набора iproute2.

    Документация:

  • ip (iproute2) manual
  • Сетевые интерфейсы и IP-адреса

    Показать интерфейсы и IP:

    Часто вы увидите интерфейсы вида:

  • lo — loopback (локальный интерфейс для самого себя)
  • eth0, enp0s3 — проводная сеть
  • wlan0, wlp2s0 — Wi‑Fi
  • Короткий вывод (часто удобнее новичку):

    Маршруты и шлюз

    Показать таблицу маршрутизации:

    Ищите строку вида default via ... — это и есть шлюз по умолчанию.

    Проверка связи: ping

    ping показывает, есть ли базовая связность на уровне IP.

  • если ping по IP работает, а по имени нет, проблема часто в DNS
  • некоторые хосты могут блокировать ping, это не всегда означает “сети нет”
  • Документация:

  • ping manual
  • DNS-проверка: getent

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

    Документация:

  • getent manual
  • Проверка доступа к вебу: curl

    curl полезен, чтобы проверить HTTP/HTTPS без браузера.

  • -I запрашивает только заголовки (быстро и удобно для диагностики)
  • Документация:

  • curl documentation
  • Порты и сокеты: как понять, что “слушает” система

    Когда вы запускаете сетевую программу (например, SSH-сервер), она открывает порт и “слушает” подключения. Смотреть это удобно командой ss.

  • -t TCP
  • -u UDP
  • -l listening (слушающие)
  • -p процесс (может требовать sudo для полного отображения)
  • -n без DNS-имен (быстрее и меньше путаницы)
  • Документация:

  • ss manual
  • SSH: безопасное удалённое подключение

    SSH — стандартный способ подключаться к Linux-серверам и управлять ими удалённо. SSH шифрует трафик и поддерживает аутентификацию паролем или ключами.

    Документация:

  • OpenSSH manual pages
  • Клиент и сервер

  • ssh — клиент (подключается к удалённой машине)
  • sshd — сервер (принимает подключения)
  • На вашей машине “для практики” сервер может быть не нужен (например, если вы только подключаетесь к чужому серверу). На сервере SSH обычно работает как служба, поэтому пригодятся навыки из темы про systemctl.

    Проверка статуса SSH-сервера (на машине, которая должна принимать подключения):

    В некоторых дистрибутивах имя службы может быть sshd:

    Подключение по паролю

    Базовый синтаксис:

    Подключение к нестандартному порту (если SSH работает не на 22):

    Аутентификация по ключу (рекомендуется)

    Подход с ключами обычно безопаснее паролей.

  • Создайте ключ на клиенте (на своём компьютере):
  • Скопируйте публичный ключ на сервер:
  • Подключитесь:
  • Что важно понимать:

  • приватный ключ хранится у вас (обычно ~/.ssh/id_ed25519) и его нельзя передавать
  • публичный ключ можно передавать (обычно ~/.ssh/id_ed25519.pub)
  • права на приватный ключ должны быть строгими, иначе SSH может отказать в использовании
  • Проверка и исправление прав (если SSH ругается):

    !Как работает вход по SSH-ключу

    Полезные файлы SSH

  • ~/.ssh/config — настройки клиента (алиасы хостов, порт, пользователь)
  • /etc/ssh/sshd_config — настройки SSH-сервера
  • Пример удобного алиаса в ~/.ssh/config:

    После этого подключение будет таким:

    Копирование файлов: scp и sftp

    Скопировать файл на сервер:

    Скопировать с сервера:

    Интерактивная работа с файлами через sftp:

    Документация:

  • scp manual
  • sftp manual
  • Firewall: что это и зачем он нужен

    Firewall (межсетевой экран) — это правила, которые разрешают или запрещают входящие и исходящие сетевые соединения.

    Практическая цель firewall для новичка:

  • закрыть всё лишнее
  • оставить открытым только то, что действительно нужно (например, SSH)
  • Важно различать:

  • входящие подключения (к вам)
  • исходящие подключения (от вас)
  • На сервере входящие ограничения критичны почти всегда.

    !Роль firewall между сетью и службами

    UFW (часто в Ubuntu)

    UFW — простой интерфейс управления правилами.

    Документация:

  • Ubuntu UFW documentation
  • Проверить статус:

    Включить UFW:

    Разрешить SSH (обычно порт 22):

    Открыть конкретный порт:

    Удалить правило (пример):

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

    firewalld (часто в Fedora/RHEL-подобных)

    firewalld использует зоны и сервисы.

    Документация:

  • firewalld documentation
  • Проверить состояние:

    Посмотреть активную зону:

    Разрешить SSH:

    Открыть порт 80/tcp:

    Что “под капотом”: nftables

    Во многих современных дистрибутивах базовым механизмом фильтрации пакетов является nftables, а UFW и firewalld выступают как более удобные “обёртки”. На базовом уровне достаточно уметь пользоваться одной обёрткой, не настраивая nftables вручную.

    Документация:

  • nft manual
  • Базовые практики безопасности для новичка

    Минимально достаточные привилегии

  • работайте обычным пользователем
  • используйте sudo точечно (как в предыдущих темах)
  • не запускайте случайные команды из интернета с sudo
  • Обновления

    Уязвимости закрываются обновлениями, поэтому регулярное обновление пакетов — часть безопасности.

  • для Debian/Ubuntu: sudo apt update и sudo apt upgrade
  • для Fedora: sudo dnf upgrade
  • SSH на сервере: практический минимум

  • используйте вход по ключам вместо паролей
  • отключайте вход под root, если это допускает ваша политика администрирования
  • ограничивайте доступ к SSH через firewall (например, разрешайте только нужные IP, если это возможно)
  • Изменения настроек SSH-сервера обычно делаются в /etc/ssh/sshd_config, после чего нужен перезапуск или перезагрузка конфигурации. Перед применением настроек полезно проверять конфигурацию и иметь запасной способ доступа, чтобы не потерять управление сервером.

    Логи и диагностика

    Если “не пускает по сети”, базовая цепочка проверки такая:

  • Проверить, запущена ли служба: systemctl status ssh.
  • Проверить, слушает ли порт: ss -tulpn.
  • Проверить правила firewall: sudo ufw status verbose или sudo firewall-cmd --list-all.
  • Посмотреть логи: journalctl -u ssh -b --no-pager.
  • Защита от перебора паролей

    Если SSH доступен из интернета, его часто атакуют перебором. Один из популярных инструментов для автоматической блокировки таких попыток — fail2ban.

    Документация:

  • fail2ban documentation
  • Памятка команд

    | Задача | Команда | |---|---| | Посмотреть IP и интерфейсы | ip -br addr | | Посмотреть маршруты и шлюз | ip route | | Проверить связность по IP | ping -c 4 8.8.8.8 | | Проверить DNS-разрешение имени | getent hosts example.com | | Проверить HTTP/HTTPS без браузера | curl -I https://example.com | | Посмотреть слушающие порты | ss -tulpn | | Подключиться по SSH | ssh user@server | | Создать ключ SSH | ssh-keygen -t ed25519 | | Скопировать ключ на сервер | ssh-copy-id user@server | | UFW: разрешить SSH | sudo ufw allow OpenSSH | | firewalld: разрешить SSH | sudo firewall-cmd --add-service=ssh --permanent && sudo firewall-cmd --reload |

    Что дальше

    Теперь у вас есть базовое понимание сетевой диагностики (IP, маршруты, DNS, порты) и ключевых практик безопасности (SSH-ключи, минимальные привилегии, firewall). Дальше эти знания особенно пригодятся при настройке реальных сервисов, удалённом администрировании и разборе ошибок по логам.