Вопрос или проблема
Странная ситуация
На 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:
-
Настройки переменной окружения TERM:
- Переменная TERM влияет на то, как терминал обрабатывает команды вывода. Когда вы изменяли переменную
TERM
наdtterm
, это не решило проблему. Возможно, используется некорректный тип терминала. Попробуйте установить переменную наxterm
или на тот тип, который лучше всего соответствует вашему терминалу.
- Переменная TERM влияет на то, как терминал обрабатывает команды вывода. Когда вы изменяли переменную
-
Ошибка в настройках терминала в SSH:
- Учитывая, что проблема возникала исключительно при подключении через SSH, это указывает на то, что настройки терминала не были правильно переданы от клиента SSH на сервер Solaris. Использование команды
ssh -t solaris10
инициирует псевдотерминал, что может решить вашу проблему с отображением, так как она принудительно включает выделение терминала для SSH-сессии.
- Учитывая, что проблема возникала исключительно при подключении через SSH, это указывает на то, что настройки терминала не были правильно переданы от клиента SSH на сервер Solaris. Использование команды
-
Проблемы с настройками
stty
:- Как видно из ваших настроек
stty
, различия между Linux и Solaris касаются различных параметров передачи данных и обработки символов. Убедитесь, что эти параметры корректны и соответствуют вашему оборудованию и программному обеспечению. - Проверьте также, чтобы у вас не было чрезмерного количества параметров, установленных в режимах, таких как
-crtscts
или-ixon
, которые могут влиять на поведение терминала.
- Как видно из ваших настроек
-
Установка шрифтов и разрешение терминала:
- Некоторые терминалы могут неправильно обрабатывать вывод, если шрифты или размеры не соответствуют ожидаемым. Попробуйте изменить размеры окна терминала или шрифт, чтобы убедиться, что это не вызывает проблем с усечением.
-
Кэширование терминала и сброс:
- У вас сработал
reset
, который временно решил проблему. Однако если кэш некоторых данных не очищается, то терминал может снова начать отображать ошибочный вывод. Рассмотрите возможность сброса терминала после определённых операций.
- У вас сработал
Дополнительные предложения и решения:
- Используйте различные эмуляторы терминалов: Попробуйте подключиться с использованием других эмуляторов, если это возможно, для исключения проблем, связанных с конкретным эмулятором.
- Проверьте конфигурации SSH: Обратите внимание на настройки
~/.ssh/config
, где могут находиться параметры, влияющие на поведение вашего SSH подключения. - Постоянное сбрасывание терминала: Если вы замечаете, что проблема повторяется, рассмотрите возможность создания скрипта для автоматизированного сброса терминала перед выполнением критически важных операций.
Заключение: Ваша ситуация с усечённым терминалом на Solaris, по всей вероятности, связана с неправильной передачей настроек терминала через SSH. Использование ssh -t solaris10
помогает в большинстве случаев, так как это гарантирует правильную коммуникацию между клиента и сервера. Убедитесь, что все настройки переменных окружения и параметры stty
соответствуют нужной конфигурации, и корректируйте настройки по мере необходимости.