💡 Полезные Советы

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

11.02.26
22

📂 File and Directory Management (Управление файлами и папками)

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

  • ls (List): Выводит список файлов и папок в текущей директории.

  • pwd (Print Working Directory): Показывает полный путь к папке, в которой вы сейчас находитесь.

  • cd (Change Directory): Используется для перехода в другую папку.

  • mkdir (Make Directory): Создает новую папку.

  • rmdir (Remove Directory): Удаляет пустую папку.

  • touch: Создает пустой файл или обновляет время последнего изменения существующего файла.

  • cp (Copy): Копирует файлы или папки.

  • mv (Move): Перемещает файлы или папки (также используется для переименования).

  • rm (Remove): Удаляет файлы (или папки с ключом -r).

📝 File Viewing and Editing (Просмотр и редактирование файлов)

Инструменты для чтения содержимого файлов и внесения изменений.

  • cat (Concatenate): Выводит содержимое файла на экран полностью.

  • less: Позволяет просматривать длинные файлы постранично (можно листать вверх и вниз).

  • more: Старая версия less, позволяет листать только вниз (в большинстве случаев).

  • nano: Простой и понятный консольный текстовый редактор для новичков.

  • vim: Мощный и сложный консольный редактор для продвинутых пользователей.

  • gedit: Стандартный графический текстовый редактор (как Блокнот) для среды GNOME.

⚙️ Process Management (Управление процессами)

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

  • ps (Process Status): Показывает моментальный снимок текущих запущенных процессов.

  • top: Показывает список процессов в реальном времени (нагрузка на CPU, память).

  • kill: Завершает процесс по его идентификатору (PID).

  • killall: Завершает все процессы с указанным именем.

  • pstree: Показывает процессы в виде иерархического дерева (кто кого запустил).

  • htop: Более удобная, цветная и интерактивная версия top.

ℹ️ System Information (Информация о системе)

Диагностика ресурсов и параметров компьютера.

  • uname: Выводит информацию о системе (ядро, архитектура). Часто используют uname -a.

  • df (Disk Free): Показывает количество свободного и занятого места на дисках.

  • du (Disk Usage): Показывает размер папок и файлов.

  • free: Показывает использование оперативной памяти (RAM) и файла подкачки (Swap).

  • lscpu: Детальная информация о процессоре.

  • lshw (List Hardware): Подробная информация обо всем оборудовании.

  • lsblk (List Block Devices): Список всех подключенных накопителей и их разделов.

👤 User and Group Management (Управление пользователями и правами)

Администрирование учетных записей.

  • passwd: Смена пароля пользователя.

  • useradd: Создание нового пользователя.

  • userdel: Удаление пользователя.

  • usermod: Изменение параметров пользователя (например, добавление в группу).

  • groupadd: Создание новой группы пользователей.

  • groupdel: Удаление группы.

  • groups: Показывает, в каких группах состоит пользователь.

  • id: Выводит цифровые идентификаторы пользователя (UID) и групп (GID).

🌐 Network Configuration and Monitoring (Сеть)

Настройка сети и диагностика подключений.

  • ifconfig: Старая команда для просмотра и настройки сетевых интерфейсов (IP, маска).

  • ip: Современная и более мощная замена ifconfig.

  • ping: Проверка доступности удаленного узла (сервера/сайта).

  • netstat: Статистика сетевых подключений, портов и таблиц маршрутизации.

  • ss: Современная и быстрая замена netstat для просмотра сокетов.

  • traceroute: Показывает маршрут (узлы), который проходит пакет до цели.

  • ssh (Secure Shell): Безопасное подключение к удаленному компьютеру.

  • nc (Netcat): "Швейцарский нож" для сети — умеет читать и писать данные в сетевые соединения (тестирование портов, передача файлов).

📦 Package Management (Управление пакетами)

