
- •Лабораторна робота № 1
- •Теоретичні відомості:
- •Історія створення та статус Linux
- •Вхід та вихід з системи
- •Деякі прості команди
- •Файлові системи та каталоги
- •Файли та шляхи
- •Звичайні файли
- •Каталоги
- •Каталоги та фізичні диски
- •Посилання (зв’язки)
- •Спеціальні файли
- •Права доступу до файлів
- •Стандартні каталоги Linux
- •Хід роботи та індивідуальні завдання
- •Лабораторна робота №3
- •Теоретичні відомості:
- •Формування розділів жорсткого диску
- •Завантаження та ініціалізація ядра
- •Визначення прав доступу до файлів
- •Робота з користувачами системи
- •Виконання окремих команд від імені адміністратора
- •Хід роботи
- •Лабораторна робота №4
- •Теоретичні відомості
- •Отримання списку файлів
- •Організація файлів
- •Копіювання файлів
- •Переміщення та перейменування файлів
- •Видалення файлів та каталогів
- •Перегляд вмісту файлів
- •Пошук файлів
- •Сортування текстових файлів
- •Переспрямування вводу та виводу
- •Використання утіліти nmblookup
- •Доступ до ресурсів з використинням smbclient
- •Монтування та демонтування каталогів спільного використання Windows
- •Графічні оболонки для роботи з Samba
- •Хід роботи
- •Лабораторна робота №5
- •Теоретичні відомості:
- •Налаштування робочого середовища
- •Завдання назв файлів
- •Передавання даних між процесами з використанням каналів (pipes)
- •Використання змінних оточення
- •Підстановка результата виконання команди
- •Групи команд та породжені оболонки
- •Редагування команд оболонки та використання псевдонімів
- •Робота з командними скріптами оболонки
- •Використання у програмах спеціальних символів
- •Використання команд керування процесом виконання
- •Хід роботи
- •1. Об’єкти nds та їх призначення.
- •1.1.Контейнерні об’єкти
- •1.2.Кінцеві об’єкти.
- •1.3. Управління доступом до об’єктів nds.
- •1.3.1.Права на об’єкти.
- •1.3.2.Права на властивості.
- •1.4. Управління груповими об’єктами.
- •1.5. Правила найменування об’єктів та властивостей.
- •2. Робота з утилітою адміністрування netadmin.
- •3. Робота з утилітою пошуку nlist.
- •4. Хід роботи
- •Етап 4. Управління груповими об’єктами.
- •Етап 5. Адміністрування системи.
- •Варіанти індивідуальних завдань.
- •Додаток 1. Поля шаблону користувача.
- •Лабораторна робота № 7
- •Теоретичні відомості
- •Хід роботи
- •Теоретичні відомості
- •Хід роботи
- •Теоретичні відомості
- •19. Здійснити пошук файлу за іменем у наборі вкладених каталогів.
- •Теоретичні відомості
- •Хід роботи
- •Головним конфігураційним файлом є menu.Lst
- •Теоретичні відомості
- •Хід роботи
- •Теоретичні відомості
- •Хід роботи
Використання у програмах спеціальних символів
Як відомо, оболонка надає спеціальні значення символам > $% та ін. Як зробити, щоб оболонка сприйняла символи керування буквально, не асоціюючи з ними додаткових дій ? Це можна зробити декількома способами.
Можна заключити частину команди зі спеціальними символами у одинарні лапки. Наприклад, наступна команда виведе рядки файлу customers що починаються зі слова Mary:
grep '^Mary ' customers
Символ ^ задає для команди grep режим пошуку з початку рядка
Можна також використати і подвійні лапки. При цьому система ігнорує більшість службових символів (крім $ та `). Наприклад, результатом виконання команди
echo " ** Please enter your response -->"
буде
** Please enter your response -->
Однак, в результаті виконання такої команди:
echo ">>>Thanks for the $5, $LOGNAME"
буде підставлено значення п”ятого аргумента та змінної logname
Для завдання ігнорування оболонкою поодиночного символу треба використовувати символ зворотної косої риски, наприклад команда виведе $5 замість того щоб підставити значення аргумента:
echo " >>>Thanks for the \$5, $LOGNAME"
Використання команд керування процесом виконання
Серед операторів мови оболонки є два типа головних операторів керування: оператори циклу та умовні. З використанням умовних операторів if...then та case можна виконувати різні набори коду залежно від значень певних змінних. Розглянемо використання базових операторів керування на прикладах.
Оператор case
Оператор case дозволяє вибрати один з декількох варіантів дій залежно від значення змінної.
Синтаксис оператора case:
case word in
pattern) statement(s);;
pattern) statement(s);;
esac
Значення порівнюється з починаючи з першого. Якщо є співпадіння, то виконується відповідний оператор statement. Приклад програми:
# Назва: ShrtMenu
# Призначення: Надати користувачу вибір:
# роздрукувати файл, видалити файл
# або вийти з програми
# Вивести меню
echo 'Please choose either P, D, or Q to'
echo " [P]rint a file"
echo " [D]elete a file"
echo " [Q]uit"
# Отримати відповідь користувача
read response
# Використати case для вибору дій
case $response in
P|p) echo "Name of file to print?"
read filename
lp $filename;;
D|d) echo "Name of file to delete?"
read filename
rm $filename;;
*) echo "leaving now";;
esac
У тексті програми для перерахування можливих відповідей користувача використовувується запис P|p, що означає вибір великої, або малої літери p. Варіант вибору * означає усі інші варіанти вводу. Таким чином, якщо користувач введе символ, відмінний від P,p,D,d то буде виконуватися код виходу з програми.
Визначення статусу завершення команди
Оболонка завжди повідомляє про статус завершення виконання команди, або командного скрипта. Цей статус (exit status) подано у змінній $?. Наприклад, якщо команда
grep "American Terms" customers
використовується для пошуку виразу “American Terms” у файлі customers, то прочитати значення змінної статусу виконання можна командою
echo $?
Якщо потрібний вираз було знайдено, то значення статусу буде 0, інакше – інше число
Оператор if...then...else..fi
Оператор if..then..else..fi – це операторр галуження, який залежно від значення виразу дозволяє виконувати одну з гілок програми. Частина else оператора не є обов”язковою.
Формат оператора такий:
if cond_statement(s) then statement(s)1 [else statement(s)2] fi
Якщо статус виконання операторів cond_statement(s) є 0 (успішний), то виконується набір операторів statement(s)1, інакше - statement(s)2
Використання операторів циклу
Оболонка працює з двома типами операторів циклу – for та while.
Цикл for виконує дії для вказаного набору значень або файлів. Наприклад, щоб скопіювати усі файли, що мають розширення txt у каталог textdir, можна скористатися командою:
for i in *.txt
do
cp $i textdir/$i
done
Оболонка інтерпретує оператор та присвоює змінній i значення кожного файлу біжучого каталогу, що має розширення txt та виконує для нього копіювання у каталог textdir.
Розглянемо приклад використання оператора while. Нижченаведена програма повідомляє користувача про зміну статуса його файла поштової скриньки та прихід електронної пошти. Для порівняння версій файлів використовується команда diff. Програма працює у фоновому режимі і кожні 30 секунд перевіряє наявність нової пошти.
#Назва: checkmail
#Призначення: Повідомити користувачу про зміну у поштовій # скринці
ср $MAIL omail # Зробити копію скриньки для порівняння
#MAIL – це змінна що відповідає поштовій скринці
#поки omail та $MAIL співпадають, продовжити цикл
while diff omail $MAIL > /dev/null
do
ср $MAIL omail
sleep 30 # очікування, пауза у 30 сек
done
#Відбулися зміни
echo "New mail !!" | write $LOGNAME.