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