Установка и удаление программ. Команды зависят от вашего дистрибутива Linux.

  • apt-get / apt: Используются в Debian, Ubuntu, Mint. apt — более современная и удобная версия.

  • yum / dnf: Используются в RHEL, CentOS, Fedora. dnf — современная замена yum.

  • rpm: Низкоуровневый менеджер пакетов для Red Hat систем (установка .rpm файлов).

  • dpkg: Низкоуровневый менеджер пакетов для Debian систем (установка .deb файлов).

  • snap: Универсальный менеджер пакетов от Canonical (работает на большинстве дистрибутивов).

  • zypper: Менеджер пакетов для openSUSE.

Как сбросить пароль Raspberry Pi оффлайн (через редактирование shadow)

09.02.26
25

С моей Raspberry Pi 5 всё не так, при добавлении init=/bin/sh в cmdline.txt на Raspberry Pi появляется чёрный экран и кулер работает на максимуме, явный симптом зависания и проблема глубже на уровне железа. Поэтому я заказал UART провод, скоро подключимся по COM порту с помощью PuTTy и посмотрим, какие проблемы при старте системы. 

Раз init=/bin/sh ведёт себя нестабильно, можно сбросить пароль оффлайн, изменив shadow на карте памяти. Если у вас Windows, используйте виртуальную машину (VirtualBox/VMware) с любым Live-образом Linux (Ubuntu/Debian).

Шаг 1: Подготовка VirtualBox (если у вас Windows).
Проброс USB-картридера в виртуальную машину часто вызывает трудности, так как Windows "захватывает" устройство первой.

  1. Установите VirtualBox Extension Pack (обязательно для работы USB 2.0/3.0).
  2. Вставьте картридер с флешкой в ПК.
  3. В настройках машины: USB -> Поставьте галочку Включить контроллер USB -> Нажмите иконку с плюсом ("Добавить фильтр") -> Выберите ваш картридер (например, Generic Mass Storage).
  4. Важно: Теперь извлеките картридер из ПК. Запустите виртуальную машину.
  5. Когда Linux загрузится, вставьте картридер обратно в порт. Благодаря фильтру он сразу "пробросится" внутрь виртуальной машины.

Шаг 2: Монтирование файловой системы (выполняйте только если карта не смонтировалась автоматически - см. Бонус внизу)

  1. Узнайте имя вашего диска:
    1. lsblk
    2. Обычно карта памяти видна как sdb или mmcblk0. На ней будет два раздела:
      1. маленький bootfs (FAT32)
      2. большой rootfs (EXT4) - он нам и нужен.
  2. Смонтируйте раздел с системой (замените sdb2 на ваш раздел):

    sudo mkdir -p /mnt/rpi
    sudo mount /dev/sdb2 /mnt/rpi
    

Шаг 3: Удаление пароля

Нам нужно отредактировать файл /etc/shadow, где хранятся хеши паролей.

  1. Сделайте резервную копию на всякий случай:

    sudo cp /mnt/rpi/etc/shadow /mnt/rpi/etc/shadow.bak
  2. Откройте файл в редакторе:

    sudo nano /mnt/rpi/etc/shadow
    
  3. Найдите строку с вашим пользователем (обычно pi, root или ваш логин). Она выглядит примерно так:

    user:$6$kH...поток_символов...:19000:0:99999:7:::
  4. Что делать: Удалите всё, что находится между первым и вторым двоеточием.
    1. Было: user:$6$aBcDeF...:12345:...
    2. Стало: user::12345:...
    3. Примечание: Двоеточия должны остаться, между ними должно быть пусто. Это означает "пароль не задан".
  5. Сохраните файл: Ctrl+O -> Enter -> Ctrl+X.

Шаг 4: Завершение

  1. Размонтируйте диск перед извлечением, чтобы не повредить файловую систему:

    sudo umount /mnt/rpi
  2. Вставьте карту обратно в Raspberry Pi и включите его.
  3. Система пустит вас без пароля (или попросит логин - введите имя пользователя и нажмите Enter).
  4. Сразу же задайте новый пароль:
  5. passwd

