Лабораторна робота 2 Робота з файлами і каталогами в ос Linux. Консольний режим ос Linux. Вивчення команд оболонки shell ос Linux
Мета: ознайомитись з файловою структурою та командами ОС Linux. Навчитись програмувати в оболонці shell.
1. Теоретичні відомості
Linux є багатозадачною операційною системою загального при-значення. Комп’ютер, що працює під управлінням Linux, може водночас вирішувати декілька задач, що належать різноманітним користувачам. При цьому процес управління цими задачами здійснюється з різних терміналів, під’єднаних до основної Linux-машини. Для отримання доз-волу роботи на комп’ютері спочатку необхідно пройти процедуру приєднання (login). В системі Linux користувачі, що зареєструвалися, об’єднані в групи, і системний адміністратор підключає кожного нового користувача в одну з таких груп.
1.1. Файлова система Linux
Файлова система ОС Linux має ієрархічну (деревоподібну) структуру. У вершинах дерева знаходяться каталоги (використовують також терміни – довідники, директорії), що містять списки файлів. Ці файли у свою чергу можуть бути або знову каталогами, або звичайними файлами, або спеціальними файлами, що представляють різні пристрої вводу-виводу.
В операційній системі Linux все вважається файлом. Файл є послідовністю символів (байтів). Операційна система не виробляє спеціальної організації файлів. Зміст і структура файлів визначаються прикладними програмами, що будуть їх використовувати. При такому підході директорія також є файлом (що містить посилання на інші файли.
Рис. 1 – Структура каталогів
Kореневий каталог має ім’я “/”. Він звичайно містить каталоги:
bin – для найбільш використовуваних команд;
usr – каталоги і звичайні файли, що містять інформацію, необхідну при рішенні завдань користувача;
dev – для спеціальних файлів, що представляють пристрої (дисплеї, диски...);
etc – для зберігання команд адміністратора системи;
lib – найважливіші бібліотеки;
mnt – для підключення (примонтування) нових файлових систем;
sys – засоби для зміни конфігурації системи;
tmp – для зберігання тимчасових файлів;
usr – каталоги і звичайні файли, що містять інформацію, необхідну при рішенні завдань користувача.
Повні імена файлів: /bin, /usr, ..., /boot.
У свою чергу ці каталоги можуть містити каталоги наступного рівня.
Якщо в каталозі “/usr/include” міститься каталог “sys”, що у свою чергу, містить каталог “conf”, то повне ім’я файла “conf” буде /usr/include/sys/conf
Формальною ознакою повного імені є те, що воно починається зі слешу (“/”).
Відносне ім’я починається не з “/”, і визначає ім’я щодо свого місця розташування. Якщо користувач у цей момент перебуває в директорії /usr файлової системи, то він може звернутися до цього ж файла по відносному імені include/sys/conf
Існує два спеціальних імені:
. |
– “ім’я” поточної директорії; |
.. |
– “ім’я” батьківської директорії (тобто директорії, що знаходиться на сходинку вище даної на шляху до кореня). |
Як ім’я файла, як правило, може використовуватися будь-яка послідовність із літер, цифр і підкреслень. Можуть використовуватися й інші символи, однак ряд цих символів при використанні в імені вимагає спеціального екранування. Краще не користуватися спеціальними символами в іменах – іноді це може призвести до складностей у звертанні до таких імен, оскільки спецсимволи можуть мати в shell деякий спеціальний зміст.
У ряді систем довжина імені обмежується 14 символами (цього обмеження бажано дотримуватися для перенесення файлів), однак в інших системах допускаються більш довгі імена, – наприклад, до 256 символів.
У загальному випадку не є обов’язковими і деякі розширення в іменах. Хоча ряд команд вимагають наявності деяких фіксованих розширень в іменах, наприклад, розширення “.с” для вихідних файлів для Сі-компілятора.
До речі, в ОС Linux великі та малі літери сприймаються як різні, тому “FILE”, “file” і “File” – це три різних імені!
Окремі частини файлової системи можуть знаходитися на різних фізичних пристроях, наприклад, на декількох жорстких і гнучких дисках (або в різних частинах одного диска). Відповідні фрагменти (піддерева файлової системи) монтуються (приєднуються) у єдину файлову систему командою mount (звичайно, це функція адміністратора системи), після чого користувач може звертатися до будь-яких доступних файлів, при цьому в імені ніяк не відбивається пристрій, на якому файл знаходиться або створюється (тобто ніяких “A:”).
Під файлом в Linux розуміють: традиційні файли даних (текстові, двійкові), файли каталогу, файли зовнішніх пристроїв.
В Linux кожному зовнішньому пристрою, наприклад, гнучкому магнітному диску, жорсткому магнітному диску відповідають файли. Більшість з них знаходиться в каталозі /dev. Ці файли використовуються для доступу до пристроїв вводу-виводу.