Page 27 - 4820
P. 27
ЛАБОРАТОРНА РОБОТА № 5
КОМАНДНА ОБОЛОНКА SHELL, СТАНДАРТНІ ПОТОКИ
ВВОДУ/ВИВОДУ, ФІЛЬТРИ І КОНВЕЄРИ
Мета роботи: оволодіння практичними навичками перенаправлення
стандартних потоків, роботи з фільтрами і організації конвеєрів
5.1 Теоретичні відомості
У цій роботі ми розглянемо деякі можливості командних оболонок, які
дозволяють користувачам гнучко формувати завдання для виконання операційною
системою.
Кожна командна оболонка в процесі свого запуску робить налаштовування
системного оточення, для чого використовує визначені файли. Їх щонайменше два –
глобальний і локальний (деякі оболонки можуть використовувати більшу кількість
конфігураційних файлів). Глобальні конфігураційні файли для всіх оболонок
знаходяться в каталозі /etc. Локальні конфігураційні файли для всіх оболонок
знаходяться в домашньому каталозі користувача. Імена конфігураційних файлів, як
правило, закінчуються на ‘rc’. Локальні файли роблять “прихованими”, щоби вони не
заважали користувачу в його повсякденній роботі (приховані файли мають ім’я, що
починається з символу ‘.’, команда ls без параметрів їх не показує). Приклади
конфігураційних файлів: для sh – /etc/profile і ~/.profile, для csh – /etc/cshrc і ~/.cshrc, для
tcsh – /etc/cshrc і ~/.cshrc, а також /etc/tcshrc і ~/.tcshrc (двох останніх може і не бути).
Конфігураційні файли є звичайними командними файлами (докладніше про
командні файли див. Лабораторну роботу № 6).
Часто як параметр деякої команди нам треба вказати не один файл, а кілька
файлів, назви яких мають певні спільні риси. У таких випадках використовують так
звані маски пошуку. Спеціальний символ ‘?’ в масці означає один будь-який символ, а
спеціальний символ ‘*’ – будь-яку послідовність символів. Наприклад, команда
ls /bin/???? виведе на екран всі файли з каталогу /bin, імена яких складаються з
чотирьох символів, а команда ls /etc/d* виведе на екран всі файли з каталогу /etc, імена
яких починаються з літери d. Також можна задати список символів, наприклад, маска
[abc]??? задає ім’я з чотирьох літер, перша з яких – a, b чи c.
Для пошуку файлів за певними ознаками можна використовувати команду find.
Перший параметр цієї команди (обов’язковий) – це каталог, з якого починається пошук
(наприклад, / – кореневий каталог), далі – параметр, що задає ознаку пошуку
(наприклад, -name – пошук файлів, імена яких відповідають заданій масці, –atime –
пошук файлів, дата модифікації яких відповідає заданій умові), далі іде власне маска
пошуку, а далі – дія. Найтиповіша дія – –print, вивід результатів пошуку на екран. Якщо
цей параметр не вказати, пошук відбуватись буде, а от результатів його видно не буде.
Наприклад:
find / -name "*.c" –print
виведе на екран список всіх файлів, імена яких мають розширення .с, тобто вихідних
кодів на мові програмування С.
Ще одна можливість оболонок – перенаправлення потоків вводу-виводу. Як
правило, більшість команд (утиліт) приймає інформацію з клавіатури, або з файлу,
якщо його вказано як параметр, і виводить результати на екран. Однак, фактично вони
працюють із так званими стандартними потоками вводу і виводу, які пов’язані з
25