Бонус: если раздел уже смонтирован (пример с /run/media/...) [Как у меня]

Во многих десктоп‑дистрибутивах (KDE, GNOME, XFCE) флешки и SD‑карты автоматически монтируются файловым менеджером в /run/media/ИМЯ_ПОЛЬЗОВАТЕЛЯ/МЕТКА_НОСИТЕЛЯ.

Это значит, что вам может не понадобиться вручную монтировать раздел в /mnt - достаточно сразу отредактировать файл по уже существующему пути.


Например, если система смонтировала root‑раздел Raspberry Pi как /run/media/merion/rootfs, достаточно выполнить:

sudo nano /run/media/merion(ваше имя пользователя)/rootfs/etc/shadow

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

Чем отличается /mnt от /run/media ?

/mnt - исторически "универсальная" точка для ручного временного монтирования, куда админ сам монтирует нужный раздел командой mount.

/media и /run/media - стандартные места для автоматического монтирования съёмных носителей (флешки, SD‑карты и т.п.) через udisks/desktop‑окружение, обычно подподкаталог /run/media/ПОЛЬЗОВАТЕЛЬ/….

Как проверить состояние SD карты Raspberry Pi 5 и расшифровать логи?

07.02.26
31

Читатели моего сайта знают: 20 раз перезаписывал свою SD карту и давайте посмотрим жива ли она? В этом руководстве я расскажу как проверить SD карту Rastberry Pi 5. (Всё началось из-за проблем прошивки, но мне удалось отключить обновление).

P.S: Мне пришлось решать проблему с Rastbian, потому что на Ubuntu часто отваливался RDP (Удаленный рабочий стол), а у Raspberry Pi есть своя фишка, о которой я расскажу в следующих "Полезных советах".

Если у вас загружен графический интерфейс (Raspberry Pi OS Desktop), вы можете использовать официальную утилиту для тестов. Она не просто проверяет скорость, но и говорит, подходит ли карта для работы ОС.
 

Как запустить:

  1. Откройте меню Raspberry Pi (малинка в левом верхнем углу).
  2. Перейдите в раздел Accessories (Стандартные).
  3. Выберите Raspberry Pi Diagnostics.

(Если утилиты нет, установите её командой: sudo apt install agnostics)

Как пользоваться.

В открывшемся окне нажмите кнопку Run Tests. Утилита проведёт серию тестов записи и чтения файлов. Это займёт 1-2 минуты. Не запускайте в это время тяжелых программ.

Расшифровка результатов (Log).

После теста вы увидите либо PASS (Тест пройден), либо FAIL (Провал). Нажмите Show Log, чтобы увидеть детали. Вот на что смотреть:

ПараметрНорма (Target)За что отвечает
Sequential Write> 10,000 KB/secСкорость записи больших файлов. Если ниже 10 МБ/с - карта старая или низкого класса.
Random Write> 500 IOPSСамый важный параметр. Скорость записи мелких файлов (логов, кэша). Если тут FAIL - система будет "тормозить" и зависать.
Random Read> 1500 IOPSСкорость чтения мелких файлов. Влияет на скорость запуска программ и загрузки ОС.

Бонус, расшифровка логов со скриншота:

Тесты SD-карты у которой уже облезла краска, оказались не просто нормальными, они отличные! Карта памяти показывает производительность значительно выше минимальных требований Raspberry Pi. Несмотря на 20 циклов перезаписи, контроллер карты пока справляется с нагрузкой великолепно.

ТестВаш результатНорма (Target)Вердикт
Последовательная запись80 734 KB/sec10 000 KB/secВ 8 раз быстрее нормы. Это отличный показатель, запись больших файлов (видео, образы) будет очень быстрой.
Случайная запись (4k)1028 IOPS500 IOPSВ 2 раза выше нормы. Это критически важный параметр. Ваша система не будет «подтормаживать» при работе с логами и базами данных.
Случайное чтение (4k)2430 IOPS1500 IOPSВ 1.6 раза выше нормы. Запуск программ и загрузка ОС будут происходить быстро.

