logo
Задания на 2 модуль

Лабораторна робота № 2.6

Структура файлової системи й основні файлові операції в UNIX-системах

  1. Мета заняття

У процесі виконання лабораторної роботи студенти повинні закріпити знання о структурі файлової системи й набути навичок у використанні основних файлових операцій в UNIX-системах.

  1. Умови виконання роботи

  1. Студент повинен знати структуру файлової системи, основні файлові операції; повинен знати теоретичну частину, необхідну для роботи.

  2. Студент повинен бути ознайомлений з технікою безпеки при роботі на комп'ютері.

  3. Необхідне програмне й матеріально-технічне забезпечення:

  1. Стислі теоретичні відомості

В Unix-системах файлова система являє собою пристрій (наприклад, жорсткий диск, компакт-диск і подібні пристрої, які здійснюють довільний доступ), підготовлене (відформатоване) для зберігання файлів. Типи файлових систем, які підтримуються конкретною операційною системою, можна довідатися подивившись зміст файлу /proc/filesystems.

Операційна система дозволяє користувачеві звертатися до різних типів файлових систем, використовуючи єдиний інтерфейс користувача. Це виражається в тому, що звертання до будь-яких типів файлових систем виглядають для користувача однаково. Точний формат і способи зберігання файлів, характерні для різних файлових систем, при цьому не мають значення для користувача. Операційна система забезпечує загальний інтерфейс для розпізнаваних нею типів файлових систем використанням так званої віртуальної файлової системи (VFS), яка є по своїй суті високорівневою абстракцією файлової системи.

Використання віртуальної файлової системи VFS дозволяє організувати в Unix-системах розмежування доступу до файлів, у тому числі й до файлів, записаних у таких файлових системах, які самостійно не надають можливості організації розмежування доступу (наприклад, FAT).

Кожний диск може містити кілька розділів. Розділ – це ділянка диска, на якій організована (або може бути організована) відособлена від іншої частини диска файлова система. Тобто кожний розділ має власний суперблок, індексні вузли, масив блоків для розміщення даних користувача.

Для Unix-систем характерна деревоподібна, ієрархічна структура каталогів. Кожний файл повністю визначається своїм іменем і шляхом до нього від заданого каталогу. Каталог, у якому записано ім'я файлу, називається батьківським каталогом для цього файлу. Каталог, який записаний у деякому іншому каталозі, називається дочірнім каталогом (або підкаталогом) для останнього. Поняття імені файлу може розумітися подвійно:

1) тільки ім'я файлу й

2) ім'я файлу із зазначенням шляху до нього.

У другому випадку звичайно говорять про повне ім'я файлу.

Шлях до файлу може задаватися декількома способами:

Поточним (робочим) каталогом називається каталог, у якому знаходитися користувач при переміщенні по файловій системі або каталог, з якого програма завантажується для виконання.

Концепція абсолютних і відносних шляхів до файлів введена тому, що ядро асоціює процеси з поточним і кореневим каталогами.

Позначення: кореневий каталог – "/", батьківський каталог – "..", поточний каталог – "." (якщо поточний каталог не включений до складу перемінної оточення PATH, то запускати програму, що перебуває в ньому необхідно із вказівкою імені поточного каталогу: "./ім'я_програми". У цьому є відмінність від інших операційних систем, де подібна вказівка не потрібна). Ще один умовний знак "~" може використовуватися для позначення домашнього каталогу кожного користувача.

Поточний каталог можна довідатися, використовуючи команду "pwd" оболонки Unix- системи.

Для переміщення по дереву каталогів у програмах-оболонках Unix-систем використовується команда "cd" (від англ. – "change directory" – "зміни каталог"). Синтаксис команди: cd ім'я_каталогу_призначення, де ім'я_каталогу_призначення – це абсолютний або відносний шлях до каталогу, який необхідно зробити поточним.

Для перегляду вмісту якого-небудь каталогу в програмах-оболонках Unix-систем використовується команда "ls". Синтаксис команди:

