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

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


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

Оболочка Korn - это интерактивный интерпретатор и командный язык программирования. Он полностью соответствует международному стандарту интерфейса переносимых операционных систем (POSIX). POSIX - это стандарт, разработанный для обеспечения переносимости приложений на различные платформы на уровне исходного текста. Функции POSIX реализованы в оболочке Korn. В оболочке Korn (ее также называют оболочкой POSIX) поддерживается большинство функций оболочек Bourne и C, а также возможности по перенаправлению ввода-вывода, подстановке значений переменных и имен файлов. Кроме того, в ней предусмотрено несколько дополнительных команд и средств программирования:

Вычисление арифметических выражений Оболочка Korn (POSIX) позволяет вычислять целочисленные арифметические выражения с помощью встроенной команды let. В выражениях могут применяться любые системы счисления от 2 до 36. Дополнительная информация об этой команде приведена в разделе Арифметические вычисления в оболочке Korn (POSIX).
Хронология команд Оболочка Korn (POSIX) сохраняет текст всех введенных команд в специальном файле. С помощью текстового редактора можно изменять содержимое этого файла хронологии и повторно выполнять нужные команды. Дополнительная информация о функции хронологии команд приведена в разделе Хронология команд оболочки Korn (POSIX) .
Создание подчиненных процессов Параллельные процессы позволяет запускать программы в фоновом режиме и обмениваться информацией с ними.
Редактирование В оболочке Korn (POSIX) предусмотрены встроенные функции редактирования командной строки. Поддерживается эмуляция редакторов emacs, gmacs и vi. Дополнительная информация об этой функции приведена в разделе Встроенный редактор оболочки Korn (POSIX).

В этом разделе обсуждаются следующие вопросы:

Среда оболочки Korn

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

Если вы измените или создадите новые параметры оболочки с помощью команды export или typeset -x, то измененные (новые) параметры станут частью среды. Соответственно, среда каждой выполняемой команды состоит из всех переменных, первоначально унаследованных оболочкой (в дальнейшем они могли быть изменены), с учетом изменений, внесенных с помощью команд export и typeset -x. Команда может изменять значения переменных, но для того, чтобы эти изменения остались в силе для ее дочерних оболочек и процессов, все измененные переменные должны быть экспортированы.

Для того чтобы изменить среду конкретной команды или функции, можно задать необходимые изменения в командной строке непосредственно перед именем этой команды или функции. Эти изменения должны быть заданы в форме идентификатор=значение. Поэтому для выполняемой команды следующие выражения равносильны:

TERM=450 команда аргументы

(export TERM; TERM=450; команда аргументы)

Если установлен флаг -k, то в среду будут помещены все параметры, даже если они указаны после имени команды. Следующая последовательность команд сначала выдает строку a=b c, а затем строку c.

echo a=b c
set -k
echo a=b c

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

Запуск оболочки

Оболочку Korn можно запустить с помощью команды ksh или psh (оболочка POSIX).

Если оболочка будет запущена c помощью команды exec и первым символом аргумента 0 ($0) будет минус (-), то будет предполагаться, что это оболочка входа в систему. В этом случае сначала будут выполнены команды из файла /etc/profile, а затем команды либо из файла .profile в текущем каталоге, либо из файла $HOME/.profile, если хотя бы один из них существует. Затем оболочка выполнит команды из файла, указанного в переменной среды ENV, если он существует.

Если при запуске оболочки Korn (POSIX) будет указан параметр файл [параметр], то оболочка выполнит файл сценария, указанный в параметре файл, с параметрами параметр. Файл сценария должен быть доступен для чтения; все значения setuid и setgid игнорируются. Затем оболочка выполнит команды.

Примечание: Не указывайте файл сценария с флагами -c и -s.

Дополнительная информация о позиционных параметрах приведена в разделе Подстановка параметров в оболочке Korn (POSIX).

Приглашение оболочки

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

Хронология команд оболочки Korn (POSIX)

Оболочка Korn (POSIX) сохраняет текст команд, введенных с терминала, в файле хронологии. С помощью переменной HISTFILE можно задать имя этого файла. Если переменная HISTFILE не определена, или в указанный файл запрещена запись, то применяется файл хронологии $HOME/.sh_history. Если файл хронологии не существует и оболочка Korn не может создать его, или если он существует, но оболочке Korn не разрешена запись в него, то будет применяться временный файл хронологии. Все экземпляры оболочки пользуются одним и тем же файлом хронологии.

По умолчанию оболочка Korn (POSIX) сохраняет текст последних 128 команд, введенных с терминала. Размер файла хронологии (файла, указанного в переменной HISTSIZE) не ограничен, но если он будет очень большим, на запуск оболочки может потребоваться больше времени, чем обычно.

Подстановка команд из файла хронологии

С помощью встроенной команды fc можно просматривать и изменять содержимое файла хронологии. Для выбора части файла или редактирования строки укажите номер или начальные символы команды. Вы можете указать как одну, так и несколько команд.

Если в команде fc не задан редактор, то будет применяться редактор, указанный в переменной FCEDIT. Если переменная FCEDIT не определена, то применяется редактор /usr/bin/ed. По окончании работы с редактором измененные команды будут напечатаны и запущены.

Для того чтобы повторить последнюю команду, не запуская редактор, нужно в качестве редактора указать минус (-). В этом случае можно изменить выполняемую команду с помощью параметра старая строка=новая строка. Например, если r - псевдоним команды fc -e -, то команда r rm=cp c повторит последнюю введенную команду, добавив в ее начало символ c и заменив первое вхождение строки rm на строку cp.

Дополнительная информация о работе с командой оболочки history приведена в разделе Просмотр ранее введенных команд (команда history) и описании команды fc в AIX 5L Version 5.1 Commands Reference.


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