Процесс загрузки Linux‑системы

31.01.26
43

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

1. BIOS/UEFI: старт системы

После включения процессор начинает выполнять код встроенной прошивки материнской платы - BIOS или UEFI.

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

Основная задача этого этапа - подготовить железо и найти, откуда загружать операционную систему.

2. MBR/GPT: первая стадия загрузки

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

MBR (Master Boot Record) - классическая схема, занимает первые 512 байт диска.

GPT (GUID Partition Table) - современная схема, логически отделяет таблицу разделов и код загрузки.

В этой области лежит крошечный фрагмент кода - первая стадия загрузчика. Его возможности ограничены: он только считывает таблицу разделов и находит место, где расположена "вторая стадия" полноценного загрузчика (обычно на разделе /boot).

3. Загрузчик (GRUB/LILO): выбор и запуск ядра

Дальше управление получает загрузчик второго этапа - чаще всего GRUB.

Он уже умеет работать с файловыми системами и конфигурационными файлами.

Типичные задачи загрузчика:

  • Показать меню с вариантами загрузки (разные ядра, режим восстановления, другие ОС).
  • По выбору пользователя загрузить в память образ ядра Linux и initramfs (initial RAM filesystem).
  • Передать управление загруженному ядру.

В системах с dual‑boot GRUB может не только загружать Linux, но и "передавать эстафету" загрузчику Windows (chainloading).

4. initramfs: временная файловая система в памяти

После загрузки в память ядро получает вместе с ним образ initramfs - это небольшая файловая система, расположенная в оперативной памяти.

Зачем она нужна:

  • На "настоящем" корневом разделе (/) лежат драйверы и модули, но чтобы его смонтировать, эти драйверы уже должны быть доступны.
  • initramfs решает эту проблему, предоставляя ядру временный root с необходимыми модулями, скриптами и утилитами.

Типичный сценарий работы initramfs:

  1. Ядро монтирует initramfs как временную корневую файловую систему и запускает из неё скрипт /init.
  2. /init подгружает модули ядра, настраивает RAID, LVM, расшифровывает шифрованные разделы и ищет постоянный корневой раздел.
  3. После нахождения и монтирования «настоящего» root выполняется переход (switch_root/pivot_root) на него, и система готова стартовать основную init‑систему.

По сути initramfs - одноразовая мини‑система, которая существует только во время старта и "исчезает" после перехода на основной root.

5. Ядро Linux: инициализация системы

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

На этом этапе формируется базовый программный "скелет" системы: ядро уже умеет работать с устройствами и файловыми системами и готово запускать пользовательские процессы.

Когда корневой раздел смонтирован, ядро запускает первый пользовательский процесс с PID 1 - init‑систему.

6. Init‑система: запуск служб и пользовательской среды

Init‑система - это первый процесс в пространстве пользователя, который отвечает за запуск всех остальных сервисов и подготовку окружения для пользователя.

В современных дистрибутивах чаще всего используется systemd, но исторически применялись и другие варианты:

SysV init - набор shell‑скриптов и runlevel’ов (0,1,3,5 и т.д.), запускающих службы в определённом порядке.

Upstart - событийная система, где службы стартуют в ответ на события (запуск системы, поднятие сети и т.п.).

systemd - современная система с unit‑файлами, параллельным запуском служб, зависимостями и мощным журналированием.

Основные задачи init‑системы:

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

Как только init‑система завершит свои задачи, пользователь видит приглашение к входу или рабочий стол - на этом процесс загрузки считается завершённым.

Глоссарий терминов

