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

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


Утилита динамического выбора окна

Команда dscreen позволяет подключить один физический терминал одновременно к нескольким виртуальным сеансам (экранам). В основном эта утилита предназначена для терминалов с памятью на две и более страниц (например, IBM 3151 модель 310 и 410 с дополнительной кассетой). Для таких терминалов переключение между виртуальными окнами означает переключение между страницами окна физического терминала, что позволяет сохранить, а затем восстановить содержимое каждого виртуального окна. Если терминал не поддерживает память на несколько страниц, то команда dscreen также применяется для переключения между виртуальными окнами, хотя при этом состояние содержимого окна не сохраняется.

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

Файл dscreen информации о конфигурации терминала

В файле конфигурации терминала dscreen (или dsinfo) определяются различные комбинации клавиш, применяемые при работе с программой dscreen. Например, это необходимо, если стандартные клавиши, определенные для команды dscreen, конфликтуют с управляющими клавишами работающего приложения.

Предполагается, что типы терминалов, задаваемые в файле dsinfo, поддерживают только одностраничную память. Если терминал поддерживает многостраничную память, то в файле dsinfo нужно указать функциональные клавиши для управления страничной памятью. Информацию о конкретных управляющих последовательностях вы можете найти в руководстве по работе с терминалом.

По умолчанию в качестве файла dsinfo применяется файл /usr/lbin/tty/dsinfo. Для того чтобы задать другой файл dsinfo, укажите флаг -i. Далее в этом разделе будет описываться работа с файлом по умолчанию. Однако вся приведенная ниже информация также относится и к любому другому файлу dsinfo.

Дополнительная информация о файле dsinfo приведена в разделе "Присвоение динамических экранов" .

Назначение функциональных клавиш

При запуске команды dscreen появляется виртуальное окно. При нажатии некоторых клавиш клавиатуры сигнал не передается виртуальному окну, а перехватывается программой dscreen, которая выполняет некоторые действия. Вот несколько примеров этих действий:

Выбрать Выбирает указанный экран.
Блокировать Блокирует ввод и вывод.
Создать Открывает новое окно.
Завершить Завершает работу dscreen.
Выход Закрывает окно dscreen.
Предыдущий Переходит к предыдущему окну.
Список Показывает список функциональных клавиш dscreen и выполняемых ими действий.

Функция каждой клавиши зависит от терминала и описания терминала в файле /usr/lbin/tty/dsinfo.

Клавиши выбора

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

Допустимое число виртуальных окон ограничено числом клавиш выбора, определенных в файле dsinfo. Сеанс для каждого окна завершается одновременно с завершением работы процесса исходной оболочки. При этом связанная с окном клавиша выбора освобождается и может быть присвоена другому виртуальному окну. Работа утилиты dscreen завершается, если нет ни одного активного окна.

Клавиши блокировки

Клавиши блокировки применяются для приостановки вывода, их действие аналогично действию клавиш Ctrl-S управления потоком IXON. Эти клавиши предназначены для прозрачной настройки сеансов терминалов двух компьютеров, взаимодействующих с помощью терминала с двумя последовательными портами.

Клавиши нового окна

При нажатии клавиши нового окна создается новое логическое окно, которому присваивается одна из клавиш выбора. Для каждого нового окна требуется:

Если какой-либо из перечисленных выше ресурсов недоступен, то новое окно создано не будет, и будет отправлено сообщение с указанием причины ошибки.

Клавиши завершения и выхода

При нажатии клавиши завершения будут выполнены следующие действия:

При нажатии клавиши выхода будут выполнены те же действия, но код возврата будет равен 1.

Клавиша предыдущего окна

Клавиша предыдущего окна предназначена для перехода к окну, которое просматривалось последним.

Примечания:
  1. Во время вывода информации в текущее окно переключаться между окнами нельзя; escape-последовательность может быть усечена, что приведет к переходу терминала в неопределенное состояние.
  2. Некоторые терминалы сохраняют положение курсора в отдельных окнах, но не сохраняют другие параметры состояния окна, например, режим вставки, инверсного изображения, и т.д. Использовать такие режимы при переключении окон не рекомендуется.

Клавиша списка

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

Функциональные клавиши динамического выбора окна

Число клавиш выбора окна, задаваемое в записи определения терминала в файле /usr/lbin/tty/dsinfo, соответствует числу страниц терминала. Если будет задано большее число клавиш выбора, то программа dscreen будет динамически выделять виртуальным окнам страницы физического окна.

При выборе виртуального окна, с которым не связана никакая страница физического окна, dscreen выделяет виртуальному окну страницу, которая использовалась позже всех. В зависимости от спецификаций, указанных в файле описания /usr/lbin/tty/dsinfo, при подключении физического окна к другому виртуальному окну могут выполняться некоторые действия, например, очистка экрана.

