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

長いコマンドは先頭を上書きし、すべてを正しく入力したことを確認できないため使用できません。コンソールに貼り付けた長いコマンドは、ディスプレイが損傷しても機能します。ディスプレイだけが破損していますが、コマンド自体は問題ありません。

私はUbuntu 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また、端末が異常な状態にあると思われる場合は、このコマンドを使用できます。これにより、端末が既知の良好な状態に復元されます。

そのマニュアルページからこれら2つのコマンドを読むことができます。

サイズ変更コマンドがありません。

この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

関連情報