Процесс выполнения команды
Рисунок 2.11. исполнение команды
Командная оболочка — это обычный процесс в операционной системе UNIX. Когда пользователь вводит команду (например, по нажатию Enter), командная оболочка выполняет следующие действия:
1. анализ команды: выделение имени, параметров и аргументов;
- если это сокращение (alias), то оно раскрывается и анализ команды продолжается;
- если это встроенная команда, для неё вызывается функция-обработчик;
- если это внешняя команда:
- производится поиск программы с соответствующим именем;
- создаётся дочерний процесс оболочки (системный вызов fork);
- в дочернем процессе запускается необходимая команда с расшифрованными параметрами и аргументами (системный вызов exec);
- оболочка контролирует выполнение дочернего процесса, передаёт ему сигналы и ввод пользователя, ожидает его завершения (системный вызов wait);
- результаты работы возвращаются пользователю, отображается приглашение — он может вводить следующую команду.