нульовий) статус виходу. У список може входити довільну кількість перекладів рядків і точок з комою, які поділяють команди. p> Тепер можна дати загальне визначення команди:
<команда>: =
<проста команда> |
<оператор управління> |
<визначення функції> |
<список> | (<список>) | {<список>;}
Список в круглих дужках виконується у породженому командному інтерпретаторі. Круглі дужки зазвичай використовують для групування команд. p> Список в фігурних дужках виконується в поточному командному інтерпретаторі, без породження додаткового процесу, і заміщає образ командного інтерпретатора (це аналог системного виклику exec).
Оператори управління і синтаксис визначення функцій розглядається далі.
Розглянемо приклад складної команди:
bash $ (sleep 5; date) & date
[1] 1148Aug 20 15:00:11???? 1997 $ Wed Aug 20 15:00:16???? 1997
Фоновий процес починається, але одразу "засинає"; тим часом друга команда date видає поточний час, а інтерпретатор - запрошення для введення нової команди. Через п'ять (приблизно, залежить від завантаження системи і т.п.) секунд припиняється виконання команди sleep і перша команда date видає новий час. br/>
3. Демони
В ОС UNIX виділяється три типи процесів: системні, процеси-демони і прикладні процеси [2]. p> Системні процеси є частиною ядра і розташовані в оперативній пам'яті. Системні процеси не мають відповідних їм програм у вигляді виконуваних файлів і запускаються особливим чином при ініціалізації ядра системи. Виконувані інструкції і дані цих процесів знаходяться в ядрі системи, таким чином, вони можуть викликати функції і звертатися до даних, недоступним для інших процесів. p> До прикладних процесів належать всі інші процеси, що виконуються в системі. Як правило, це процеси, породжені в рамках користувацького сеансу роботи. Найважливішим користувача процесом є початковий командний інтерпретатор, який забезпечує виконання команд користувача в системі UNIX. p align="justify"> Демони - це не інтерактивні процеси, які запускаються звичайним чином шляхом завантаження в пам'ять відповідних їм програм (виконуваних файлів), та виконується у фоновому режимі. Зазвичай демони запускаються при ініціалізації системи і забезпечують роботу різних підсистем UNIX. Демони не пов'язані ні з одним призначеним для користувача сеансом роботи і не можуть безпосередньо управлятися користувачем. Велику частину часу демони чекають поки той чи інший процес запросить певну послугу, наприклад, доступ до файлового архіву або друк документа. p align="justify"> Деякі демони працюють постійно, найбільш яскравий приклад такого демона - процес init (1M), що є прабатьком всіх прикладних процесів у системі. Іншими прикладами є cron (1M), що дозволяє запускати програми у визначені моменти часу, inetd (1M), що забезпечує доступ до сервісів системи з мережі, і sendmail (1M), що забезпе...