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
用作控制台應用程序。在伺服器上有Debian GNU Linux 6.0
和 xterm。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
解決方案在這裡
好的,我終於找到了解決方案。問題是
$PS1
沒有用\[
and括起來的顏色序列\]
。更正之前$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
連接到遠端伺服器後,我會嘗試執行命令
resize
。這會將終端設置設置為目前視窗大小。
reset
此外,如果您的終端似乎處於異常狀態,您可以使用命令。這會將您的終端恢復到已知的良好狀態。您可以在它們的手冊頁中閱讀這兩個命令。
調整大小命令失去
該
resize
命令是 xterm 軟體包的一部分,因此如果未安裝此命令,則該命令將不可用。其他要嘗試的事情
如果上述命令都不起作用或不可用,您可以使用命令重置您的 stty 終端
stty sane
。