ls [-ключі] [ім'я_каталогу]

де ім'я_каталогу – це абсолютний або відносний шлях до каталогу, вміст якого необхідно переглянути. Для перегляду вмісту поточного каталогу цей параметр можна не вказувати.

[-ключі] – модифікатори команди, які задають бажані особливості виведених нею результатів. Наприклад:

-a – дозволяє переглянути так звані сховані файли й каталоги;

-l – дозволяє переглянути атрибути файлів і каталогів.

При виводі результатів роботи команд (наприклад, ls) на екран може виникнути ситуація, коли розмір виведених даних перевищить розмір екрана і їх частина виявиться недоступною для перегляду. Уникнути цього неприємного явища можна, організувавши конвеєр з командою "more". Наприклад: ls –a -l | more. При цьому, заповнивши екран результатами роботи команди "ls", команда "more" буде очікувати команди від користувача (натискання клавіші) на поновлення приймання результатів роботи команди "ls".

Якщо в директорії є жорстке посилання на файл, що перебуває поза цією директорією, то в результаті роботи команди ls буде відображене ім'я файлу, на який робиться посилання, а не ім'я файлу-посилання. Жорсткі посилання працюють тільки усередині розділу файлової системи. Фактично каталог містить ім'я файлу-посилання й покажчик на індексний вузол файлу, на який робиться посилання. Останній не може бути вилучений, поки є жорсткі посилання на нього з небатьківського каталогу.

Результат виконання команди "ls" із ключем "-al" (від англ. long) має наступний формат:

Тип файлу

Права доступу

Кількість жорстких посилань

Ім'я власника

Ім'я групи власника

Розмір в байтах

Дата і час останнього змінення

Ім'я файлу

де: тип файлу представлено одним символом (чотирма бітами). Деякі з його значень: "-" – звичайний файл, "d" – каталог, "l" – посилання.

Права доступу представлено трьома групами по три символи (на кожний символ по одному біту). Перша група відображає права власника файлу (творця), друга - права групи користувачів, до яких відноситься власник, третя - права інших користувачів. Трьома бітами в кожній групі задаються право на читання "r", право на запис "w", право на виконання "x" файлу. Для каталогу право на виконання трактується як право на доступ у директорію (можливість зробити її поточної).

Три біти зарезервовано під файлові режими. У випадку їх установки вони відображаються в полі прав доступу, появою символів "t", "s".

Кількість жорстких посилань на файл. Файл не буде вилучений, якщо число цих посилань більше одиниці (тобто є жорсткі посилання з небатьківського каталогу).

Для створення каталогів у програмах-оболонках Unix-систем використовується команда "mkdir" (від англ. – "make directory" – "зроби каталог"). Синтаксис команди:

mkdir [-ключі] [ім'я_каталогу]

де ім'я_каталогу - це абсолютний або відносний шлях до каталогу з його іменем, заданим користувачем самостійно. Для створення каталогу в поточному каталозі шлях можна не вказувати. Ім'я нового каталогу не повинне збігатися з іменем уже існуючого в тому ж батьківському каталозі й відповідати правилам створення імен файлової системи.

Для видалення каталогів у програмах- оболонках Unix- Систем використовується команда "rmdir" (від англ. – "remove directory" – "вилучи каталог"). Синтаксис команди:

rmdir [-ключі] [ім'я_каталогу]

де ім'я_каталогу – це абсолютний або відносний шлях до каталогу, який необхідно вилучити. Для видалення каталогу в поточному каталозі шлях можна не вказувати.

Звичайний файл можна створити декількома шляхами (далі перераховані не всі можливі способи створення файлів):

1) використанням команди "touch". Наприклад, команда "touch myfile.txt" створить у поточному каталозі порожній файл із іменем myfile.txt;

2) перенаправленням виводу результатів виконання іншої команди в заданий файл. Наприклад, команда "pwd > myfile.txt" створить у поточному каталозі файл із іменем myfile.txt, у якому збережеться результат виконання команди pwd. Якщо файл із таким іменем уже є в каталозі, то він буде перезаписаний. Для того, щоб додати запис у файл, зберігши раніше записане у файл, слід використовувати ">>";

3) копіюванням існуючого файлу в новий файл із заданим іменем. Копіювання файлів здійснюється за допомогою команди "cp";

4) використанням програм-редакторів файлів (наприклад, "ed").

Слід дотримуватися обережності при створенні файлів, тому що створений новий файл може бути записаний поверх уже існуючого з таким же іменем, таким чином, зміст останнього може бути загублений.

Для того, щоб переглянути вміст звичайного файлу можна скористатися:

1) командою "cat";

2) командою "more" або "less";

3) програмою-редактором файлів.

Формат команди може бути однаковим для всіх способів:

ім'я_команди ім'я_файлу, де ім'я_файлу – ім'я файлу, із умістом якого необхідно ознайомитися.

Створення й перегляд змісту посилань на файли (каталоги) здійснюється за допомогою спеціальних команд: "ln" і "readlink".

Вилучити файли можна з використанням команди "rm".

Одержати підказку по використанню команд можна:

Оболонка підтримує функцію автодоповнення, яка дозволяє прискорити вже початий набір імен файлів, каталогів і команд. Функція активізується натисканням клавіші "Tab" при введенні команди й/або її параметрів у командному рядку.