Файл dsinfo

Файл dsinfo представляет собой базу данных описаний терминалов, используемую утилитой dscreen. В файле содержится следующая информация:

Записи типов терминалов в файле по умолчанию dsinfo аналогичны следующим записям для терминала ASCII 3151:

# Для данной записи необходима кассета расширения (pn: 64F9314)
ibm3151|3151|IBM 3151,
dsks=\E!a^M|Shift-F1|,            # Выбор первого окна
dsks=\E!b^M|Shift-F2|,            # Выбор второго окна
dsks=\E!c^M|Shift-F3|,            # Выбор третьего окна
dsks=\E!d^M|Shift-F4|,            # Выбор четвертого окна
dskc=\E!e^M|Shift-F5|,            # Создание нового окна
dske=\E!f^M|Shift-F6|\E pA\EH\EJ, # Переход к окну 1 и завершение работы
dskl=\E!g^M|Shift-F7|,            # Просмотр списка функциональных клавиш
(справка)
dskp=\E!h^M|Shift-F8|,            # Переход к предыдущему окну
dskq=\E!i^M|Shift-F9|\E pA\EH\EJ, # Переход к окну 1 и выход из программы
dsp=\E pA|\EH\EJ,                 # Терминальная последовательность для окна 1
dsp=\E pB|\EH\EJ,                 # Терминальная последовательность для окна 2
dsp=\E pC|\EH\EJ,                 # Терминальная последовательность для окна 3
dsp=\E pD|\EH\EJ,                 # Терминальная последовательность для окна 4
dst=10,                           # Разрешить буферизацию в течение 1-секундного тайм-аута

Формат записи dsinfo

