Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
lab_UNIX_15_19_окт2004.doc
Скачиваний:
3
Добавлен:
27.04.2019
Размер:
478.72 Кб
Скачать

2.2.3 Групування команд

Засоби групування — ; та <переведення рядка> визначають послідовне виконання команди:

s – асинхронне (фонове) виконання попередньої команди;

fs – виконання наступної команди за умови ненормального завершення попередньої, інакше — ігнорувати.

При виконанні команди в асинхронному режимі на екран виводиться номер процесу, відповідний виконуваній команді, після чого система запускає фоновий процес — і знову розпочинає діалог з користувачем.

Для групування команд можуть використовуватись дужки “{}” та “()”, наприклад:

k1fs{k2; k3},

тут команди k2 та k3 виконуватимуться лише за успішного завершення k1.

За групування команд k1 та k2 як

{k1; k2}s

у фоновому режимі виконуватиметься їхня послідовність.

Фонові процеси надто складно знищувати, оскільки традиційна команда знищення CTRL/C перериває лише процеси переднього плану. Для знищення фонового процесу треба знати його ідентифікатор (PID). Під час запускання фонового процесу на екран подається його PID, але якщо потім останній забули чи загубили, то треба перевірити, закінчився процес чи ні, за допомогою команди

ps – aux

можна отримати перелік усіх ідентифікаторів, імена користувачів, поточний час, який витратили процеси, тощо.

У видаванні команди ps можна віднайти номери процесів, які треба знищити, наприклад 849, 866; треба вжити команду

kill -9 849 866

– і процеси знищуються. Неодмінним є збіг імені користувача та імені власника знищуваних процесів або наявність імені привілейованого користувача.

2.2.4 Переспрямовування команд

Стандартне введення (вхід) – stdin у ОС UNIX – здійснюється з клавіатури термінала, а стандартне виведення – stdout – спрямовується на екран термінала. Існує також стандартний файл діагностичних повідомлень stderr.

Команда, яка може працювати зі стандартними введенням та виведенням, називається фільтром. Користувач має зручні засоби переспрямовування введення та виведення на інші файли чи пристрої. Символи > та >> зазначають наявність переспрямовування виведення, наприклад команда

es > fl

формує перелік файлів поточного каталога й розміщує його у файл fl замість виведення на екран. Якщо файл fl вже існує, його буде заміненено на новий. У разі використання команди

pwd >> fl

буде сформовано повне ім’я поточного каталога й розміщене наприкінці файла fl, якщо він не є порожній. Символи < та << означають переспрямовування. Команда

wc – l <fl

підраховує та видає на екран кількість рядків у файлі fl.

Команда

ed f2 <<!

створює файл f2 безпосередньо з термінала за допомогою редактору. Завершення введення визначається за наявності символу, який стоїть праворуч від <<, тобто ! ; введення буде завершено, коли першим у наступному рядку буде !.

Можна комбінувати переспрямовування команд

wc – l < f3 > f4 та wc – l > f4 < f3

Вони виконуються однаково: підраховується кількість рядків файла f3, а результат розміщується в файлі f4.

Засіб, який об’єднує стандартний вихід однієї команди зі стандартним входом другої, називається конвеєром й позначається у такий спосіб: , наприклад, команда

ls  wc – 1

спрямовує список файлів поточного каталога на вхід команди wc, яка виводить на екран кількість рядків каталога; конвеєром можна об’єднувати понад дві команди, якщо всі вони, окрім першої та останньої, є фільтри:

cat f1  grep –h result | sort | cat –b > f2

Даний конвеєр з файла f1 (cat) обирає всі рядки, які вміщують слово “result” (“grep”), відсортовує (“cat –b”) та виводить результат у файл f2.

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