Ysa-k02-ru-v2: Difference between revisions

From
Jump to navigation Jump to search
Content deleted Content added
Jpr (talk | contribs)
Jpr (talk | contribs)
 
(23 intermediate revisions by the same user not shown)
Line 90: Line 90:
Предположим, структура каталогов такая:
Предположим, структура каталогов такая:
<pre>
<pre>
/home/user/
/home/yuri/
├── docs/
├── docs/
│ └── file.txt
│ └── file.txt
Line 98: Line 98:
Если текущий каталог:
Если текущий каталог:
<pre>
<pre>
/home/user
/home/yuri
</pre>
</pre>


Line 118: Line 118:
Если же текущий каталог:
Если же текущий каталог:
<pre>
<pre>
/home/user/images
/home/yuri/images
</pre>
</pre>


Line 125: Line 125:
cat docs/file.txt
cat docs/file.txt
</pre>
</pre>
**НЕ сработает**, потому что путь `docs/file.txt` ищется относительно `/home/user/images`.
'''НЕ сработает''', потому что путь `docs/file.txt` ищется относительно `/home/yuri/images`.


В этом случае нужно:
В этом случае нужно:
Line 134: Line 134:
* либо абсолютный путь
* либо абсолютный путь
<pre>
<pre>
cat /home/user/docs/file.txt
cat /home/yuri/docs/file.txt
</pre>
</pre>


=== Изменение текущего рабочего каталога ===
=== Изменение текущего рабочего каталога ===


Для смены текущего каталога используется команда:
Для смены текущего каталога используется команда '''cd''' (cd = '''c'''hance working '''d'''irectory = изменить рабочий каталог)

<pre>
cd
</pre>


Примеры:
Примеры:
Line 154: Line 150:
</pre>
</pre>


После каждой команды `cd` **текущий рабочий каталог меняется**.
После каждой команды `cd` ''текущий рабочий каталог'' меняется.


=== Специальные обозначения, связанные с CWD ===
=== Специальные обозначения, связанные с CWD ===
Line 169: Line 165:
</pre>
</pre>


Команда:
Пример: Команда
<pre>
<pre>
ls .
ls .
Line 226: Line 222:
cd ~
cd ~
</pre>
</pre>

=== Важный вывод ===
Перед выполнением любой команды системный администратор должен понимать:
* какой сейчас текущий рабочий каталог
* как команда будет интерпретировать относительные пути

Это базовый навык для безопасной и уверенной работы в Unix/Linux.
```



=== Абсолютный путь ===
=== Абсолютный путь ===
Line 304: 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 310: 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 382: 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 404: 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
  • Различает абсолютные и относительные пути
  • Умеет создавать, перемещать и удалять файлы и каталоги
  • Понимает атрибуты файлов
  • Умеет просматривать содержимое файлов
  • Готов к работе с пользователями и файлами в реальной системе