Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Metodicheskie ukazaniya UNIX 2014

.pdf
Скачиваний:
9
Добавлен:
11.02.2016
Размер:
414.29 Кб
Скачать

В результаті виконання заданої команди буде виведений список всіх каталогів і файлів, що входять в каталог student @ ns lesson_2 в повному форматі з прихованими файлами, відсортованих за датою модифікації.

1.1.7 Посилання

Файли та директорії розташовуються на пристрої зберігання у вигляді набору блоків. Інформація про файл зберігається в індексному дескрипторі inode. Номер inode, відомий також як порядковий номер файлу, є унікальним в межах окремої файлової системи. Запис каталогу містить ім'я файлу (або директорії), а також покажчик на дескриптор inode, в якому зберігається інформація про цей файл (або директорії).

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

Жорстка посилання - це запис каталогу, який вказує на дескриптор

inode.

Символічна посилання - це запис каталогу, який вказує на ім'я об'єкта з іншим inode.

Команда ln -s - створює символічне посилання. Її синтаксис: ln -s <на_що_створити_посилання> <ім’я_посилання> [student @ ns lesson_2] $ ln -s file1 file2

Команда ln без параметру створює жорстке посилання. Її синтаксис:

ln <на_що_зробити_ посилання > < ім’я _ посилання > [student @ ns lesson_2] $ ln file1 file2

1.1.8 Розподіл прав доступу в Linux. Читання. Запис. Виконання. Призначення прав доступу. Команди chmod, chown, chgrp

Для кожного об'єкта в файлової системі Linux існує набір прав доступу, що визначає взаємодію користувача з цим об'єктом.

Так у кожного об'єкта в Linux мається власник, про права доступу застосовуються щодо власника файлу. Вони складаються з набору 3 груп по три атрибута:

-Читання (r), запис (w), виконання (x) для власника;

-Читання, запис, виконання для групи власника;

-Читання, запис, виконання для всіх інших.

Такі права можна уявити коротким записом:

rwxrwxrwx - дозволено читання, запис і виконання для всіх Для розподілу прав доступу в Linux існує безліч команд.

Основні з них - це chmod, chown і chgrp.

Синтаксис команди такий:

chmod <права доступу> <ім'я файлу, у якого змінюються права доступу>

11

Права доступу можна записати в 2 варіантах - символьному і абсолютному.

В символьному вигляді використання команди chmod виглядатиме наступним чином:

де:

u, g, o, a - установка прав для користувача, групи, інших користувачів, всіх груп прав доступу відповідно.

+, -, = - Додати, видалити, встановити дозвіл відповідно.

r, w, x, X, u, g, o - право читання, записи, виконання, виконання якщо є таке право ще у який або з груп доступу, такі ж як у власника, такі ж як у групи, такі ж як у решти користувачів.

[student @ ns student] $ chmod g + rw lesson5.txt [student @ ns student] $ ls -l lesson5.txt

-rw-rw ---- 1 student student 39 Nov 19 15:18 lesson5.txt

Для використання абсолютного режиму необхідно представити права доступу до файлу у вигляді 3-х довічних груп. Так наприклад: rwx rx r-- виглядатиме як: 111101100

Тепер кожну двійкову групу перевести в 8-ковий число: 111 - 7, 101 - 5, 100 - 4.

Щоб задати файлу такі права необхідно виконати команду: [student @ ns student] $ chmod 754 lesson5.txt

[student @ ns student] $ ls -l lesson5.txt

-rwxr-xr-- 1 student student 39 Nov 19 15:19 lesson5.txt [student @ ns student] $ _

Команда chown дозволяє змінити власника файлу. Для використання цієї команди необхідно або мати права власника поточного файлу або права root. Синтаксис команди:

chown <ім'я користувача - нового власника файлу>: <ім'я групи - нового власника файлу> <ім'я файлу, у якого змінюється власник>

Ім'я групи в синтаксисі команди можна не вказувати, тоді буде змінений тільки власник файлу.

Команда chgrp використовується для зміни власника-групи файлу. Синтаксис її такий:

12

chgrp <ім'я групи, якій належатиме файл> <ім'я змінюваного файлу>

1.1.9 Команди довідкової інформації

Для отримання довідкової інформації по використанню команд операційної системи Linux, є пошукова система man та команди apropos і whatis - пошук в базі даних за ключовим словом.

Синтаксис команди виклику пошукової системи man:

man ім’я команди

Синтаксис команд пошуку в базі даних за ключовим словом:

apropos ключове слово ...

whatis ключове слово ...

Опис:

apropos шукає встановлені в файлах бази даних короткі описи системних команд по ключовому слову і виводить результат на стандартний висновок.

whatis показує опис тільки для повного імені команди.

13

1.2 Завдання до лабораторних робіт по темі «Команди роботи з файлової системою»

Завдання 1

1.Створіть однією командою такі директорії: directory і в ній каталоги dir1, dir2, dir3

2.Скопіюйте директорію dir1 в dir2 з ім'ям dir12.

3.Скопіюйте всі текстові файли домашнього каталогу Student в директорію dir12.

4.Перейменуйте директорію dir3 в директорію rid3

