Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
UNIX.doc
Скачиваний:
0
Добавлен:
01.04.2025
Размер:
10.6 Mб
Скачать

Служебные символы

Презентация 4-05: служебные символы

Из предыдущих разделов видно, что некоторые символы используются в качестве команд самой командной оболочке, например, символы перенаправления ввода/вывода — служебные символы. Поскольку служебные символы адресованы самой командной оболочке, то при обработке командной строки они из нее «изымаются» и не передаются выполняющейся команде. Чтобы передать команде параметр, содержащий служебные символы, необходимо их тем или иным способом экранировать. С одним из способов экранирования — заключением параметра в одинарные или двойные кавычки — мы уже сталкивались раньше, когда говорили о параметрах, содержащих символы-разделители. Другой распространённый способ — постановка символа обратной косой черты (\) непосредственно перед служебным символом.

Рассмотрим основные группы служебных символов командной оболочки:

Символы-разделители

Используются для отделения частей команды или нескольких команд. К ним относятся: пробел, табуляция. По умолчанию команды разделяются символом перевода строки.

Символы пути

Используются для разделения элементов пути. Сюда можно отнести символ корня («/») и символ домашней директории («~») — в командной строке он автоматически заменяется на полный путь к домашней директории.

Символы команд

Применяются в аргументах команд, для отделения нескольких команд, для запуска процессов на заднем фоне и т.п. К таким символам можно отнести: «*», «&», «<», «>», «;», «(», «)», «|», «"».

Символы управления переменными

Используются для задания («=») и подстановки («$») значений переменных среды. При этих символах в именах файлов, необходимо предварять их знаком обратной косой («\»).

ESC-символы

Для использования перечисленных выше специальных символов в именах файлов, необходимо перед ними использовать знак обратной косой: «\&», «\;» и т. п. К этой же группе относятся специальные ASCII-символы, зарезервированные для команд вывода текста, например, символ возврата каретки или табуляции («\n» и «\t» соответственно).

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

Презентация 4-06: исполнение команды

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

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

  2. если это сокращение (alias), то оно раскрывается и анализ команды продолжается;

  3. если это встроенная команда, для неё вызывается функция-обработчик;

  4. если это внешняя команда:

    1. производится поиск программы с соответствующим именем;

    2. создаётся дочерний процесс оболочки (системный вызов fork);

    3. в дочернем процессе запускается необходимая команда с расшифрованными параметрами и аргументами (системный вызов exec);

    4. оболочка контролирует выполнение дочернего процесса, передаёт ему сигналы и ввод пользователя, ожидает его завершения (системный вызов wait);

  5. результаты работы возвращаются пользователю, отображается приглашение — он может вводить следующую команду.

Рисунок 2.3. Запуск команды оболочкой

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]