Процесс выполнения команды

Рисунок 2.11. исполнение команды

Командная оболочка — это обычный процесс в операционной системе UNIX. Когда пользователь вводит команду (например, по нажатию Enter), командная оболочка выполняет следующие действия:

1. анализ команды: выделение имени, параметров и аргументов;

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