Ysa-k02-ru-v2: Difference between revisions
| (33 intermediate revisions by the same user not shown) | |||
| Line 30: | Line 30: | ||
=== Основные каталоги === |
=== Основные каталоги === |
||
==== / |
==== / ==== |
||
* Корневой каталог |
* Корневой каталог (root) |
||
* От него начинаются все остальные каталоги |
* От него начинаются все остальные каталоги |
||
* Обычные пользователи не должны работать здесь напрямую |
* Обычные пользователи не должны работать здесь напрямую |
||
| Line 55: | Line 55: | ||
* Каждый пользователь имеет свой каталог |
* Каждый пользователь имеет свой каталог |
||
Примеры: |
|||
Пример: |
|||
* /home/yuri |
|||
* /home/jens |
|||
* /home/wolf |
|||
== 2. Текущий рабочий каталог (Current Working Directory, CWD) == |
|||
=== Что такое текущий рабочий каталог (cwd) === |
|||
''Текущий рабочий каталог'' (current working directory, CWD) — это каталог, в котором пользователь «находится» в данный момент во время работы в терминале. |
|||
Все команды, которые используют ''относительные пути'', работают ''относительно текущего рабочего каталога''. |
|||
Проще говоря: |
|||
* Терминал всегда «стоит» в каком-то каталоге |
|||
* Этот каталог и есть текущий рабочий каталог |
|||
=== Как узнать текущий рабочий каталог === |
|||
Для этого используется команда: |
|||
<pre> |
<pre> |
||
pwd |
|||
/home/user |
|||
</pre> |
</pre> |
||
Пример вывода: |
|||
== 2. Абсолютные и относительные пути == |
|||
<pre> |
|||
/home/yuri |
|||
</pre> |
|||
Это означает, что все относительные пути будут отсчитываться от `/home/yuri`. |
|||
=== Как текущий каталог влияет на команды === |
|||
Предположим, структура каталогов такая: |
|||
<pre> |
|||
/home/yuri/ |
|||
├── docs/ |
|||
│ └── file.txt |
|||
└── images/ |
|||
</pre> |
|||
Если текущий каталог: |
|||
<pre> |
|||
/home/yuri |
|||
</pre> |
|||
То команда: |
|||
<pre> |
|||
ls |
|||
</pre> |
|||
покажет: |
|||
<pre> |
|||
docs images |
|||
</pre> |
|||
А команда: |
|||
<pre> |
|||
cat docs/file.txt |
|||
</pre> |
|||
успешно выведет файл. |
|||
Если же текущий каталог: |
|||
<pre> |
|||
/home/yuri/images |
|||
</pre> |
|||
То команда: |
|||
<pre> |
|||
cat docs/file.txt |
|||
</pre> |
|||
'''НЕ сработает''', потому что путь `docs/file.txt` ищется относительно `/home/yuri/images`. |
|||
В этом случае нужно: |
|||
* либо использовать относительный путь с `..` |
|||
<pre> |
|||
cat ../docs/file.txt |
|||
</pre> |
|||
* либо абсолютный путь |
|||
<pre> |
|||
cat /home/yuri/docs/file.txt |
|||
</pre> |
|||
=== Изменение текущего рабочего каталога === |
|||
Для смены текущего каталога используется команда '''cd''' (cd = '''c'''hance working '''d'''irectory = изменить рабочий каталог) |
|||
Примеры: |
|||
<pre> |
|||
cd /etc |
|||
cd /home/user |
|||
cd docs |
|||
cd .. |
|||
cd ~ |
|||
</pre> |
|||
После каждой команды `cd` ''текущий рабочий каталог'' меняется. |
|||
=== Специальные обозначения, связанные с CWD === |
|||
* `.` — текущий каталог |
|||
* `..` — родительский каталог |
|||
Примеры: |
|||
<pre> |
|||
ls . |
|||
ls .. |
|||
cd .. |
|||
cd ./docs |
|||
</pre> |
|||
Пример: Команда |
|||
<pre> |
|||
ls . |
|||
</pre> |
|||
показывает содержимое текущего каталога (обычно эквивалентно `ls`). |
|||
=== Типичные ошибки новичков === |
|||
* Попытка открыть файл, не учитывая текущий каталог |
|||
* Путаница между абсолютными и относительными путями |
|||
* Непонимание, почему команда «не находит файл» |
|||
Очень важно **всегда понимать, где вы сейчас находитесь**. |
|||
=== Практические упражнения: текущий рабочий каталог === |
|||
==== Упражнение 1: Определение CWD ==== |
|||
# Войти в систему |
|||
# Выполнить команду: |
|||
<pre> |
|||
pwd |
|||
</pre> |
|||
# Записать путь текущего каталога |
|||
==== Упражнение 2: Влияние CWD ==== |
|||
# Перейти в домашний каталог |
|||
# Создать каталог: |
|||
<pre> |
|||
mkdir testcwd |
|||
</pre> |
|||
# Перейти в него: |
|||
<pre> |
|||
cd testcwd |
|||
</pre> |
|||
# Проверить текущий каталог с помощью `pwd` |
|||
==== Упражнение 3: Относительные пути ==== |
|||
# Находясь в `testcwd`, создать файл: |
|||
<pre> |
|||
touch file1.txt |
|||
</pre> |
|||
# Вернуться на уровень выше: |
|||
<pre> |
|||
cd .. |
|||
</pre> |
|||
# Попробовать вывести файл: |
|||
<pre> |
|||
cat testcwd/file1.txt |
|||
</pre> |
|||
==== Упражнение 4 (дополнительно) ==== |
|||
# Перейти в `/etc` |
|||
# Выполнить `pwd` |
|||
# Вернуться в домашний каталог одной командой |
|||
<pre> |
|||
cd ~ |
|||
</pre> |
|||
=== Абсолютный путь === |
=== Абсолютный путь === |
||
| Line 130: | Line 291: | ||
Пример вывода: |
Пример вывода: |
||
<pre> |
<pre> |
||
-rw-r--r-- 1 |
-rw-r--r-- 1 yuri user 1234 Apr 10 12:00 file.txt |
||
</pre> |
</pre> |
||
| Line 136: | Line 297: | ||
* -rw-r--r-- — права доступа |
* -rw-r--r-- — права доступа |
||
* 1 — количество ссылок |
* 1 — количество ссылок |
||
* |
* yuri — владелец |
||
* user — группа |
* user — группа |
||
* 1234 — размер в байтах |
* 1234 — размер в байтах |
||
* Apr 10 12:00 — дата изменения |
* Apr 10 12:00 — дата изменения |
||
* file.txt — имя файла |
* file.txt — имя файла |
||
Типы файлов: |
|||
* - — обычный файл |
|||
* d — каталог |
|||
* l — символическая ссылка |
|||
== 5. Важные команды для работы с файлами == |
== 5. Важные команды для работы с файлами == |
||
| Line 208: | Line 364: | ||
== 7. Материалы для самостоятельного изучения == |
== 7. Материалы для самостоятельного изучения == |
||
=== Официальные и стандартизированные документы === |
|||
* man: |
|||
* man ls |
|||
* Filesystem Hierarchy Standard (FHS) — официальный стандарт структуры каталогов |
|||
* man mkdir |
|||
** Полный текст стандарта (HTML): https://refspecs.linuxfoundation.org/FHS_3.0/fhs/index.html |
|||
* man rm |
|||
** Версия стандарта (PDF): https://refspecs.linuxfoundation.org/FHS_3.0/fhs.pdf |
|||
* man mv |
|||
* man cat |
|||
* Wikipedia: Filesystem Hierarchy Standard (FHS) — обзор стандарта и каталогов: https://en.wikipedia.org/wiki/Filesystem_Hierarchy_Standard |
|||
* Документация: |
|||
* Linux Filesystem Hierarchy Standard (FHS) |
|||
=== Учебные статьи и пояснения === |
|||
* Практика: |
|||
* Создавать тестовые каталоги |
|||
* Linux Handbook — Пояснение структуры каталогов для начинающих: https://linuxhandbook.com/linux-directory-structure/ |
|||
* Работать только через терминал |
|||
* Повторять команды ежедневно |
|||
* Linux Journey — Lesson: Filesystem Hierarchy (Простое и понятное объяснение структуры каталогов с упражнениями.): https://linuxjourney.com/lesson/filesystem-hierarchy |
|||
* Baeldung — Linux Filesystem Structure (подробное объяснение): https://www.baeldung.com/linux/fhs-filesystem-hierarchy-standard-structure |
|||
=== Дополнительные справочные материалы === |
|||
* Understanding the Linux File System Hierarchy (Объяснение назначений основных директорий): https://computingforgeeks.com/understanding-the-linux-file-system-hierarchy/ |
|||
* Учебный ресурс Learning Linux — объяснение стандартов FHS: https://sites.google.com/view/learning-linux/manage-directories-and-files/understand-the-file-system-hierarchy-standard-fhs |
|||
=== Онлайн‑курсы и практические задания === |
|||
* Linux Journey - Содержит разделы по навигации и работе с файловой системой (весь курс работает бесплатно): https://linuxjourney.com/ |
|||
== Итог главы == |
== Итог главы == |
||
| Line 230: | Line 399: | ||
* Умеет просматривать содержимое файлов |
* Умеет просматривать содержимое файлов |
||
* Готов к работе с пользователями и файлами в реальной системе |
* Готов к работе с пользователями и файлами в реальной системе |
||
``` |
|||
Latest revision as of 12:10, 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/
- Linux Journey — Lesson: Filesystem Hierarchy (Простое и понятное объяснение структуры каталогов с упражнениями.): https://linuxjourney.com/lesson/filesystem-hierarchy
- Baeldung — Linux Filesystem Structure (подробное объяснение): https://www.baeldung.com/linux/fhs-filesystem-hierarchy-standard-structure
Дополнительные справочные материалы
- Understanding the Linux File System Hierarchy (Объяснение назначений основных директорий): https://computingforgeeks.com/understanding-the-linux-file-system-hierarchy/
- Учебный ресурс Learning Linux — объяснение стандартов FHS: https://sites.google.com/view/learning-linux/manage-directories-and-files/understand-the-file-system-hierarchy-standard-fhs
Онлайн‑курсы и практические задания
- Linux Journey - Содержит разделы по навигации и работе с файловой системой (весь курс работает бесплатно): https://linuxjourney.com/
Итог главы
После изучения главы 2 студент:
- Понимает структуру файловой системы Unix/Linux
- Различает абсолютные и относительные пути
- Умеет создавать, перемещать и удалять файлы и каталоги
- Понимает атрибуты файлов
- Умеет просматривать содержимое файлов
- Готов к работе с пользователями и файлами в реальной системе