BIOS и UEFI - "Начальники железа"

  • BIOS (Basic Input/Output System - базовая система ввода‑вывода)
    Представьте BIOS как "бригадира" на стройке. Когда вы включаете компьютер, он просыпается первым, проверяет, что все рабочие (железо) на месте и в состоянии работать, а затем показывает, откуда начинать строительство (загрузку системы).
    Это старая технология: она простая, но имеет ограничения (например, не видит очень большие современные диски и имеет примитивный текстовый интерфейс).
  • UEFI (Unified Extensible Firmware Interface)
    Это "современный менеджер" на замену старому бригадиру BIOS. Он делает то же самое (проверяет железо и ищет загрузчик), но гораздо умнее:
    • Понимает мышку и имеет красивый графический интерфейс.
    • Видит диски огромного объёма (больше 2 ТБ).
    • Умеет загружаться быстрее и безопаснее (Secure Boot).
      Сегодня почти на всех новых компьютерах стоит именно UEFI, хотя по привычке мы часто называем его BIOS.
  • POST (Power-On Self Test)
    Это "утренняя перекличка" железа. Сразу после включения BIOS/UEFI быстро проверяет основные узлы:
    • Оперативная память (RAM) - целая ли?
    • Видеокарта - работает ли вывод на экран?
    • Клавиатура - подключена ли?
      Если всё хорошо - компьютер пикнет один раз или просто покажет логотип. Если что-то сломалось - начнёт пищать кодами ошибок (например, три длинных гудка - проблема с памятью).

Разметка диска: MBR и GPT
Чтобы компьютер понял, где на диске лежат файлы, диск нужно разметить.

  • MBR (Master Boot Record - главная загрузочная запись)
    Старый способ разметки, как старая карта города.
    • Ограничение: видит диск размером максимум 2 Терабайта.
    • Может иметь всего 4 главных раздела (например, диск C, D, E и F).
    • Хранит информацию о разделах только в одном месте (в самом начале диска) - если это место повредится, можно потерять все данные.
      Загрузчик при такой разметке часто "втискивается" прямо в эти первые байты диска.
  • GPT (GUID Partition Table - таблица разделов GUID)
    Современная "карта города".
    • Понимает диски любого реального размера (хоть 100 ТБ).
    • Позволяет создать огромное количество разделов (теоретически - бесконечно, практически - 128 и больше).
    • Хранит копии таблицы разделов в начале и в конце диска - если начало повредится, данные можно восстановить из копии.
      Обычно используется в паре с UEFI.

Загрузчики в мир ОС

  • Загрузчик (Bootloader)
    Это маленькая программа-посредник. BIOS/UEFI слишком примитивен, чтобы разбираться в файлах операционной системы. Поэтому он запускает загрузчик, а уже загрузчик знает: "Ага, ядро Linux лежит вот в этой папке на этом диске, сейчас я его прочитаю и запущу".
    Примеры: GRUB (для Linux), Windows Boot Manager (для Windows).
  • GRUB (GRand Unified Bootloader)
    Самый популярный и мощный загрузчик в мире Linux.
    Его суперсилы:
    • Умеет загружать почти любую операционную систему.
    • Показывает меню при включении компьютера, где вы можете выбрать: "Загрузить Ubuntu", "Загрузить Windows" или "Восстановить систему".
    • Если что-то сломалось, у него есть своя командная строка, через которую иногда можно починить загрузку вручную.
  • Chainloading (Цепная загрузка)
    Это когда один загрузчик не грузит систему сам, а передает управление другому загрузчику.
    Представьте: вы выбрали в меню GRUB пункт «Windows». GRUB не умеет запускать ядро Windows напрямую, он просто говорит: «Эй, загрузчик Windows, твой выход!», и передаёт управление ему. Для пользователя это выглядит просто как выбор пункта меню.

