Ysa-k02-ru

From
Jump to navigation Jump to search

Капитул 2: Файловая система Unix и базовые команды

2.1 Иерархия файловой системы Unix

Файловая система Unix организована в виде **дерева** с корневым каталогом **/**. Все остальные каталоги являются его «ветвями».

Основные каталоги:

  • **/** — корень файловой системы, от него отходит всё дерево каталогов.
  • **/etc** — конфигурационные файлы системы и сервисов. Пример: `/etc/passwd`, `/etc/hostname`.
  • **/var** — файлы, которые изменяются во время работы системы (логи, почта, временные файлы). Пример: `/var/log/syslog`.
  • **/home** — домашние каталоги пользователей. Пример: `/home/juri`.

Дополнительно можно встретить:

  • **/bin** — основные исполняемые программы (ls, cat, mv).
  • **/usr** — вспомогательные программы и библиотеки.
  • **/tmp** — временные файлы.

Пример команды:

```bash

 ls /

```

Выводит содержимое корневого каталога.

---

2.2 Базовые команды работы с файлами и каталогами

mkdir

Создание нового каталога.

```bash

 mkdir мой_каталог

```

rm

Удаление файлов и каталогов.

```bash rm файл.txt # удалить файл rm -r каталог # удалить каталог со всем содержимым ```

mv

Перемещение или переименование файлов и каталогов.

```bash mv файл.txt /home/juri/ # переместить файл mv oldname.txt newname.txt # переименовать ```

Практика:

1. Создать каталог `praktika` в домашнем каталоге. 2. Создать в нём файл `example.txt` с помощью `touch`. 3. Переименовать файл в `example1.txt`. 4. Удалить файл и каталог.

---

2.3 Атрибуты файлов в Unix

Команда `ls -l` отображает подробную информацию о файлах и каталогах:

```bash ls -l ```

Объяснение вывода:

``` -rw-r--r-- 1 juri users 1234 Dec 28 10:00 example.txt ```

  • **-rw-r--r--** — права доступа.
  • **1** — количество ссылок на файл.
  • **juri** — владелец файла.
  • **users** — группа.
  • **1234** — размер файла в байтах.
  • **Dec 28 10:00** — дата последней модификации.
  • **example.txt** — имя файла.

---

2.4 Работа с содержимым файлов

      1. cat

Выводит содержимое файла:

```bash cat example.txt ```

      1. more / less

Позволяет пролистывать длинные файлы:

```bash more bigfile.txt less bigfile.txt ```

      1. head / tail

Выводят начало или конец файла:

```bash head -n 5 file.txt # первые 5 строк tail -n 5 file.txt # последние 5 строк ```

      1. file

Определяет тип файла:

```bash file example.txt ```

---

2.5 Практические задания

1. Перейти в домашний каталог (`cd ~`) и создать каталоги `project1` и `project2`. 2. В каждом каталоге создать текстовые файлы: `file1.txt`, `file2.txt`. 3. Просмотреть содержимое каталога с помощью `ls -l`. 4. Используя `cat`, `head`, `tail`, вывести содержимое файлов и проверить их тип с помощью `file`. 5. Переместить один файл из `project1` в `project2`. 6. Удалить один из каталогов со всеми файлами.

---

2.6 Дополнительные материалы для самостоятельного изучения

  • [The Linux Command Line](http://linuxcommand.org/tlcl.php) — книга по базовым командам Linux.
  • [Filesystem Hierarchy Standard](https://refspecs.linuxfoundation.org/FHS_3.0/fhs-3.0.pdf) — стандарт иерархии каталогов.
  • Практика с виртуальной машиной: ежедневно выполнять навигацию по файловой системе, создавать/удалять файлы, изучать их атрибуты.