5.Видаліть директорію directory з усіма вкладеними каталогами та

файлами.

Завдання 2

Виведіть список файлів домашнього каталогу Student, використовуючи команду ls з відповідними параметрами:

-Все (включаючи приховані) файли і каталоги в скороченому форматі у кілька рядків

-Все (включаючи inode) файли і каталоги в повному форматі з сортування за зростанням розміру файлу Про всі (включаючи inode) файли і каталоги в повному форматі з сортування по зменшенню розміру файлу.

-Все (включаючи приховані) файли і каталоги в повному форматі з сортування за зростанням розміру файлу.

-Все (включаючи приховані) файли і каталоги в повному форматі з сортування по зменшенню розміру файлу.

-Все (включаючи inode) файли і каталоги в повному форматі з сортування за зростанням дати модифікації файлу.

-Все (включаючи inode) файли і каталоги в повному форматі з сортування по зменшенню дати модифікації файлу.

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

-Все (включаючи приховані) файли і каталоги в повному форматі з сортування по зменшенню дати модифікації файлу.

-Все (включаючи inode) файли і каталоги в повному форматі і його підкаталоги рекурсивно.

14

Завдання 3

1.Створіть у домашньому каталозі Student директорії directory1 і directory2.

2.В directory1 за допомогою команди cat створіть файл Name такого змісту:

Прізвище І.О, факультет скорочено, курс, група

3.Скопіюйте файл Name в directory2 з ім'ям Name1.

4.Допишіть в файл Name1 результат виконання перегляду домашньому каталозі Student про всіх (включаючи приховані) файлах і каталогах в скороченому форматі у кілька рядків

5.Перейменуйте файл Name в файл File

6.Перейдіть в каталог directory2 і створіть там файл Result, в якому з'єднані дані файлів Name і Name1.

Завдання 4

1.Створіть у домашньому каталозі Student директорію directory1.

2.Перейдіть в каталог directory1. Створіть у ньому файли

Disk_size1.txt - Disk_size5.txt, які містять дані про:

-Доступному місці в файлової системі в кілобайтах;

-Доступному місці в файлової системі в мегабайтах;

-Про розмір усіх об'єктів директорії /Student в блоках;

-Про розмір усіх об'єктів директорії /Student в байтах;

-Про розмір усіх об'єктів директорії /Student в байтах з підрахунком сумарного простору.

3.Створіть у directory1 файл Result, в якому з'єднані дані файлів

Disk_size1.txt - Disk_size5.txt

4.Видаліть файли Disk_size1.txt - Disk_size5.txt.

Завдання 5

1.Створіть у домашньому каталозі Student директорії directory1, directory2 і directory3 однією командою.

2.В directory1 за допомогою команди touch створіть файл Name.

3.Запишіть в файл Name результат виконання перегляду домашньому каталогу Student про всіх (включаючи inode) файлах і каталогах в повному форматі з сортування за зростанням розміру файлу.

4.Перейдіть в каталог directory2 і створіть жорстке посилання на файл

Name/Home.txt.

5.Зробіть копію файлу Name в директорії directory3 під ім'ям Name1.

15

6.Перейдіть в каталог directory1 і створіть символічне посилання на файл Name1/Home1.txt

Завдання 6

1.Створіть у домашньому каталозі Student директорії directory1, directory2 і directory3 однією командою.

2.В directory1 за допомогою команди cat створіть файл Name, що містить команду перегляду вмісту каталогу Student в повному форматі з inode

3.Задайте такі права доступу файлу Name в символьному вигляді:

-Читання (r), запис (w), виконання (x) - для власника;

-Читання, виконання - для групи власника;

-Читання - для всіх інших.

4.Виведіть список файлів каталогу directory1, використовуючи команду ls. Переконайтеся, що права доступу задані правильно.

5.Виконати скрипт і записати його результат в файл directory2/Name1.

6.Перейдіть в каталог directory3 і створіть жорстке посилання на файл

Name1.

Завдання 7

1.Створіть у домашньому каталозі Student директорію directory1 і directory2.

2.В directory1 за допомогою команди cat створіть файл Name, що містить команду перегляду даних про розмір усіх об'єктів директорії /Student в блоках.

3.Скопіюйте файл Name в директорію directory2 з ім'ям Name1.

4.Задайте такі права доступу файлу Name1 в абсолютному вигляді:

-Читання (r), запис (w), виконання (x) - для власника;

-Читання - для групи власника;

-Ніяких - для всіх інших.

5.Виведіть список файлів каталогу directory2, використовуючи команду ls. Переконайтеся, що права доступу задані правильно.

6.Виконати скрипт і записати його результат в файл directory1/Result.

16

Завдання 8

1.Створіть у домашньому каталозі Student директорію directory1 і directory2.

2.В directory1 за допомогою команди cat створіть файл Name, що містить команду перегляду даних про розмір усіх об'єктів директорії /Student в байтах.

3.Скопіюйте файл Name в директорію directory2 з ім'ям Name1.

4.Задайте такі права доступу файлу Name1 в символьному вигляді:

-Читання (r), запис (w), виконання (x) - для власника;

