- •Лабораторна робота №5
- •Теоретичні відомості:
- •Налаштування робочого середовища
- •Завдання назв файлів
- •Передавання даних між процесами з використанням каналів (pipes)
- •Використання змінних оточення
- •Підстановка результата виконання команди
- •Групи команд та породжені оболонки
- •Редагування команд оболонки та використання псевдонімів
- •Робота з командними скріптами оболонки
- •Використання у програмах спеціальних символів
- •Використання команд керування процесом виконання
- •Хід роботи
Завдання назв файлів
У більшості сучасних операційних систем, у тому числі і Linux, можна використовувати при завданні імен файлів шаблони (wild cards). Використовують такі шаблони:
Символ |
Значення |
* |
Довільний набір символів, крім крапки на початку назви файлу |
? |
Довільний одиночний символ |
[] |
Один символ з визначеного діапазону символів |
Символ * (зірочка)- це один з найбільш часто вживаних символів – шаблонів. Він визначає довільну кількість довільних символів. Наприклад, рядок b* означає усі файли, назви яких починаються на b. В одному виразі можна використовувати стільки зірочок, скільки потрібно для визначення потрібної множини файлів. Наприклад, вираз *yy*.gif відповідає довільній назві файлу, що має yy в центральній частині свого імені.
Треба бути уважним при використанні символу пробілу та *. Наприклад, команди lp *.txt та lp * txt будуть опрацьовані системою по-різному. Перша команда виведе на друк усі файли біжучого каталогу, що мають розширення txt. Натомість друга команда, в якій між символами * та t є пробіл сприйме введене як два різні аргументи (* та txt). Відповідно, будуть виведені на друк усі файли каталогу (*) та файл, що має назву txt.
При виводі файлів з використанням символу * є одна особливість. Файли, назви яких починаються з крапки (які також чспсто вважають прихованими файлами) не відображаються. Для їх відображення необхідно явно задати крапку в імені. Наприклад, файл з іменем .reportrc може бути відображено, якщо використати таку команду:
ls .*rep*
Символ ? використовують для позначення окремого символа. Нехай у робочому каталозі є файли report1, report2, report10, report.dft, report.fin
Варіанти застосування символу шаблону ? та результуючий вивід подано у таблиці
Команда |
Результат |
ls report? |
report1 report2 |
ls *.??? |
report.dft report.fin |
Вираз [] використовують для завдання певного діапазону символів. Нехай на диску існують файли rep1,rep2,rep3, repx. Необхідно вибрати перші три. Для цього можна застосувати шаблон імені job[123]
Вивести усі назви файлів, що починаються з великої букви можна застосувавши такий вираз:
ls [A-Z]*
Нехай є файли з назвами sales.91, sales.92, sales.93. Їх потрібно перенести у каталог obsolete. Використовуючи символи шаблонів це можна зробити таким чином:
ср sales.9[0-2] obsolete
Як і символ шаблону ? цифри у квадратних дужках [] означають рівно один символ. Можна перерахувати допустимі символи [123], або вказати діапазон їх значень [1-2]. Можна також вказати декілька діапазонів. Наприклад, вираз [A-Z, a-z] відповідає усім буквам алфавіту.
Передавання даних між процесами з використанням каналів (pipes)
Інколи буває необхідно використовувати вихідні дані однієї програми як вхідні для іншої. Замість того, щоб зберігати їх у проміжних файлах, можна використати механізм програмних каналів. Наприклад, щоб відсортувати файл sales, а потім роздрукувати його, можна використати таку команду:
sort sales | lp
Символ операції зв”язування каналом (|) ставиться між відповідними командами, що зв”язуються. Використовуючи цей символ, можна зв”язати і декілька команд.
Наприклад, наступна команда бере список файлів, назви яких починаються з sales, сортує їх та виводить результат на друк.
cat sales* | sort | lp