Записи файла dsinfo состоят из полей, отделенных друг от друга запятыми. В первом поле задается список альтернативных имен терминала, которые отделяются друг от друга символом конвейера ( | ). Любой текст, указанный после символа фунта (#), рассматривается как комментарий и игнорируется программой dscreen. Остальные поля представляют собой строки, описывающие возможности терминала утилиты dscreen. В этих строках могут быть указаны следующие escape-последовательности:

Escape-последовательность Описание
\E,\e escape-символ
\n,\l символ перехода на новою строку (или переноса строки)
\r возврат каретки
\t символ табуляции
\b символ возврата
\f символ перевода страницы
\s символ пробела
\nnn символ с восьмеричным значением nnn
^x Ctrl-x для любого допустимого символа x

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

Поля записей в файле dsinfo обязательно должны отделяться друг от друга запятыми. Если запятая пропущена или отброшена в конце записи файла dsinfo, то этот файл становится нечитаемым для утилиты dscreen, а на экране появляется сообщение об ошибке.

Типы строк

Существуют следующие типы строк:

dskx Описание клавиши. Длина типа должна равняться четырем символам, последний из которых (x) указывает действие, которое будет выполняться при нажатии клавиши. Существуют следующие типы клавиш:

Тип
Действие

dsks
Переключение между окнами

dskb
Блокировка ввода и вывода

dske
Завершение работы dscreen

dskq
Выход из программы dscreen (код возврата=1)

dskc
Создать новое окно

dskp
Перейти к предыдущему окну

dskl
Просмотреть список клавиш и связанных с ними действий

Все остальные типы клавиш (вида dskx, где символ x отличен от s, b, e, q, p и l) не связаны ни с какими внутренними действиями программы dscreen, однако они будут показаны в списке клавиш и будут распознаваться этой программой. Тип dskn (n означает отсутствие операции) применяется в том случае, если программа dscreen не должна выполнять никаких внутренних действий.

Строковое значение каждой клавиши представляет собой три подстроки, разделенных символом конвейера ( | ).

Примечание: Вместо символа | в подстроке нужно указать символы \|.

Первая подстрока - это последовательность символов, которую терминал посылает при нажатии клавиши. Вторая подстрока - это название клавиши, которое указывается при просмотре списка клавиш. Третья подстрока - это последовательность символов, которая отправляется терминалу программой dscreen при нажатии клавиши перед выполнением действия, связанного с этой клавишей.

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

Первая подстрока - это последовательность символов, которая предназначена для вывода на физическую страницу терминала.

Вторая подстрока отправляется терминалу при выводе на страницу новой информации. Часто она применяется для очистки содержимого окна. Эта подстрока отправляется, если выполнены следующие два условия:

  1. Создается новый сеанс виртуального терминала.
  2. Число виртуальных терминалов больше числа физических страниц. Если при выборе виртуального терминала программа dscreen выделяет ему физическое окно, уже связанное с другим виртуальным терминалом, то она отправляет эту последовательность символов, означающую, что содержимое окна не соответствует выводу виртуального терминала.

Примечание: Применять число виртуальных терминалов, превышающее число физических окон, не рекомендуется. Для этого число клавиш выбора окна (dsks= ) в записи dsinfo не должно превышать числа физических окон (dsp= ).
dst A Строка типа dst предназначена для настройки тайм-аута ввода для dscreen. В качестве строкового значения указывается десятичное число. Значение тайм-аута задается в десятых долях секунды и не может превышать 255 (значение по умолчанию=1 [или 0.1 секунды]).

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

Если для выполнения действий, связанных с одной или несколькими клавишами dscreen, необходимо нажать несколько клавиш, то значение тайм-аута следует увеличить, (например, в том случае если для выбора окна применяются сочетания клавиш Ctrl-Z 1, Ctrl-Z 2, Ctrl-Z 3, и т.д., а для создания нового окна - сочетание клавиш Ctrl-Z N).

Пример 1

Ниже приведен пример записи файла /usr/lbin/tty/dsinfo для терминала Wyse-60 с тремя оконными сеансами:

wy60|wyse60|wyse model 60,
dsks=^A`^M|Shift-F1|,
dsks=^Aa^M|Shift-F2|,
dsks=^Ab^M|Shift-F3|,
dskc=\200|Ctrl-F1|,
dske=\201|Ctrl-F2|\Ew0\E+,
dskl=\202|Ctrl-F3|,
dsp=\Ew0|\E+,
dsp=\Ew1|\E+,
dsp=\Ew2|\E+,

В этой записи задана следующая конфигурация:

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

Пример 2

Это пример для Wyse-60 с тремя оконными сеансами, но одно из окон расположено на втором компьютере, который обменивается данными с терминалом через второй последовательный порт:

wy60-1|wyse60-1|wyse model 60 - первый последовательный порт
dsks=^A`^M|Shift-F1|,
dsks=^Aa^M|Shift-F2|,
dsks=^Ab^M|Shift-F3|\Ed#^Ab\r^T\Ee9,
dskc=\200|Ctrl-F1|,
dske=\201|Ctrl-F2|\Ed#\201^T\Ew0\E+,
dskl=\202|Ctrl-F3|,
dsp=\Ew0|\E+,dsp=\Ew1|\E+,
wy60-2|wyse60-2|wyse model 60 - второй последовательный порт
dsks=^A`^M|Shift-F1|\Ed#^A`\r^T\Ee8,
dsks=^Aa^M|Shift-F2|\Ed#^Aa\r^T\Ee8,
dsks=^Ab^M|Shift-F3|,
dskc=\200|Ctrl-F1|,
dske=\201|Ctrl-F2|\Ed#\201^T\Ew0\E+,
dskl=\202|Ctrl-F3|,
dsp=\Ew2|\E+,

Программа dscreen должна быть запущена на обоих компьютерах, причем на первом в качестве типа терминала должно быть указано значение wy60-1, а на втором - значение wy60-2 (с помощью опции -t команды dscreen). Первой будет просматриваться запись wy60-1.

Первые два описания функциональных клавиш не отличаются от исходной записи wy60. Однако для третьей клавиши задан тип dskb, то есть это клавиша блокировки ввода и вывода. При нажатии этой клавиши на терминал будет отправлена последовательность:

Esc d # Ctrl-A b CR Ctrl-T Esc e 9

После этого весь вывод блокируется, а программа dscreen просматривает ввод, выполняя поиск последовательности символов, соответствующей функциональной клавише. Все остальные данные игнорируются.

Последовательность Esc d # переводит терминал в режим прямой печати, в котором все символы передаются через второй последовательный порт, пока не встретится последовательность Ctrl-T.

Через второй последовательный порт отправляется последовательность символов Ctrl-A b CR, получив которую, процесс dscreen на втором компьютере активизирует окно, связанное с клавишей Shift-F3.

Клавиши Ctrl-T предназначены для отмены режима прямой печати. Клавиши Esc 9 предназначены для изменения последовательного порта AIX, через который терминал обменивается данными.

После того как второй компьютер получает такую последовательность символов, он отправляет последовательность Esc w 2 для перехода к третьему физическому окну, а затем возобновляет обычную работу.

В записи wy60-2 для клавиш Shift-F1 и Shift-F2 установлена следующая последовательность действий:

Клавиша завершения работы, Ctrl-F2, выполняет одинаковые действия на обоих компьютерах: с помощью механизма прямой печати отправляет на другой компьютер последовательность символов, соответствующих клавише завершения, активизирует окно 0, очищает экран, а затем завершает работу программы.


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