Внутренности Linux: Ядро и его помощники

  • Ядро (Kernel)
    Это "мозг" операционной системы.
    Ядро - это самая главная программа, которая управляет всем компьютером.
    • Оно решает, какой программе дать поработать процессором прямо сейчас.
    • Оно выделяет память программам и следит, чтобы они не мешали друг другу.
    • Оно общается с железом (дисками, видеокартой, мышкой).
      Пользователь с ядром напрямую не общается - для этого есть оболочки и программы.
  • Драйвер
    Это "словарь" или "инструкция" для ядра.
    Ядро само по себе не знает, как управлять конкретной моделью видеокарты NVIDIA или принтером Canon. Драйвер - это модуль, который объясняет ядру: "Чтобы напечатать страницу на этом принтере, нужно отправить вот такие команды в порт USB".
    Без драйверов железо просто "мертвый груз".
  • initramfs (Initial RAM Filesystem)
    Это "аварийный чемоданчик" для старта ядра.
    Проблема: чтобы прочитать файлы с диска, ядру нужен драйвер диска. Но драйвер диска сам лежит на диске! Как его прочитать, если мы еще не умеем читать диск?
    Решение: initramfs - это маленький архив, который загрузчик кладёт в оперативную память вместе с ядром. В нём уже лежат самые важные драйверы. Ядро сначала открывает этот архив, берёт оттуда драйвер диска, а уже потом может читать настоящий большой диск с системой.
  • Root (Корень, /)
    Это главная папка всей системы Linux.
    В Windows есть диски C:, D:, E:. В Linux всё начинается от одного корня - символа /.
    Все остальные диски и флешки "подключаются" (монтируются) внутрь папок в этом корне. Когда система загружена, именно в корне лежат все ваши программы, настройки и файлы.

Init-системы: "Управляющие процессами"
После того как ядро запустилось, оно запускает самый первый процесс (PID 1). Этот процесс должен запустить всё остальное (сеть, звук, экран входа в систему). Это и есть Init-система.

  • SysV init (System V init)
    Классический, "дедовский" метод.
    • Работает по строгой очереди: сначала запусти сеть, потом (когда сеть готова) запусти SSH, потом запусти веб-сервер.
    • Использует простые и понятные скрипты (текстовые файлы с командами).
    • Минус: загрузка идёт медленно, потому что процессы ждут друг друга.
  • systemd
    Современный стандарт (используется в Ubuntu, Debian, CentOS, Fedora).
    • Умеет запускать всё параллельно: сеть и звук грузятся одновременно, не ожидая друг друга, если не зависят друг от друга.
    • Очень мощная и сложная: умеет перезапускать упавшие службы, следить за логами, управлять таймерами.
    • Многие критикуют её за сложность ("комбайн, который делает всё"), но она де-факто стандарт сегодня.
  • Upstart
    Попытка сделать что-то среднее между старым SysV и новым systemd.
    Главная идея - "события". Не просто "запусти сеть", а "если вставили сетевой кабель - запусти настройку сети".
    Сейчас почти не используется, так как systemd победила в "войне init-систем".

Шпаргалка по chmod: права доступа в Linux простым языком

27.01.26
49

В Linux права считаются простой арифметикой. Вы просто складываете числа для нужных действий.

1. Базовые значения

ЧислоДействиеАнгл.Описание
4ЧтениеReadМожно открыть и посмотреть файл
2ЗаписьWriteМожно изменять или удалять файл
1ВыполнениеeXecuteМожно запустить файл (скрипт/программу)

2. Полная таблица (как на твоем скрине)

Чтобы получить комбинированные права, просто сложите цифры (например: Чтение + Запись = 4 + 2 = 6).

ЧислоСимволыРасшифровка (Права)Формула
0---Нет правНичего
1--xТолько выполнение1
2-w-Только запись2
3-wxЗапись + Выполнение2 + 1
4r--Только чтение4
5r-xЧтение + Выполнение4 + 1
6rw-Чтение + Запись4 + 2
7rwxПолные права (всё вместе)4 + 2 + 1

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

  1. Владелец (Owner) - тот, кто создал файл.

  2. Группа (Group) - коллеги/команда владельца.

  3. Остальные (Others) - все прочие пользователи системы.

