Перейти к поиску
  1. Главная
  2. Продукты
  3. С-Терра Шлюз КВ
  4. Cisco-like команды
  5. Консоль ввода команд
  6. Интерфейс пользователя

Интерфейс пользователя

Поиск в комплекте Источник

Интерфейс пользователя

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

  • редактирование длинных строк (которые не полностью помещаются в окне терминала);
  • паузы при выводе длинной конфигурации по команде show running-config;
  • вызов внешних терминальных программ (например, vi, less, top и т.п.) с помощью команды run.

При старте cs_console в некоторых случаях могут возникать проблемы, связанные с некорректным определением размеров терминала. Такие проблемы возникают, если используется системная консоль, подключенная по COM-порту, в том числе, если используется системная консоль МСМ.

Примечание

Непосредственный доступ к системной консоли МСМ всегда происходит через COM-порт, даже если пользователь осуществляет его из терминальной сессии консоли по протоколу SSH или telnet.

Далее подробно описаны данные проблемы и рекомендации по их решению.

При старте cs_console происходит определение размеров терминала (ширина и длина):

Сначала делается попытка прочитать размеры терминала из переменных окружения:

ширина терминала:

COLUMNS

длина терминала:

LINES

Эти переменные окружения могут быть переопределены пользователем при запуске cs_console, например:

COLUMNS=80 LINES=24 /opt/VPNagent/bin/cs_console

Только в случае реальной необходимости, когда система не может корректно определить реальные размеры терминала, следует переопределять переменные окружения. Если выставить некорректные значения, то это может привести к сбоям в работе cs_console и иных терминальных приложений.

Если размеры терминала в переменных окружения не выставлялись, то делается попытка прочитать параметры терминала с помощью системного вызова (ioctl).

Если системный вызов вернул ошибку или выдал значения ширины и длины, равные 0 (такое происходит, если используется системная консоль, подключенная по COM-порту, в том числе если используется системная консоль NME-RVPN (МСМ)), то делается попытка прочитать характеристики терминала ”co” (ширина) и ”li” (длина) с помощью системного вызова tgetnum.

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

Если ширину и длину терминала получить не удалось ни одним из указанных выше способов, то выставляются значения по умолчанию: ширина - 511, длина - 0.

Результат определения размеров терминала (если не используются переменные окружения COLUMNS / LINES) может отличаться в зависимости от:

  • типа подключения терминала (COM-порт, SSH и т.п.);
  • операционной системы, на которой установлен ПК «С-Терра Шлюз ST»;
  • клиентского терминального приложения, используемого для подключения к консоли.

Проверить размеры терминала в запущенной консоли можно с помощью команды show terminal.

Если cs_console уже стартовала, а в ней заданы некорректные размеры терминала, то их можно исправить с помощью команд terminal width / terminal length.

Возможна реакция cs_console на изменение размеров терминала, если для этого существует техническая возможность.

Данную реакцию можно наблюдать, например, следующим образом: начать вводить очень длинную строку, инициирующую горизонтальную прокрутку; и после этого изменить ширину терминального окна.

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

Наличие или отсутствие реакции на изменение размеров терминала также зависит от разных факторов:

  • типа подключения терминала (COM-порт, SSH и т.п.);
  • клиентского терминального приложения, используемого для подключения к консоли.

Как правило, реакция на изменение размеров окна:

  • присутствует в случае подключения по SSH (при условии, что клиентское приложение корректно обрабатывает изменение размеров терминального окна и оповещает SSH-сервер о нем);
  • отсутствует при подключении к системной консоли по COM-порту, в том числе к системной консоли МСМ.

Если размеры терминала переопределены с помощью команд terminal width, terminal length, то реакция на изменение размеров терминала отсутствует (значения, заданные в этих командах, считаются более приоритетными).