<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Гайд для новичков: структура файлов в Linux]]></title><description><![CDATA[<p dir="auto">В Linux все — это файлы. Понимание структуры файловой системы критично для системного администратора, разработчика и даже обычного пользователя. Это позволит вам:</p>
<ul>
<li>Находить нужные программы и конфигурации</li>
<li>Правильно устанавливать ПО</li>
<li>Разбираться в ошибках и логах</li>
<li>Не случайно удалить что-то важное</li>
<li>Безопасно работать с системой</li>
</ul>
<h2>Корневой каталог (/)</h2>
<p dir="auto">Linux использует иерархическую структуру, начинающуюся с единственного корня — <code>/</code>. Это отличие от Windows, где несколько дисков (C:, D:) с собственными корнями.</p>
<pre><code class="language-bash">ls /
</code></pre>
<p dir="auto">Вы увидите примерно такое:</p>
<pre><code>bin    boot   dev    etc    home   lib    media  mnt    opt    proc   root   run    sbin   srv    sys    tmp    usr    var
</code></pre>
<p dir="auto">Каждый из этих каталогов имеет строго определённое предназначение. Давайте разберёмся в каждом.</p>
<h2>Основные директории</h2>
<h3>/bin — исполняемые файлы (бинарники) для пользователей</h3>
<p dir="auto"><strong>Предназначение:</strong> команды, необходимые всем пользователям системы для базовой работы.</p>
<p dir="auto"><strong>Примеры команд:</strong></p>
<pre><code class="language-bash">ls /bin

# Вы увидите:
# bash  cat  chmod  cp  date  echo  grep  kill  ln  ls  mkdir  more  mv  ps  pwd  rm  sed  sh  sort  tar  touch  uname
</code></pre>
<p dir="auto"><strong>Примеры использования:</strong></p>
<pre><code class="language-bash"># Эти команды находятся в /bin:
ls /home                    # программа ls
cp file1.txt file2.txt      # программа cp
mkdir new_folder            # программа mkdir
cat file.txt                # программа cat
</code></pre>
<p dir="auto"><strong>Почему это нужно:</strong> Если система не загружается в GUI, вы сможете загрузиться в минималистичный режим и использовать эти команды для восстановления.</p>
<h3>/sbin — системные команды (super user binary)</h3>
<p dir="auto"><strong>Предназначение:</strong> команды для администратора (root), необходимые для управления системой.</p>
<p dir="auto"><strong>Примеры команд:</strong></p>
<pre><code class="language-bash">ls /sbin

# Вы увидите команды, требующие прав администратора:
# ifconfig  iptables  fdisk  mkfs  mount  reboot  shutdown  useradd  usermod  visudo
</code></pre>
<p dir="auto"><strong>Примеры использования:</strong></p>
<pre><code class="language-bash"># Команды, требующие sudo:
sudo shutdown -h now        # выключить компьютер
sudo reboot                 # перезагрузка
sudo fdisk -l              # просмотр дисков
sudo useradd newuser       # создать пользователя
</code></pre>
<p dir="auto"><strong>Почему это нужно:</strong> Система разделяет «обычные» и «админские» команды для безопасности. Обычный пользователь не должен случайно выключить сервер.</p>
<h3>/home — домашние директории пользователей</h3>
<p dir="auto"><strong>Предназначение:</strong> личные файлы каждого пользователя системы.</p>
<p dir="auto"><strong>Структура:</strong></p>
<pre><code>/home/
├── alice/
│   ├── Documents/
│   ├── Downloads/
│   ├── Pictures/
│   ├── .bashrc
│   ├── .ssh/
│   └── projects/
└── bob/
    ├── Documents/
    ├── .bashrc
    └── work/
</code></pre>
<p dir="auto"><strong>Примеры работы:</strong></p>
<pre><code class="language-bash"># Кто я?
whoami
# alice

# Где моя домашняя директория?
pwd
# /home/alice

# Или сокращённо через переменную:
echo $HOME
# /home/alice

# Символ ~ представляет домашнюю директорию:
cd ~                        # перейти в /home/alice
cd ~/Documents              # перейти в /home/alice/Documents
</code></pre>
<p dir="auto"><strong>Важные скрытые файлы (начинаются с точки):</strong></p>
<pre><code class="language-bash"># Показать скрытые файлы:
ls -la ~

# Вы увидите:
# .bashrc          — конфигурация bash-шелла
# .bash_history    — история команд
# .ssh/            — SSH-ключи для доступа на серверы
# .gitconfig       — конфигурация Git
# .config/         — конфигурации приложений
</code></pre>
<p dir="auto"><strong>Почему это нужно:</strong> Каждый пользователь изолирован друг от друга. Ваши файлы в <code>/home/alice</code> не видны пользователю <code>bob</code>.</p>
<h3>/root — домашняя директория администратора</h3>
<p dir="auto"><strong>Предназначение:</strong> домашняя папка пользователя root (администратора).</p>
<pre><code class="language-bash"># Если вы root:
pwd
# /root

# Если вы обычный пользователь, вы не можете туда заходить:
ls /root
# ls: cannot open directory '/root': Permission denied

# Но под sudo сможете:
sudo ls /root
</code></pre>
<p dir="auto"><strong>Почему это нужно:</strong> root — это особый пользователь с полными правами. Его файлы держат отдельно от <code>/home</code>.</p>
<h3>/etc — конфигурационные файлы</h3>
<p dir="auto"><strong>Предназначение:</strong> конфигурации системы и приложений. Это текстовые файлы, которые управляют поведением программ и системы.</p>
<p dir="auto"><strong>Примеры конфигов:</strong></p>
<pre><code class="language-bash">ls /etc | head -20

# Вы увидите:
# bash.bashrc              — конфиги bash для всех пользователей
# fstab                    — какие диски монтировать при загрузке
# hostname                 — имя компьютера
# hosts                    — локальная таблица DNS
# passwd                   — данные пользователей
# shadow                   — хэши паролей (только для root)
# ssh/                     — конфиги SSH-сервера
# nginx/                   — конфиги веб-сервера nginx
# postgresql/              — конфиги PostgreSQL
# cron.d/                  — расписание автоматических задач
</code></pre>
<p dir="auto"><strong>Примеры работы:</strong></p>
<pre><code class="language-bash"># Посмотреть имя компьютера:
cat /etc/hostname
# mycomputer

# Посмотреть таблицу DNS:
cat /etc/hosts
# 127.0.0.1       localhost
# ::1             localhost
# 192.168.1.100   mycomputer

# Посмотреть данные пользователей (без паролей):
cat /etc/passwd
# root:x:0:0:root:/root:/bin/bash
# postgres:x:116:120:PostgreSQL administrator:/var/lib/postgresql:/bin/bash
# alice:x:1000:1000:Alice User:/home/alice:/bin/bash

# Посмотреть, какие диски монтированы:
cat /etc/fstab
# UUID=abc123  /           ext4  defaults  0 0
# UUID=def456  /boot       ext4  defaults  0 0
# UUID=ghi789  /home       ext4  defaults  0 0
</code></pre>
<p dir="auto"><strong>Конфигурирование сервисов:</strong></p>
<pre><code class="language-bash"># Конфиг PostgreSQL:
cat /etc/postgresql/15/main/postgresql.conf | grep max_connections
# max_connections = 100

# Конфиг SSH-сервера:
cat /etc/ssh/sshd_config | grep Port
# Port 22

# Конфиг Nginx:
cat /etc/nginx/nginx.conf
</code></pre>
<p dir="auto"><strong>Почему это нужно:</strong> Если программа работает неправильно, ответ часто находится в <code>/etc</code>. Например, если веб-сайт не открывается, проверьте конфиг nginx в <code>/etc/nginx/</code>.</p>
<h3>/var — переменные данные (logs, cache, databases)</h3>
<p dir="auto"><strong>Предназначение:</strong> данные, которые меняются во время работы системы: логи, кэши, очереди писем, временные базы данных.</p>
<p dir="auto"><strong>Структура:</strong></p>
<pre><code class="language-bash">ls /var

# Основные директории:
# log/       — логи приложений
# cache/     — кэшированные данные
# tmp/       — временные файлы
# spool/     — очереди (писем, заданий на печать)
# lib/       — данные баз данных (PostgreSQL, MySQL)
# run/       — информация о запущенных процессах (PID-файлы)
</code></pre>
<p dir="auto"><strong>Примеры логов:</strong></p>
<pre><code class="language-bash"># Логи системы:
sudo tail -f /var/log/syslog              # основной системный лог (Ubuntu/Debian)
sudo tail -f /var/log/messages            # основной системный лог (RHEL/CentOS/Fedora)

# Логи Nginx:
sudo tail -f /var/log/nginx/access.log    # кто заходил на сайт
sudo tail -f /var/log/nginx/error.log     # ошибки веб-сервера

# Логи PostgreSQL:
sudo tail -f /var/log/postgresql/postgresql.log

# Логи SSH (попытки входа):
sudo tail -f /var/log/auth.log            # попытки входа (Ubuntu/Debian)
sudo tail -f /var/log/secure              # попытки входа (Fedora/CentOS)
</code></pre>
<p dir="auto"><strong>Работа с логами:</strong></p>
<pre><code class="language-bash"># Посмотреть последние 20 строк:
sudo tail -n 20 /var/log/nginx/error.log

# Смотреть логи в реальном времени:
sudo tail -f /var/log/nginx/access.log

# Найти ошибки за последний час:
sudo grep "error" /var/log/nginx/error.log | tail -50

# Посчитать неудачные попытки SSH за день:
sudo grep "Failed password" /var/log/auth.log | wc -l
</code></pre>
<p dir="auto"><strong>Данные приложений:</strong></p>
<pre><code class="language-bash"># Где хранит данные PostgreSQL:
ls -la /var/lib/postgresql/

# Где хранит кэш приложений:
ls -la /var/cache/

# Где находятся PID-файлы запущенных сервисов:
ls -la /var/run/
# или
ls -la /run/
</code></pre>
<p dir="auto"><strong>Почему это нужно:</strong> Когда что-то ломается, вы идёте в <code>/var/log</code> и читаете, что произошло. Свободное место на диске часто занимают старые логи в <code>/var/log</code>.</p>
<h3>/usr — программы и библиотеки для пользователей</h3>
<p dir="auto"><strong>Предназначение:</strong> большинство установленных программ, библиотек и документации.</p>
<p dir="auto"><strong>Структура:</strong></p>
<pre><code class="language-bash">ls /usr

# Основные директории:
# bin/       — исполняемые файлы программ
# sbin/      — системные команды (требуют права администратора)
# lib/       — библиотеки, необходимые программам
# include/   — заголовочные файлы для разработчиков
# share/     — данные, не зависящие от архитектуры (документация, иконки)
# local/     — программы, установленные вручную
</code></pre>
<p dir="auto"><strong>Примеры:</strong></p>
<pre><code class="language-bash"># Где находится Python:
which python3
# /usr/bin/python3

# Где находится Node.js:
which node
# /usr/bin/node

# Где находятся библиотеки Node.js:
ls /usr/lib/node_modules/
# npm  @angular  @types  webpack  ...

# Где находятся библиотеки C:
ls /usr/lib/x86_64-linux-gnu/ | head
# libc.so.6  libpthread.so.0  libssl.so.1.1  ...

# Где находится документация:
ls /usr/share/doc/ | head
# adduser  apt  base-files  bash  curl  git  ...

# Программы, установленные локально (вручную):
ls /usr/local/bin/
</code></pre>
<p dir="auto"><strong>Почему это нужно:</strong> Когда вы устанавливаете программу через <code>apt</code> или <code>yum</code>, она идёт в <code>/usr</code>. Программы, которые вы компилируете сами, обычно идут в <code>/usr/local</code>.</p>
<h3>/lib и /lib64 — системные библиотеки</h3>
<p dir="auto"><strong>Предназначение:</strong> критически важные библиотеки, необходимые для работы системы и программ из <code>/bin</code> и <code>/sbin</code>.</p>
<pre><code class="language-bash"># Посмотреть содержимое:
ls /lib | head
# libc.so.6  libc-2.31.so  libm.so.6  libpthread.so.0  ...

# Это динамические библиотеки — они загружаются программами во время запуска
</code></pre>
<p dir="auto"><strong>Почему это нужно:</strong> Это стандартная C-библиотека и другие критические компоненты. Без них система не будет работать.</p>
<h3>/tmp — временные файлы</h3>
<p dir="auto"><strong>Предназначение:</strong> временные файлы, которые приложения и пользователи создают во время работы.</p>
<pre><code class="language-bash"># Создать временный файл:
echo "temporary data" &gt; /tmp/myfile.txt

# Посмотреть:
cat /tmp/myfile.txt
# temporary data

# Очистить /tmp (обычно происходит при перезагрузке):
sudo rm -rf /tmp/*
</code></pre>
<p dir="auto"><strong>Важно:</strong> файлы в <code>/tmp</code> часто удаляются при перезагрузке. Не сохраняйте там важные данные.</p>
<p dir="auto"><strong>Почему это нужно:</strong> Когда установщик программы или скрипт нужно что-то распаковать, он использует <code>/tmp</code>.</p>
<h3>/dev — устройства (диски, USB, консоли)</h3>
<p dir="auto"><strong>Предназначение:</strong> специальные файлы, которые представляют физические устройства.</p>
<pre><code class="language-bash"># Посмотреть содержимое:
ls /dev | head

# Основные устройства:
# sda, sdb       — жёсткие диски
# sda1, sda2     — разделы на дисках
# null           — чёрная дыра (всё, что туда пишут, удаляется)
# zero           — источник нулевых байт
# urandom        — источник случайных чисел
# tty            — текущая консоль пользователя
# pts/0, pts/1   — виртуальные терминалы (при SSH)
</code></pre>
<p dir="auto"><strong>Примеры использования:</strong></p>
<pre><code class="language-bash"># Посмотреть все диски:
lsblk
# NAME   MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
# sda      8:0    0   500G  0 disk
# ├─sda1   8:1    0   512M  0 part /boot
# ├─sda2   8:2    0   200G  0 part /
# └─sda3   8:3    0 299.5G  0 part /home

# Получить случайные числа:
head -c 100 /dev/urandom | od -An -tx1

# «Удалить» данные (отправить в никуда):
echo "this will disappear" &gt; /dev/null
cat /dev/null

# Посмотреть, кто вы (текущий TTY):
tty
# /dev/pts/0
</code></pre>
<p dir="auto"><strong>Почему это нужно:</strong> Если вам нужно отформатировать диск, вы работаете с <code>/dev/sda1</code>, а не с буквой диска, как в Windows.</p>
<h3>/boot — файлы загрузки ядра</h3>
<p dir="auto"><strong>Предназначение:</strong> ядро Linux и файлы, необходимые для загрузки системы.</p>
<pre><code class="language-bash">ls /boot

# Вы увидите:
# vmlinuz-5.15.0-56-generic    — ядро Linux
# initrd.img-5.15.0-56-generic — начальный RAM-диск
# grub/                        — конфиг загрузчика GRUB
</code></pre>
<p dir="auto"><strong>Почему это нужно:</strong> Если загрузчик сломана, система не загрузится. Это критический раздел.</p>
<h3>/proc и /sys — информация о системе (виртуальные файловые системы)</h3>
<p dir="auto"><strong>Предназначение:</strong> информация о запущенных процессах и параметрах ядра.</p>
<p dir="auto"><strong>Примеры:</strong></p>
<pre><code class="language-bash"># Информация о процессоре:
cat /proc/cpuinfo | head -20

# Информация о памяти:
cat /proc/meminfo
# MemTotal:        8000000 kB
# MemFree:         4000000 kB
# MemAvailable:    5500000 kB

# Информация о конкретном процессе (PID 1234):
ls /proc/1234/
# cmdline  environ  fd  maps  mem  status  ...

# Информация о загруженных модулях ядра:
cat /proc/modules

# Информация об обновления ядра:
cat /proc/sys/kernel/hostname
# mycomputer
</code></pre>
<p dir="auto"><strong>Почему это нужно:</strong> <code>/proc</code> — это способ получить информацию о системе прямо из ядра. Это не физические файлы, а интерфейс к ядру.</p>
<h3>/mnt и /media — точки монтирования</h3>
<p dir="auto"><strong>Предназначение:</strong> директории, где вы монтируете (подключаете) диски и USB-накопители.</p>
<pre><code class="language-bash"># Вставить USB-накопитель и монтировать его:
sudo mount /dev/sdb1 /mnt/usb

# Теперь содержимое USB доступно в /mnt/usb:
ls /mnt/usb
# file1.txt  file2.txt  ...

# Отмонтировать:
sudo umount /mnt/usb
</code></pre>
<p dir="auto"><strong>Почему это нужно:</strong> Linux не использует буквы (D:, E:) для дополнительных накопителей. Вместо этого диски монтируются в определённые директории.</p>
<h3>/opt — дополнительные программы</h3>
<p dir="auto"><strong>Предназначение:</strong> программы и приложения, установленные вручную или от третьих сторон (не через менеджер пакетов).</p>
<pre><code class="language-bash"># Примеры:
ls /opt

# Может быть:
# google/          — браузер Google Chrome
# mongodb/         — база данных MongoDB (если установлена вручную)
# my_app/          — какая-то дополнительная программа
</code></pre>
<p dir="auto"><strong>Почему это нужно:</strong> Это альтернатива <code>/usr/local</code> для больших приложений.</p>
<h3>/srv — данные сервисов</h3>
<p dir="auto"><strong>Предназначение:</strong> данные, которые обслуживают веб-приложения и сервисы.</p>
<pre><code class="language-bash"># Примеры:
ls /srv

# Может быть:
# www/            — содержимое веб-сайтов
# ftp/            — файлы FTP-сервера
# git/            — Git-репозитории
</code></pre>
<p dir="auto"><strong>Почему это нужно:</strong> Если вы хостите веб-сайт, его файлы могут находиться в <code>/srv/www</code>.</p>
<h2>Полная иерархия в одной таблице</h2>
<table class="table table-bordered table-striped">
<thead>
<tr>
<th>Директория</th>
<th>Предназначение</th>
<th>Примеры</th>
</tr>
</thead>
<tbody>
<tr>
<td><code>/</code></td>
<td>Корневая директория</td>
<td>—</td>
</tr>
<tr>
<td><code>/bin</code></td>
<td>Команды для всех</td>
<td>ls, cp, bash, cat</td>
</tr>
<tr>
<td><code>/sbin</code></td>
<td>Команды для администратора</td>
<td>shutdown, reboot, fdisk</td>
</tr>
<tr>
<td><code>/home</code></td>
<td>Домашние папки пользователей</td>
<td>/home/alice, /home/bob</td>
</tr>
<tr>
<td><code>/root</code></td>
<td>Домашняя папка root</td>
<td>конфиги root</td>
</tr>
<tr>
<td><code>/etc</code></td>
<td>Конфигурации систем и приложений</td>
<td>nginx, ssh, postgresql, fstab</td>
</tr>
<tr>
<td><code>/var</code></td>
<td>Переменные данные</td>
<td>логи, кэши, базы данных</td>
</tr>
<tr>
<td><code>/usr</code></td>
<td>Программы и библиотеки пользователей</td>
<td>python, node, npm, man-страницы</td>
</tr>
<tr>
<td><code>/lib</code></td>
<td>Системные библиотеки</td>
<td>libc, libpthread</td>
</tr>
<tr>
<td><code>/tmp</code></td>
<td>Временные файлы</td>
<td>временные данные приложений</td>
</tr>
<tr>
<td><code>/dev</code></td>
<td>Файлы устройств</td>
<td>sda (диски), tty (консоли)</td>
</tr>
<tr>
<td><code>/boot</code></td>
<td>Файлы загрузки</td>
<td>ядро Linux, GRUB</td>
</tr>
<tr>
<td><code>/proc</code></td>
<td>Информация о процессах</td>
<td>информация от ядра</td>
</tr>
<tr>
<td><code>/sys</code></td>
<td>Информация о системе и ядре</td>
<td>параметры ядра</td>
</tr>
<tr>
<td><code>/mnt</code></td>
<td>Точки монтирования</td>
<td>USB, внешние диски</td>
</tr>
<tr>
<td><code>/media</code></td>
<td>Автоматические монтирования</td>
<td>USB (автомонтирование)</td>
</tr>
<tr>
<td><code>/opt</code></td>
<td>Дополнительные программы</td>
<td>proprietary applications</td>
</tr>
<tr>
<td><code>/srv</code></td>
<td>Данные сервисов</td>
<td>содержимое веб-сайтов</td>
</tr>
</tbody>
</table>
<h2>Практические примеры</h2>
<h3>Пример 1: Установка программы и её поиск</h3>
<pre><code class="language-bash"># Установить Git:
sudo apt install git    # или sudo yum install git

# Где он находится:
which git
# /usr/bin/git

# Где находится конфиг Git:
cat ~/.gitconfig        # в домашней директории

# Где находятся скрытые настройки Git:
ls ~/.config/git/
</code></pre>
<h3>Пример 2: Разбираемся с ошибкой веб-сервера</h3>
<pre><code class="language-bash"># Nginx не запускается. Проверяем конфиг:
sudo nginx -t
# nginx: configuration syntax is ok

# Читаем логи ошибок:
sudo tail -f /var/log/nginx/error.log
# 2024/01/09 22:30:15 [emerg] 12345#0: bind() to 0.0.0.0:80 failed
# — Не может занять порт 80. Что-то уже его использует.

# Проверяем, что слушает на 80:
sudo netstat -tlnp | grep :80
# или
sudo ss -tlnp | grep :80
</code></pre>
<h3>Пример 3: Освобождаем место на диске</h3>
<pre><code class="language-bash"># Диск переполнен. Где больше всего файлов?
du -sh /*
# 10G     /home
# 5.2G    /var
# 3.1G    /usr
# 1.5G    /opt

# /var занимает много места — логи?
du -sh /var/*
# 4.5G    /var/log

# Какие логи самые большие:
du -sh /var/log/* | sort -hr | head
# 3.2G    /var/log/nginx
# 1.0G    /var/log/postgresql

# Очистить старые логи Nginx (оставляем последние 100 MB):
sudo sh -c 'tail -c 100M /var/log/nginx/access.log &gt; /var/log/nginx/access.log.tmp &amp;&amp; mv /var/log/nginx/access.log.tmp /var/log/nginx/access.log'

# Или использовать logrotate (встроенный инструмент):
sudo logrotate -f /etc/logrotate.d/nginx
</code></pre>
<h3>Пример 4: Работа с конфигурацией SSH</h3>
<pre><code class="language-bash"># Где находятся SSH-ключи:
ls ~/.ssh/
# authorized_keys   — какие ключи может использовать другие пользователи для входа
# id_rsa            — ваш приватный ключ
# id_rsa.pub        — ваш публичный ключ
# config            — конфиг SSH-клиента
# known_hosts       — ключи серверов, к которым вы подключались

# Конфиг SSH-сервера:
sudo cat /etc/ssh/sshd_config | grep -E "^[^#]" | head
# Port 22
# PermitRootLogin no
# PasswordAuthentication no
# PubkeyAuthentication yes

# Перезагрузить SSH-сервер после изменения конфига:
sudo systemctl restart sshd
</code></pre>
<h3>Пример 5: Проблема с монтированием диска</h3>
<pre><code class="language-bash"># Хотим автоматически монтировать диск при загрузке:
# Сначала узнаём UUID:
sudo blkid
# /dev/sda1: UUID="abcd1234-5678-90ef-ghij-klmnopqrstuv" TYPE="ext4"

# Редактируем /etc/fstab:
sudo nano /etc/fstab

# Добавляем строку:
# UUID=abcd1234-5678-90ef-ghij-klmnopqrstuv  /mnt/storage  ext4  defaults  0  2

# Проверяем:
mount -a        # смонтировать всё, что описано в fstab
df -h           # посмотреть смонтированные диски
</code></pre>
<h2>Безопасность: что нельзя трогать</h2>
<p dir="auto"><strong>Никогда не удаляйте и не изменяйте:</strong></p>
<ul>
<li><code>/bin</code>, <code>/sbin</code>, <code>/lib</code> — система не будет работать</li>
<li><code>/boot</code> — система не загрузится</li>
<li><code>/dev</code> — не будет доступа к диску и периферии</li>
<li><code>/etc/passwd</code>, <code>/etc/shadow</code> — потеряете доступ к системе</li>
<li><code>/sys</code>, <code>/proc</code> — это виртуальные файловые системы, они только для чтения</li>
</ul>
<p dir="auto"><strong>Будьте осторожны с:</strong></p>
<ul>
<li><code>/etc</code> — изменения в конфигах могут сломать сервисы</li>
<li><code>/var/lib</code> — данные баз данных</li>
<li><code>/home</code> — персональные данные пользователей</li>
</ul>
<p dir="auto"><strong>Используйте резервные копии перед изменением:</strong></p>
<pre><code class="language-bash"># Перед редактированием конфига:
sudo cp /etc/nginx/nginx.conf /etc/nginx/nginx.conf.backup

# Если что-то сломалось:
sudo mv /etc/nginx/nginx.conf.backup /etc/nginx/nginx.conf
</code></pre>
<h2>Полезные команды для исследования</h2>
<pre><code class="language-bash"># Показать полную иерархию директорий:
tree /home -L 2

# Показать дисковое пространство по директориям:
du -sh /home/* /var/* /usr/*

# Показать все смонтированные файловые системы:
df -h

# Найти все файлы больше 100 MB:
find / -type f -size +100M 2&gt;/dev/null

# Найти все файлы, изменённые за последний день:
find /home -type f -mtime -1

# Показать размер каждой директории:
du -sh /home /var /usr /opt

# Посчитать количество файлов в директории:
find /home -type f | wc -l
</code></pre>
<h2>Заключение</h2>
<p dir="auto">Структура файлов в Linux логична и согласована:</p>
<ol>
<li><strong>Системные команды</strong> — <code>/bin</code> и <code>/sbin</code></li>
<li><strong>Пользовательские данные</strong> — <code>/home</code></li>
<li><strong>Конфигурации</strong> — <code>/etc</code></li>
<li><strong>Логи и переменные данные</strong> — <code>/var</code></li>
<li><strong>Программы и библиотеки</strong> — <code>/usr</code></li>
<li><strong>Временные файлы</strong> — <code>/tmp</code></li>
<li><strong>Оборудование</strong> — <code>/dev</code></li>
</ol>
<p dir="auto">Постепенно, при работе с Linux, вы автоматически запомните, где искать нужные вам файлы. Главное — понимать логику расположения, а не заучивать наизусть.</p>
]]></description><link>https://forum.exlends.ru/topic/383/gajd-dlya-novichkov-struktura-fajlov-v-linux</link><generator>RSS for Node</generator><lastBuildDate>Wed, 20 May 2026 10:02:16 GMT</lastBuildDate><atom:link href="https://forum.exlends.ru/topic/383.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 09 Jan 2026 19:56:56 GMT</pubDate><ttl>60</ttl></channel></rss>