Ysa-k02-ru-v2: Difference between revisions

From
Jump to navigation Jump to search
Content deleted Content added
Jpr (talk | contribs)
Jpr (talk | contribs)
 
(31 intermediate revisions by the same user not shown)
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 user user 1234 Apr 10 12:00 file.txt
-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 — количество ссылок
* user — владелец
* 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

  1. Войти в систему
  2. Выполнить команду:
pwd
  1. Записать путь текущего каталога

Упражнение 2: Влияние CWD

  1. Перейти в домашний каталог
  2. Создать каталог:
mkdir testcwd
  1. Перейти в него:
cd testcwd
  1. Проверить текущий каталог с помощью `pwd`

Упражнение 3: Относительные пути

  1. Находясь в `testcwd`, создать файл:
touch file1.txt
  1. Вернуться на уровень выше:
cd ..
  1. Попробовать вывести файл:
cat testcwd/file1.txt

Упражнение 4 (дополнительно)

  1. Перейти в `/etc`
  2. Выполнить `pwd`
  3. Вернуться в домашний каталог одной командой
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: Навигация

  1. Перейти в домашний каталог
  2. Вывести текущий каталог
  3. Перейти в /etc
  4. Вернуться в домашний каталог

Практическое задание 2: Каталоги

  1. Создать каталог practice
  2. Внутри него создать каталог test1/test2
  3. Перейти в test2

Практическое задание 3: Файлы

  1. Создать файл file1.txt
  2. Создать файл file2.txt
  3. Вывести список файлов с атрибутами

Практическое задание 4: Просмотр

  1. Добавить текст в файл (используя echo >>)
  2. Просмотреть файл через cat
  3. Просмотреть первые 5 строк через head
  4. Просмотреть последние строки через tail

Практическое задание 5 (дополнительно)

  1. Переместить файл в другой каталог
  2. Переименовать файл
  3. Удалить файл и каталог

7. Материалы для самостоятельного изучения

Официальные и стандартизированные документы

Учебные статьи и пояснения

Дополнительные справочные материалы

Онлайн‑курсы и практические задания

  • Linux Journey - Содержит разделы по навигации и работе с файловой системой (весь курс работает бесплатно): https://linuxjourney.com/

Итог главы

После изучения главы 2 студент:

  • Понимает структуру файловой системы Unix/Linux
  • Различает абсолютные и относительные пути
  • Умеет создавать, перемещать и удалять файлы и каталоги
  • Понимает атрибуты файлов
  • Умеет просматривать содержимое файлов
  • Готов к работе с пользователями и файлами в реальной системе