-Читання, запис, виконання - для групи власника;

-- Ніяких - для всіх інших.

5.Виведіть список файлів каталогу directory2, використовуючи ls. Переконайтеся, що права доступу задані правильно.

6.Використовуючи команду chown змініть власника файлу.

Завдання 9

1.Створіть у домашньому каталозі Student директорію directory1 і directory2.

2.В directory1 за допомогою команди touch створіть файл Name.

3.Використовуючи команду nano, запишіть в файл Name команду перегляду даних про розмір усіх об'єктів директорії /Student в мегабайтах.

4.Скопіюйте файл Name в директорію directory2 з ім'ям Name1.

5.Задайте такі права доступу файлу Name1 в символьному вигляді:

-Читання (r), запис (w), виконання (x) - для власника;

-Читання, запис, виконання - для групи власника;

-Ніяких - для всіх інших.

6.Виведіть список файлів каталогу directory2, використовуючи команду ls. Переконайтеся, що права доступу задані правильно.

7.Використовуючи команду chgrp, змініть групу власника файлу.

Завдання 10

Знайомство з файловим менеджером Midnight Commander.

-Запустіть оболонку Bash. Для цього клацніть по значку ATerminal на робочому столі.

-Наберіть в консолі команду mc

17

. Рис. 2.1. - Вікно програми Midnight Commander

В результаті відкриється вікно програми Midnight Commander, дуже схожою на Norton Commander і FAR Manager (див. Рис. 1). Розглянемо основні елементи вікна цієї оболонки. Велику частину вікна займає ліва панель, права панель. Нижче цих панелей розташовується рядок, що дозволяє вводити команди Linux. Ще нижче розташовується рядок, що містить коротке нагадування про призначення функціональних клавіш (кажуть також «гарячих») програми. У верхній частині вікна розташовується рядок меню. Розглянемо призначення деяких клавіш і клавіатурних команд, застосовуваних при роботи з Midnight Commander:

Таблиця 1. Призначення клавіш оболонки Midnight Commander

Клавіші

Призначення

 

 

TAB

перемикання між панелями

F3

перегляд файлу

F4

редагування файлу

F5

копіювання файлу

F6

перейменування (переміщення)

файлу

 

F7

створення каталогу

F8

видалення файлу

F9

активізація меню

F10

вихід з командної оболонки

CTRL+O

прибрати обидві панелі

CTRL+U

поміняти панелі місцями

Insert

позначка файлів

сірий плюс

вибір групи файлів (працює при

включеному режимі Num Lock)

18

Для вибору файлу в панелі можна використовувати клавіші управління курсором (стрілки), Page Up, Page Down.

Використовуючи описані в табл. 1 команди виконайте наступні дії:

-Використовуючи клавіші управління курсором, виберіть підсвічуванням каталог і розкрийте його зміст, натиснувши клавішу <Enter>.

-Перейдіть в кореневий каталог. Для того щоб переходить в батьківський каталог, необхідно вибирати підсвічуванням пункт /..

-Перейдіть в каталог /ramdisk

-Створіть в каталозі /ramdisk підкаталог student.

-Скопіюйте в каталог /ramdisk/student каталог ~ home (він знаходиться в кореневому каталозі /)

-- Вийдіть з Midnight Commander, натиснувши F10.

19

РОЗДІЛ 2 ПРОГРАМУВАННЯ ПІД LINUX

2.1 Довідкова інформація

Що потрібно знати

Студент повинен мати початкові користувальницькі навички при роботі з GNU / Linux (вміння вводити команди в оболонку і знати основи операційної системи), а також знати мову C на початковому рівні.

Що потрібно мати

Нам потрібно мати інструментарій. Інструментарій програміста залежить від того, які програми і на яких мовах він писатиме.

Наш інструментарій складатиметься з:

1)Операційної системи Linux (GNU / Linux) з текстовим редактором;

2)Компілятора з лінковщік для С;

3)Додаткових утиліт.

2.1.1Компілятор

Ми будемо використовувати компілятор gcc. GNU Compiler Collection - набір компіляторів для різних мов програмування, розроблений в рамках проекту GNU. GCC є вільним програмним забезпеченням, поширюється фондом вільного програмного забезпечення (FSF) на умовах GNU GPL і GNU LGPL і є ключовим компонентом GNU toolchain. Він використовується як стандартний компілятор для вільних UNIX-подібних операційних систем

2.1.2 Текстовий редактор

В світі Unix-систем є два табори: любителі Vi і любителі Emacs. В даний час написано багато клонів редактора Vi (Vim, Elvis, GVim) і багато клонів (а точніше - розширень) редактора Emacs. І для Vi і для Emacs існують як консольні так і графічні версії.

Синтаксис редактора vi такий: vi filename

де filename - ім'я файлу, який треба редагувати.

Запустимо редактор vi і створимо новий файл по імені test командою

/home/larry# vi test

Для запуску Emacs наберіть у командному рядку emacs <ім'я файлу>.

Параметр ім'я файлу необов'язковий. Якщо він не вказаний, то буде відкритий для редагування новий файл.

Переважну частину роботи ми будемо проводити в командному рядку.

20

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]