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
   22   23   24   25   26   27   28   29   30   31   32