Почему мой терминал Solaris “усечен”?

Вопрос или проблема

Странная ситуация

На Linux мой терминал работает нормально, в этом примере после man wget…

введите описание изображения здесь

На Solaris 10…

##ИЗОБРАЖЕНИЕ НАЧИНАЕТСЯ ЗДЕСЬ##

введите описание изображения здесь

##ИЗОБРАЖЕНИЕ ЗАВЕРШАЕТСЯ ЗДЕСЬ##

Как видите, вывод усечен посередине, когда появляется root@solaris10.

Это мои настройки терминала на Linux

stty -g
4500:5:bf:8a3b:3:1c:7f:15:4:0:1:0:11:13:1a:0:12:f:17:16:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0

А вот настройки на Solaris
stty -g

500:5:f00bf:8a3b:3:1c:7f:15:4:0:0:0:11:13:1a:19:12:f:17:16:0:0:1:1:0:00:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0

Более удобный вывод stty -a на Linux

speed 38400 baud; rows 24; columns 120; line = 0;
intr = ^C; quit = ^\; erase = ^?; kill = ^U; eof = ^D; eol = <undefined>; eol2 = <undefined>; swtch = <undefined>; start = ^Q;
stop = ^S; susp = ^Z; rprnt = ^R; werase = ^W; lnext = ^V; discard = ^O; min = 1; time = 0;
-parenb -parodd -cmspar cs8 -hupcl -cstopb cread -clocal -crtscts
-ignbrk -brkint -ignpar -parmrk -inpck -istrip -inlcr -igncr icrnl ixon -ixoff -iuclc -ixany -imaxbel iutf8
opost -olcuc -ocrnl onlcr -onocr -onlret -ofill -ofdel nl0 cr0 tab0 bs0 vt0 ff0
isig icanon iexten echo echoe echok -echonl -noflsh -xcase -tostop -echoprt echoctl echoke -flusho -extproc

А это на Solaris

speed 38400 baud; 
rows = 24; columns = 120; ypixels = 0; xpixels = 0;
csdata ?
eucw 1:0:0:0, scrw 1:0:0:0
intr = ^c; quit = ^\; erase = ^?; kill = ^u;
eof = ^d; eol = <undefined>; eol2 = <undefined>; swtch = <undefined>;
start = ^q; stop = ^s; susp = ^z; dsusp = ^y;
rprnt = ^r; flush = ^o; werase = ^w; lnext = ^v;
-parenb -parodd cs8 -cstopb -hupcl cread -clocal -loblk -crtscts -crtsxoff -parext 
-ignbrk -brkint -ignpar -parmrk -inpck -istrip -inlcr -igncr icrnl -iuclc 
ixon -ixany -ixoff -imaxbel 
isig icanon -xcase echo echoe echok -echonl -noflsh 
-tostop echoctl -echoprt echoke -defecho -flusho -pendin iexten 
opost -olcuc onlcr -ocrnl -onocr -onlret -ofill -ofdel 

Терминалы, используемые на Linux и Solaris – оба xterm, я изменяю на TERM=dtterm
на Solaris, но ничего не меняется.

Этот gif показывает, что происходит с vim на Solaris

EDIT1: сделав сброс терминала, терминал Solaris также стал нормальным, но он снова вернется к ошибочному состоянию после некоторого использования, так что это не решение.

EDIT2: происходит в ssh-терминале, в консольном терминале все работает нормально.

Решение найдено. После предложения от пользователя, что это происходит в ssh, я попробовал

ssh -t solaris10

Кажется, работает нормально.

Ответ или решение

Ваш терминал Solaris может отображаться "усечённым" по нескольким причинам, и важно выяснить, что может привести к этой проблеме. Поскольку терминал на Solaris работает некорректно, а на Linux всё нормально, давайте детально разберёмся в возможных причинах и решениях.

Возможные причины усечения терминала в Solaris:

  1. Настройки переменной окружения TERM:

    • Переменная TERM влияет на то, как терминал обрабатывает команды вывода. Когда вы изменяли переменную TERM на dtterm, это не решило проблему. Возможно, используется некорректный тип терминала. Попробуйте установить переменную на xterm или на тот тип, который лучше всего соответствует вашему терминалу.
  2. Ошибка в настройках терминала в SSH:

    • Учитывая, что проблема возникала исключительно при подключении через SSH, это указывает на то, что настройки терминала не были правильно переданы от клиента SSH на сервер Solaris. Использование команды ssh -t solaris10 инициирует псевдотерминал, что может решить вашу проблему с отображением, так как она принудительно включает выделение терминала для SSH-сессии.
  3. Проблемы с настройками stty:

    • Как видно из ваших настроек stty, различия между Linux и Solaris касаются различных параметров передачи данных и обработки символов. Убедитесь, что эти параметры корректны и соответствуют вашему оборудованию и программному обеспечению.
    • Проверьте также, чтобы у вас не было чрезмерного количества параметров, установленных в режимах, таких как -crtscts или -ixon, которые могут влиять на поведение терминала.
  4. Установка шрифтов и разрешение терминала:

    • Некоторые терминалы могут неправильно обрабатывать вывод, если шрифты или размеры не соответствуют ожидаемым. Попробуйте изменить размеры окна терминала или шрифт, чтобы убедиться, что это не вызывает проблем с усечением.
  5. Кэширование терминала и сброс:

    • У вас сработал reset, который временно решил проблему. Однако если кэш некоторых данных не очищается, то терминал может снова начать отображать ошибочный вывод. Рассмотрите возможность сброса терминала после определённых операций.

Дополнительные предложения и решения:

  • Используйте различные эмуляторы терминалов: Попробуйте подключиться с использованием других эмуляторов, если это возможно, для исключения проблем, связанных с конкретным эмулятором.
  • Проверьте конфигурации SSH: Обратите внимание на настройки ~/.ssh/config, где могут находиться параметры, влияющие на поведение вашего SSH подключения.
  • Постоянное сбрасывание терминала: Если вы замечаете, что проблема повторяется, рассмотрите возможность создания скрипта для автоматизированного сброса терминала перед выполнением критически важных операций.

Заключение: Ваша ситуация с усечённым терминалом на Solaris, по всей вероятности, связана с неправильной передачей настроек терминала через SSH. Использование ssh -t solaris10 помогает в большинстве случаев, так как это гарантирует правильную коммуникацию между клиента и сервера. Убедитесь, что все настройки переменных окружения и параметры stty соответствуют нужной конфигурации, и корректируйте настройки по мере необходимости.

Оцените материал
Добавить комментарий

Капча загружается...