SSH 콘솔에 잘못된 줄이 표시됨

SSH 콘솔에 잘못된 줄이 표시됨

콘솔에 선을 그리는 데 문제가 있습니다. 문제는 SSH를 통해 서버에 연결할 때 모든 것이 잘 작동한다는 것입니다. 그러나 마지막으로 사용한 명령을 표시하기 위해 위쪽 화살표 키를 사용할 때 일반적으로 $기호 뒤에 몇 개의 문자가 남습니다.

user@host:~$ cd /var/www_vhosts/
user@host:/var/www_vhosts$ ls -la instalator-paczek/
razem 16
drwxrwxr-x  3 root        root       4096 02-20 10:48 .
drwxr-xr-x 13 root        root       4096 05-17 11:11 ..
-rwxrw-r--  1 root        developers 3380 05-29 11:03 instalator-paczek.sh
drwxrwxr-x  2 user developers 4096 05-29 11:03 logi
user@host:/var/www_vhosts$ cd instalator-paczek/
user@host:/var/www_vhosts/instalator-paczek$ nano instalator-paczek.sh 
user@host:/var/www_vhosts/instalator-paczek$ cp -r inst
user@host:/var/www_vhosts/instalator-paczek$ nano /etc/issue
user@host:/var/www_vhosts/instalator-paczek$ uname
Linux
user@host:/var/www_vhosts/instalator-paczek$ uname -a
Linux host 2.6.32-5-amd64 #1 SMP Sun Sep 23 10:07:46 UTC 2012 x86_64 GNU/Linux
user@host:/var/www_vhosts/instalator-paczek$ cat /etc/issue
Debian GNU/Linux 6.0 \n \l
# here I use up arrow key to display last used commands and everything is ok until it show last: "cp -r in..." command
# "cp -r inst" is shown and next last used commands are shown after those 10 characters. I displays them like:
# $ cp -r instls -la
# $ cp -r instcd directory 
# etc.
# I tried using backspace but it clear characters just until "cp -r inst", not even one more
# prompt is shown correctly only after i press enter or ^C
user@host:/var/www_vhosts/instalator-paczek$ cp -r instnano /etc/issue 
user@host:/var/www_vhosts/instalator-paczek$ ls
instalator-paczek.sh  logi

더욱 짜증나는 것은 콘솔 너비보다 더 많은 문자를 입력하면 무슨 일이 일어나는가입니다. 커서는 어떻게든 줄의 시작 부분으로 돌아가서 프롬프트를 덮어씁니다.

/d/asd/as/d/asd/asd/as/d/asd/asdww_vhosts/instalator-paczek$ ls -la asdkasdasdasd/asdasdasd/asdasdasdasdasdas/dasdsdaas/d/asd/as/d/asd/as

긴 명령은 시작 부분을 덮어쓰고 모든 것을 올바르게 입력했는지 확인할 수 없기 때문에 사용할 수 없습니다. 콘솔에 붙여넣은 긴 명령은 디스플레이가 손상된 경우에도 작동합니다. 디스플레이만 손상되었지만 명령 자체는 괜찮습니다.

나는 우분투 12.10을 가지고 있고 그것을 Konsole콘솔 응용 프로그램으로 사용합니다. 서버에 xterm이 있습니다 Debian GNU Linux 6.0.

user@host:/var/www_vhosts/instalator-paczek$ echo $TERM
xterm

이 서버에서만 발생하며 다른 서버에서는 정상적으로 실행됩니다 Konsole.

이 문제를 어떻게 해결하나요?

편집하다

xterm서버에 설치가 없고 크기 조정 명령이 없기 때문에 이러한 오류가 발생할 수 있습니까 ?

user@host:~$ stty -a
speed 38400 baud; rows 57; columns 151; line = 0;
intr = ^C; quit = ^\; erase = ^?; kill = ^U; eof = ^D; eol = <undef>; eol2 = <undef>; swtch = <undef>; start = ^Q; stop = ^S; susp = ^Z; rprnt = ^R;
werase = ^W; lnext = ^V; flush = ^O; min = 1; time = 0;
-parenb -parodd 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
user@host:~$ stty -a
speed 38400 baud; rows 57; columns 172; line = 0;
intr = ^C; quit = ^\; erase = ^?; kill = ^U; eof = ^D; eol = <undef>; eol2 = <undef>; swtch = <undef>; start = ^Q; stop = ^S; susp = ^Z; rprnt = ^R; werase = ^W; lnext = ^V;
flush = ^O; min = 1; time = 0;
-parenb -parodd 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

콘솔 창의 크기를 조정하는 것도 변경되는 것 같습니다 stty.

편집 2

xterm서버에 패키지를 설치했습니다 . 로그아웃했다가 다시 로그인했는데 문제는 여전히 동일합니다. 설치 후 서버를 다시 시작해야 합니까 xterm?

편집 3

해결책여기

답변1

원격 서버에 연결되면 명령을 실행해 봅니다 resize. 그러면 터미널 설정이 현재 창 크기로 설정됩니다.

reset또한 터미널이 비정상적인 상태에 있는 것 같으면 이 명령을 사용할 수 있습니다. 이렇게 하면 터미널이 알려진 양호한 상태로 복원됩니다.

해당 매뉴얼 페이지에서 이 두 명령에 대해 읽을 수 있습니다.

크기 조정 명령이 누락되었습니다.

resize명령은 xterm 패키지의 일부이므로 설치되지 않으면 사용할 수 없습니다.

기타 시도해볼 사항

위 명령 중 어느 것도 작동하지 않거나 사용할 수 없는 경우 명령을 사용하여 stty 터미널을 재설정할 수 있습니다 stty sane.

답변2

좋아, 마침내 해결책을 찾았습니다. 문제는 $PS1및 로 묶인 색상 \[순서가 없다는 것입니다 \]. 수정 전은 다음 $PS1과 같았습니다.

export PS1='\e[1;32m\u@\h:\w$ \e[m'

수리 후:

export PS1='\[\e[1;32m\]\u@\h:\w$ \[\e[m\]'

여기서 해결책을 찾았습니다.https://stackoverflow.com/questions/2024884/commandline-overwrites-itself-when-the-commands-get-to-long

관련 정보