в тому числі і в командах fork (породити новий
процес) і exec (виконати породжений процес), сама команда асоціюється
з її ім'ям, всі інші слова в командному рядку трактуються як параметри
команди.
Shell обробляє команди трьох типів. По-перше, в Як ім'я команди може бути вказано ім'я виконуваного файлу в об'єктних коді, отриманого в результаті компіляції вихідного тексту програми (наприклад, програми
мовою Сі). По-друге, ім'ям команди може бути ім'я командного файлу, що містить набір командних рядків, що обробляються shell'ом. Нарешті, команда
може бути внутрішньою командою мови shell (на відміну від виконуваного файлу). Наявність внутрішніх команд робить shell мовою програмування на додаток до функцій командного процесора; командний мову shell включає команди організації циклів (for-in-do-done і while-do-done), команди виконання за умовами (if-then-else-fi), оператор вибору, команду зміни поточного для процесу каталогу (cd) і деякі інші. Синтаксис shell'а допускає порівняння із зразком і обробку параметрів. Користувачам, запускаючим команди, немає необхідності знати, якого типу ці команди.
Командний процесор shell шукає імена команд у вказаному наборі каталогів, який можна змінити за бажанням користувача, викликавши shell. Shell
зазвичай виконує команду синхронно, з очікуванням завершення виконання команди перш, ніж рахувати наступну командний рядок. Проте, допускається
і асинхронне виконання, коли чергова командна рядок зчитується і виповнюється, не чекаючи завершення виконання попередньої команди. Про командах, виконуваних асинхронно, кажуть, що вони виконуються на тлі інших команд. Наприклад, введення команди
who
викликає виконання системою програми, що зберігається в файлі/bin/who (* ***) І здійснює виведення списку користувачів, які зараз працюють з системою. Поки команда who виконується, командний процесор shell очікує завершення її виконання і тільки потім запитує у користувача наступну команду. Якщо ж ввести команду
who &
система виконає програму who на фоні і shell готовий негайно прийняти наступну команду.
У середу виконання кожного процесу в системі UNIX включається поточний
каталог. Поточний для процесу каталог є початковим каталогом, ім'я якого прісоедіняетс я до всіх імен шляхів пошуку, що не починаються з
похилій риси. Користувач може запустити внутрішню команду shell'а cd
(змінити каталог) для переміщення по дереву файлової системи і для зміни
поточного каталогу. Командний рядок
cd/usr/src/uts
робить поточним каталог "/ usr/src/uts". Командний рядок
cd ../..
робить поточним каталог, який на дві вершини "Ближче" до кореня (кореневого
каталогом): параметр ".." відноситься до каталогом, який є батьківським для
поточного.
Оскільки shell є програмою користувач...