Пример: chmod 755 filename

  • 7 (Владелец): rwx (Может всё: читать, писать, запускать).

  • 5 (Группа): r-x (Может читать и запускать, но не редактировать).

  • 5 (Остальные): r-x (Могут читать и запускать, но не редактировать).

Популярные комбинации

  • chmod 777 - Разрешено всё и всем (опасно для безопасности, используйте с осторожностью).

  • chmod 755 - Стандарт для программ и скриптов (владелец меняет, остальные только запускают).

  • chmod 644 - Стандарт для обычных документов (владелец читает/пишет, остальные только читают).

  • chmod 600 - Секретный файл (только владелец может читать и писать, остальные даже не откроют).

  • chmod +x - Сделать файл исполняемым (добавляет "x" всем).

💡 Важное применительно к папка(директориям)

  1. Папка без x (Execute) - бесполезна!

    • Если у папки есть права rw- (6), но нет x, вы сможете сделать ls (увидеть имена файлов), но не сможете открыть ни один файл внутри, не сможете зайти в нее (cd) и получить доступ к подпапкам.

    • Поэтому для папок почти всегда нужно давать минимум 5 (r-x) или 7 (rwx). Права 6 (rw-) для папок встречаются крайне редко.

  2. Право удалять файлы (w на папку)

    • Чтобы удалить файл, вам не нужны права на запись в сам файл. Вам нужны права на запись (w) в папку, где этот файл лежит.

    • Пример: Вы можете удалить чужой файл, защищенный от записи (r--), если у вас есть полные права (rwx) на папку, в которой он находится.

  3. Комбинация wx (3) для папок

    • Это называется "Drop Box" (почтовый ящик). Вы можете положить туда файл (создать), но не можете посмотреть (ls), что там еще лежит (нет r). Используется редко, например, для папки lost+found.
       

Шпаргалка по systemctl: Управление службами в Linux

25.01.26
176

systemd - это система инициализации и управления службами в Linux. Основная утилита для взаимодействия с ней - systemctl. С её помощью мы запускаем веб-серверы, базы данных, ботов и настраиваем их автозагрузку.

Примечание.

systemd - это центральный механизм, который отвечает за запуск Linux после включения компьютера и за управление всеми службами (демонами), работающими в системе.
Когда Linux загружается, именно systemd:
•     запускает сетевые службы
•     поднимает базы данных
•     стартует веб‑серверы
•     следит за зависимостями
•     перезапускает упавшие процессы
•     управляет логами
Чтобы взаимодействовать с systemd, используется команда systemctl - это как "пульт управления" всеми службами.

В командах ниже замените name на имя вашей службы (например, nginx, docker, postgresql или my-bot).

1. Управление состоянием (прямо сейчас)

Базовые команды для включения и выключения.

КомандаОписание
systemctl start nameЗапустить службу.
systemctl stop nameОстановить службу.
systemctl restart nameПерезапустить (Stop + Start). Используется, если служба зависла или нужно применить серьезные изменения.
systemctl reload nameПеречитать конфигурацию без остановки. Идеально для веб-серверов (Nginx/Apache) при правке конфигов.
systemctl status nameПоказать статус. Самая важная команда: показывает, запущена ли служба, последние логи и ошибки.

Примечание.

Не обязательно писать .service в конце имени (например, можно писать sudo systemctl start nginx вместо nginx.service).

2. Автозагрузка (при включении ПК)

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

КомандаОписание
systemctl enable nameВключить автозагрузку. Создает симлинк в системе.
systemctl disable nameВыключить автозагрузку. Служба не запустится сама после ребута.
systemctl enable --now nameКиллер-фича: Включает автозагрузку И сразу запускает службу. (2 команды в одной).
systemctl is-enabled nameПроверить, включена ли автозагрузка сейчас.

Диагностика и поиск проблем

Если что-то сломалось, эти команды помогут понять, где именно.

  • systemctl --failed Показать список всех служб, которые упали с ошибкой. С этого стоит начинать починку системы.

  • systemctl list-units --type=service Показать вообще все активные службы в системе.