Ysa-k02-ru-v2: Difference between revisions
| Line 370: | Line 370: | ||
** Версия стандарта (PDF): https://refspecs.linuxfoundation.org/FHS_3.0/fhs.pdf |
** Версия стандарта (PDF): https://refspecs.linuxfoundation.org/FHS_3.0/fhs.pdf |
||
* Wikipedia: Filesystem Hierarchy Standard (FHS) — обзор стандарта и каталогов: https://en.wikipedia.org/wiki/Filesystem_Hierarchy_Standard |
* Wikipedia: Filesystem Hierarchy Standard (FHS) — обзор стандарта и каталогов: https://en.wikipedia.org/wiki/Filesystem_Hierarchy_Standard |
||
=== Учебные статьи и пояснения === |
=== Учебные статьи и пояснения === |
||
Revision as of 12:04, 29 December 2025
```wiki
Глава 2: Файловая система Unix/Linux и работа с файлами
1. Иерархия файловой системы Unix
Файловая система имеет иерархическую структуру в виде дерева. Корень файловой системы — это каталог /:
/ -> / ├── etc -> /etc │ ├── groups -> /etc/groups │ └── passwd -> /etc/passwd │ ├── home -> /home │ ├── yuri -> /home/yuri │ │ ├── Documents -> /home/yuri/Documents │ │ ├── Downloads -> /home/yuri/Downloads │ │ └── Pictures -> /home/yuri/Pictures │ │ │ └── jens -> /home/jens │ ├── Downloads -> /home/jens/Downloads │ └── Pictures -> /home/jens/Pictures ... ... └── var └── ...
Основные каталоги
/
- Корневой каталог (root)
- От него начинаются все остальные каталоги
- Обычные пользователи не должны работать здесь напрямую
/etc
- Конфигурационные файлы системы
- Настройки сервисов, пользователей, сети
Примеры:
- /etc/passwd — информация о пользователях
- /etc/hosts — локальные DNS-записи
/var
- Изменяемые данные
- Логи, кэши, очереди
Примеры:
- /var/log — системные журналы
- /var/tmp — временные файлы
/home
- Домашние каталоги пользователей
- Каждый пользователь имеет свой каталог
Примеры:
- /home/yuri
- /home/jens
- /home/wolf
2. Текущий рабочий каталог (Current Working Directory, CWD)
Что такое текущий рабочий каталог (cwd)
Текущий рабочий каталог (current working directory, CWD) — это каталог, в котором пользователь «находится» в данный момент во время работы в терминале.
Все команды, которые используют относительные пути, работают относительно текущего рабочего каталога.
Проще говоря:
- Терминал всегда «стоит» в каком-то каталоге
- Этот каталог и есть текущий рабочий каталог
Как узнать текущий рабочий каталог
Для этого используется команда:
pwd
Пример вывода:
/home/yuri
Это означает, что все относительные пути будут отсчитываться от `/home/yuri`.
Как текущий каталог влияет на команды
Предположим, структура каталогов такая:
/home/yuri/ ├── docs/ │ └── file.txt └── images/
Если текущий каталог:
/home/yuri
То команда:
ls
покажет:
docs images
А команда:
cat docs/file.txt
успешно выведет файл.
Если же текущий каталог:
/home/yuri/images
То команда:
cat docs/file.txt
НЕ сработает, потому что путь `docs/file.txt` ищется относительно `/home/yuri/images`.
В этом случае нужно:
- либо использовать относительный путь с `..`
cat ../docs/file.txt
- либо абсолютный путь
cat /home/yuri/docs/file.txt
Изменение текущего рабочего каталога
Для смены текущего каталога используется команда cd (cd = chance working directory = изменить рабочий каталог)
Примеры:
cd /etc cd /home/user cd docs cd .. cd ~
После каждой команды `cd` текущий рабочий каталог меняется.
Специальные обозначения, связанные с CWD
- `.` — текущий каталог
- `..` — родительский каталог
Примеры:
ls . ls .. cd .. cd ./docs
Пример: Команда
ls .
показывает содержимое текущего каталога (обычно эквивалентно `ls`).
Типичные ошибки новичков
- Попытка открыть файл, не учитывая текущий каталог
- Путаница между абсолютными и относительными путями
- Непонимание, почему команда «не находит файл»
Очень важно **всегда понимать, где вы сейчас находитесь**.
Практические упражнения: текущий рабочий каталог
Упражнение 1: Определение CWD
- Войти в систему
- Выполнить команду:
pwd
- Записать путь текущего каталога
Упражнение 2: Влияние CWD
- Перейти в домашний каталог
- Создать каталог:
mkdir testcwd
- Перейти в него:
cd testcwd
- Проверить текущий каталог с помощью `pwd`
Упражнение 3: Относительные пути
- Находясь в `testcwd`, создать файл:
touch file1.txt
- Вернуться на уровень выше:
cd ..
- Попробовать вывести файл:
cat testcwd/file1.txt
Упражнение 4 (дополнительно)
- Перейти в `/etc`
- Выполнить `pwd`
- Вернуться в домашний каталог одной командой
cd ~
Абсолютный путь
- Начинается с /
- Не зависит от текущего каталога
Пример:
/home/user/Documents/file.txt
Относительный путь
- Зависит от текущего каталога
- Не начинается с /
Пример:
Documents/file.txt
Специальные обозначения
- . — текущий каталог
- .. — родительский каталог
- ~ — домашний каталог пользователя
Примеры:
cd .. cd . cd ~
3. Повторение и расширение: базовые команды файловой системы
mkdir — создание каталогов
mkdir test mkdir dir1 dir2 mkdir -p projects/linux/scripts
Параметр:
- -p — создать всю цепочку каталогов
rm — удаление файлов и каталогов
rm file.txt rm -r directory rm -rf directory
Внимание: Команда rm **безвозвратно удаляет данные**.
mv — перемещение и переименование
mv file1 file2 mv file.txt /tmp/ mv dir1 dir2
4. Атрибуты файлов (ls -l)
Команда:
ls -l
Пример вывода:
-rw-r--r-- 1 yuri user 1234 Apr 10 12:00 file.txt
Расшифровка:
- -rw-r--r-- — права доступа
- 1 — количество ссылок
- yuri — владелец
- user — группа
- 1234 — размер в байтах
- Apr 10 12:00 — дата изменения
- file.txt — имя файла
5. Важные команды для работы с файлами
touch — создание пустого файла
touch file.txt
cat — вывод содержимого файла
cat file.txt
more — постраничный просмотр
more file.txt
head — начало файла
head file.txt head -n 5 file.txt
tail — конец файла
tail file.txt tail -n 10 file.txt tail -f /var/log/syslog
6. Практика: навигация и работа с файлами
Практическое задание 1: Навигация
- Перейти в домашний каталог
- Вывести текущий каталог
- Перейти в /etc
- Вернуться в домашний каталог
Практическое задание 2: Каталоги
- Создать каталог practice
- Внутри него создать каталог test1/test2
- Перейти в test2
Практическое задание 3: Файлы
- Создать файл file1.txt
- Создать файл file2.txt
- Вывести список файлов с атрибутами
Практическое задание 4: Просмотр
- Добавить текст в файл (используя echo >>)
- Просмотреть файл через cat
- Просмотреть первые 5 строк через head
- Просмотреть последние строки через tail
Практическое задание 5 (дополнительно)
- Переместить файл в другой каталог
- Переименовать файл
- Удалить файл и каталог
7. Материалы для самостоятельного изучения
Официальные и стандартизированные документы
- Filesystem Hierarchy Standard (FHS) — официальный стандарт структуры каталогов
- Полный текст стандарта (HTML): https://refspecs.linuxfoundation.org/FHS_3.0/fhs/index.html
- Версия стандарта (PDF): https://refspecs.linuxfoundation.org/FHS_3.0/fhs.pdf
- Wikipedia: Filesystem Hierarchy Standard (FHS) — обзор стандарта и каталогов: https://en.wikipedia.org/wiki/Filesystem_Hierarchy_Standard
Учебные статьи и пояснения
- **Linux Handbook — Пояснение структуры каталогов для начинающих:**
https://linuxhandbook.com/linux-directory-structure/ :contentReference[oaicite:3]{index=3}
- **Linux Journey — Lesson: Filesystem Hierarchy**
https://linuxjourney.com/lesson/filesystem-hierarchy :contentReference[oaicite:4]{index=4} *Простое и понятное объяснение структуры каталогов с упражнениями.*
- **Baeldung — Linux Filesystem Structure (подробное объяснение):**
https://www.baeldung.com/linux/fhs-filesystem-hierarchy-standard-structure :contentReference[oaicite:5]{index=5}
Дополнительные справочные материалы
- **Understanding the Linux File System Hierarchy (ComputingForGeeks):**
https://computingforgeeks.com/understanding-the-linux-file-system-hierarchy/ :contentReference[oaicite:6]{index=6} *Объяснение назначений основных директорий.*
- **Учебный ресурс Learning Linux — объяснение стандартов FHS:**
https://sites.google.com/view/learning-linux/manage-directories-and-files/understand-the-file-system-hierarchy-standard-fhs :contentReference[oaicite:7]{index=7}
Онлайн‑курсы и практические задания
- **Linux Journey (весь курс работает бесплатно):**
https://linuxjourney.com/ :contentReference[oaicite:8]{index=8} *Содержит разделы по навигации и работе с файловой системой.*
Как использовать ссылки для обучения
- Начните с официального стандарта FHS, чтобы понять **формальную структуру каталогов** (`/`, `/etc`, `/var`, `/usr` и др.).
- Затем прочитайте статьи на **Linux Handbook** и **Baeldung** — они объясняют структуру на простых примерах.
- Используйте **Linux Journey** для интерактивной практики и закрепления навыков.
- Сравнивайте объяснение с тем, что вы видите на вашей виртуальной Linux‑машине:
ls -l / ls -l /etc ls -l /var
Итог
Эти ресурсы:
- дают **понятное объяснение структуры Unix/Linux‑файловой системы**
- предлагают **примеры и практические задания**
- подходят как **для начинающих**, так и для углублённого изучения
Используйте их для самостоятельной практики и закрепления материала главы 2.
- contentReference[oaicite:9]{index=9}
```
Онлайн-документация и статьи
- **Linux Filesystem Hierarchy (подробное руководство по иерархии каталогов)** — объясняет стандарт и структуру каталогов Linux/Unix. [Linux Filesystem Hierarchy – Linuxtopia (англ.)](https://www.linuxtopia.org/online_books/linux_beginner_books/linux_filesystem/index.html?utm_source=chatgpt.com)
- **Linux Directory Structure Explained for Beginners** — краткое и наглядное объяснение структуры каталогов для новичков. :contentReference[oaicite:1]{index=1}
- **Статья на Хабре: Структура файловой иерархии Linux (рус.)** — обзор стандартов и назначений каталогов. :contentReference[oaicite:2]{index=2}
- **Урок «Иерархия файловой системы» на Linux Journey** — содержит объяснение каталогов и практические лабораторные задания. :contentReference[oaicite:3]{index=3}
- **Навигация по файловой системе (Яндекс.Учебник)** — пошаговое руководство по абсолютным и относительным путям, каталогам и ссылкам. :contentReference[oaicite:4]{index=4}
- **Каталоги Linux / Father Beginners Guide (YoungLinux)** — объясняет назначение всех основных системных каталогов. :contentReference[oaicite:5]{index=5}
Учебные курсы и видео (англ.)
- **O’Reilly: Becoming a Linux Power User (видео-курс)** — включает подробные уроки про файловую систему. :contentReference[oaicite:6]{index=6}
- **Linux Essentials: Hands-On Course (видео)** — практический курс по основам Linux, включая структуру файловой системы. :contentReference[oaicite:7]{index=7}
- **Learn Linux in a Month of Lunches (книга/онлайн-глава про файловую систему)** — подробное руководство по каталогам, полезно при чтении по теме FHS. :contentReference[oaicite:8]{index=8}
Книги и печатные ресурсы
- **«UNIX и Linux. Руководство системного администратора»** — классическое руководство по системному администрированию (обсуждается файловая система, права, команды и др.).
*(заметка: ссылки на скачивание встречаются на форумах, но лучше использовать официальные издания и покупать/брать в библиотеке)* :contentReference[oaicite:9]{index=9}
- **«The Linux Command Line» (автор William Shotts)** — отличная книга для начинающих, охватывает работу с каталогами, файлами и командами оболочки.
- **«Linux Bible» и «Linux Fundamentals»** — большие справочники, включающие разделы по файловой системе (структура, команды, практика).
Дополнительные русскоязычные учебники и материалы
- **Учебник по системе Linux (разделы про команды и файловую систему)** — структурированный материал для новичков. :contentReference[oaicite:10]{index=10}
- **Лекция «Работа с файловой системой» (НOU ИНТУИТ)** — учебный материал про навигацию и пути. :contentReference[oaicite:11]{index=11}
- **Учебные страницы о работе с файлами и каталогами (volodya-leveryev.github.io)** — практические примеры команд `cd`, `ls`, структуры дерева каталогов. :contentReference[oaicite:12]{index=12}
Советы по работе с материалами
- Читайте как минимум **2–3 источника** про иерархию файловой системы — это поможет лучше понять стандарты и различия между дистрибутивами.
- Практикуйтесь с **командами cd, ls, pwd, tree** (если установлена) после каждого раздела теории — практика ускоряет усвоение.
- Попробуйте найти **анализ структуры каталогов в установленной VM**:
ls /usr ls /var/log ls /etc
- Используйте **вопросы и задания** из онлайн-уроков (например, на Linux Journey) для закрепления материала. :contentReference[oaicite:13]{index=13}
- Чтобы углубить понимание, можно читать главы про **не только команды, но и архитектуру Unix/Linux** (книги по системному администрированию и устройству ОС).
Итог
Предложенные ссылки и книги дадут вам:
- Понимание стандартов и структуры каталогов Unix/Linux (FHS)
- Практические знания про навигацию и команды
- Глубокое понимание назначения каждого важного каталога
- Возможность самостоятельной подготовки к практическим заданиям и экзаменам
Эти ресурсы пригодятся для **самостоятельного углубленного изучения** темы файловой системы в Linux/Unix.
- contentReference[oaicite:14]{index=14}
```
Итог главы
После изучения главы 2 студент:
- Понимает структуру файловой системы Unix/Linux
- Различает абсолютные и относительные пути
- Умеет создавать, перемещать и удалять файлы и каталоги
- Понимает атрибуты файлов
- Умеет просматривать содержимое файлов
- Готов к работе с пользователями и файлами в реальной системе
```