[ Страница назад | Страница вперед | Содержание | Индекс | Домой | Юридическая информация | Поиск ]

Руководство пользователя: Операционная система и устройства


Функции оболочки

Ниже перечислены основные возможности и функции оболочки как интерфейса между пользователем и системой:

Доступные оболочки

В данной версии операционной системы применяются следующие оболочки:

Начальной оболочкой называется оболочка, загружаемая при входе в систему. Начальная оболочка указана в файле /etc/passwd. Оболочка Korn - это стандартная начальная оболочка системы, обратно совместимая с Оболочка Bourne.

Оболочка по умолчанию, или стандартная оболочка, - это оболочка, запускаемая командой /usr/bin/sh. По умолчанию запускается оболочка Bourne - подмножество оболочки Korn.

Оболочка по умолчанию, или стандартная оболочка, - это оболочка, запускаемая командой /usr/bin/sh. По умолчанию запускается оболочка Korn (POSIX). Оболочка POSIX вызывается командой /usr/bin/psh, связанной с командой /usr/bin/ksh.

Термины, связанные с оболочками

При работе с оболочками применяются следующие термины:

пробел Пробел - это один из символов класса пробелов, определенного в категории LC_CTYPE. В оболочке POSIX пробел - это символ табуляции или обычный пробел.
встроенная команда Команда, которую оболочка выполняет без поиска и без создания отдельного процесса.
команда Последовательность символов, заданная в соответствии с синтаксисом языка оболочки. Оболочка считывает каждую команду и выполняет требуемое действие либо непосредственно, либо путем запуска утилит.
комментарий Любое слово, начинающееся со знака фунта стерлингов (#). Само слово и все следующие за ним символы до конца строки игнорируются.
идентификатор Последовательность букв, цифр и знаков подчеркивания из универсального набора символов, начинающаяся с буквы или знака подчеркивания. Идентификатор не должен начинаться с цифры. Идентификаторы применяются в качестве имен псевдонимов, функций и любых именованных параметров.
список Последовательность из одного или нескольких конвейеров, разделенных одним из следующих четырех символов: точка с запятой (;) , амперсанд (&) , двойной амперсанд (&&) или двойная вертикальная черта (||). Список может оканчиваться на один из следующих символов: точка с запятой (;), амперсанд (&) или вертикальная черта, амперсанд (|&).

;
Задает последовательную обработку предшествующего конвейера. Оболочка поочередно выполняет каждую команду и ожидает завершения последней команды.

&
Задает асинхронную обработку предшествующего конвейера. Оболочка поочередно выполняет каждую команду, обрабатывая конвейер в фоновом режиме и не дожидаясь завершения.

|&
Задает асинхронную обработку предшествующего конвейера и устанавливает двусторонний конвейер с родительской оболочкой. Оболочка поочередно выполняет каждую команду, обрабатывая конвейер в фоновом режиме и не дожидаясь завершения. Родительская оболочка может считывать стандартный вывод и записывать в стандартный ввод порожденной команды с помощью команд read -p и print -p. В каждый момент времени может быть активна только одна такая команда.

&&
Обрабатывает последующий список только в том случае, если предыдущий конвейер возвратил нулевое значение.

||
Обрабатывает последующий список только в том случае, если предыдущий конвейер возвратил ненулевое значение.

Точка с запятой (;), амперсанд (&) и вертикальная черта, амперсанд (|&) имеет более низкий приоритет, чем двойной амперсанд (&&) и двойная вертикальная черта (||). Приоритет символов ;, & и |& одинаковый. Приоритет символов && и || также одинаковый. Для отделения одной команды от другой в списке вместо точки с запятой можно воспользоваться одним или несколькими символами новой строки.

Примечание: Символ |& допустим только в оболочке Korn.
метасимвол Метасимвол - это специальный символ оболочки; если метасимвол указан без кавычек, то он считается концом слова. Метасимволы - конвейер (|), амперсанд (&), точка с запятой (;), знак меньше (<), знак больше (>), левая скобка ((), правая скобка ()), знак доллара ($), обратная кавычка ( `), обратная косая черта (\), правая кавычка ('), двойная кавычка ("), символ новой строки, пробел и символ табуляции. Все символы, заключенные между одинарными кавычками, рассматриваются как обычные, а не специальные символы. Метасимволы сохраняют свое специальное значение, если они не взяты в кавычки. (В оболочке C метасимволы называют также метасимволами компилятора.)
список присваиваний параметров Содержит одно или несколько слов в формате Идентификатор=Значение, в котором количество пробелов перед и после знака равенства (=) должно быть одинаковым. Иными словами, либо начальные и конечные пробелы вообще не указываются, либо их должно быть равное число.

Примечание: В оболочке C список присвоений параметров задается в формате set Идентификатор = Значение. Пробелы перед и после знака равенства (=) обязательны.
конвейер Последовательность из нескольких команд, разделенных вертикальной чертой (|). Каждая команда конвейера, за исключением, быть может, последней, запускается как отдельный процесс. Стандартный вывод предыдущей команды в конвейере становится стандартным вводом следующей. Если список заключен в круглые скобки, то он рассматривается как простая команда, выполняемая в отдельной подоболочке.

Если перед конвейером не указан зарезервированный символ !, то состоянием выхода будет состояние выхода последней команды конвейера. В противном случае, состоянием выхода будет логическое отрицание состояния выхода последней команды. Иными словами, если последняя команда возвратит ноль, то состоянием выхода будет 1, а если положительное значение, то - ноль.

Формат конвейера следующий:

[!] команда1 [ | команда2  ...]

Примечание: В предыдущих версиях оболочки Bourne конвейер обозначался знаком вставки (^).
переменная оболочки Имя или параметр, которому присваивается некоторое значение. Для присвоения переменной значения введите имя переменной, знак равенства (=) и значение. Имя переменной будет заменено на присвоенное ей значение, если перед именем переменной стоит знак доллара ($). Переменные особенно полезны при создании кратких обозначений длинных путей, например, $HOME для домашнего каталога. Предопределенной называется переменная, значение которой присваивается оболочкой. Пользовательской - переменная, значение которой присваивается пользователем.
простая команда Произвольная последовательность списков присвоений параметров и перенаправлений ввода и вывода. За ними могут следовать команды, слова и опции перенаправления. Последовательность оканчивается на символ ;, |, &, ||, && , |& или символ новой строки. Имя команды передается как параметр 0 (согласно определению процедуры exec). Значение простой команды - это ее состояние выхода, равное нулю в случае нормального завершения обработки, и положительному значению в противном случае. Список возможных состояний выхода приведен в описании процедур sigaction,sigvec и signal в книге AIX 5L Version 5.1 Technical Reference: Base Operating System and Extensions Volume 2.
подоболочка Оболочка, запущенная как дочерний процесс начальной или текущей оболочки.
символ подстановки Другое название - символ шаблона. Оболочка присваивает символам подстановки некоторые значения. Наиболее употребительные символы подстановки - это ?, *, [множество] и [!множество]. Символы подстановки удобно применять при задании шаблона имен файлов.
слово Последовательность символов, не содержащая пробелов. Слова разделяются одним или несколькими метасимволами.

Создание и запуск сценария оболочки

Сценарии оболочки позволяют достаточно просто выполнять однообразные команды, длинные или сложные последовательности команд и процедуры. Сценарий оболочки - это файл, содержащий одну или несколько команд. Когда вы вводите имя файла сценария оболочки, система выполняет содержащуюся в нем последовательность команд.

Вы можете создать сценарий оболочки в обычном текстовом редакторе. В сценарий можно включить как команды операционной системы, так и встроенные команды оболочки.

Ниже приведены основные рекомендации по созданию сценариев оболочки:

  1. Создайте и сохраните файл в текстовом редакторе. В файл можно включить любое сочетание команд оболочки и операционной системы.

По умолчанию сценарии оболочки, не предназначенные для применения всеми пользователями, хранятся в каталоге $HOME/bin.

Примечание: Операционная система не поддерживает процедуры setuid и setgid в сценарии оболочки.
  1. Если вы хотите запретить запускать файл сценария всем пользователям, кроме его владельца, воспользуйтесь командой chmod. Например, если файл называется script1, введите:

    chmod u=rwx script1
    

    Нажмите Enter.

  2. Для запуска сценария введите его имя в командной строке. Например, для запуска сценария script1 введите:

    script1
    

    Нажмите Enter.

    Примечание: Вы можете запустить сценарий оболочки, не делая его выполнимым, если укажете команду оболочки (ksh, bsh или csh) перед именем файла сценария в командной строке. Например, для запуска файла script1 в оболочке Korn введите:

    ksh script1
    

Выбор оболочки для файла сценария

Когда вы запускаете выполнимый сценарий в оболочке Korn (POSIX) или Bourne, команды этого сценария работают под управлением текущей оболочки (оболочки, из которой был запущен сценарий), если только вы не указали другую оболочку. Когда вы запускаете выполнимый сценарий в оболочке C, команды этого сценария выполняются под управлением оболочки Bourne (/usr/bin/bsh), если только вы не указали другую оболочку.

Вы можете выполнять сценарий в конкретной оболочке, если укажете эту оболочку в сценарии. Для этого введите #!Путь в первой строке сценария оболочки и нажмите Enter. Символы #! задают тип файла. Переменная Путь задает путь к оболочке, из которой следует запустить сценарий. Например, если в первой строке сценария указано #!/usr/bin/bsh, то сценарий будет запущен в оболочке Bourne.

Если перед именем файла сценария вы укажете команду оболочки, то оболочка, заданная в командной строке, переопределит оболочку, заданную в файле сценария. Таким образом, при вводе ksh myfile файл myfile будет запущен в оболочке Korn, даже если в первой строке файла myfile указано #!/usr/bin/csh.

Связанная информация

Обзор команд

Обзор процессов

Файловые системы

Обзор каталогов

Глава 6, Файлы

Глава 9, Защита системы и файлов

Команды оболочки Korn (POSIX)

Оболочка Bourne

Оболочка C


[ Страница назад | Страница вперед | Содержание | Индекс | Домой | Юридическая информация | Поиск ]