当命令变得太长时,命令行会覆盖自己

时间:2010-01-08 01:29:31

标签: linux debian putty

我正在使用PuTTY登录Debian服务器。我有一个奇怪的问题,当我输入的命令太长时,它没有环绕并开始一个新行。相反,它从相同行的开头开始,并开始覆盖提示,然后是命令的开头。

该命令运行得很好,但它真的很烦人,我假设有一些设置可以解决这个问题吗?

8 个答案:

答案 0 :(得分:64)

我自己刚刚解决了这个问题。

PS1命令提示符中只有一些颜色转义:

LTGREEN="\033[40;1;32m"
LTBLUE="\033[40;1;34m"
CLEAR="\033[0m"
LIGHT_GRAY="\033[40;1;33m"
export PS1="$LTGREEN\u$LTBLUE@\h:$LIGHT_GRAY\w$CLEAR ❯ "

问题是颜色文字没有括在括号中。在它们周围放置转义括号可以完全解决问题:

LTGREEN="\[\033[40;1;32m\]"
LTBLUE="\[\033[40;1;34m\]"
CLEAR="\[\033[0m\]"
LIGHT_GRAY="\[\033[40;1;33m\]"
export PS1="$LTGREEN\u$LTBLUE@\h:$LIGHT_GRAY\w$CLEAR ❯ "

希望这有帮助。

答案 1 :(得分:12)

当你在另一个命令运行时调整Putty窗口的大小时我看到了这种行为,因为bash没有得到告诉它窗口已经调整大小的信号。

如果这是问题,请添加:

shopt -s checkwinsize

应该让它消失。

答案 2 :(得分:9)

尝试:

eval $(resize)

答案 3 :(得分:7)

尝试按 Ctrl + L 。 (或者 Alt + L - 某事 + L 无论如何。)如果我没记错的话,重新运行代码到弄清楚你的终端尺寸并相应调整。

答案 4 :(得分:2)

Ctrl-l

Ctrl-l有效。

我认为腻子需要

答案 5 :(得分:1)

solution对我有用: 将以下代码段添加到.bashrc

if [ $(tty) == '/dev/ttyS0' ]; then
  trap resize DEBUG
fi

答案 6 :(得分:0)

这个可以帮助我在搜索很多地方后解决这个问题。

PS1='\[\e[0;31m\]\t\[\e[m\]-\[\e[0;32m\]\u\[\e[m\]@\[\e[0;36m\]\h\[\e[m\]:\[\e[0;23m\]\w\[\e[m\e[0;32m\]\$\[\e[m\]'

将每个颜色转义序列括在转义的方括号中。

答案 7 :(得分:-3)

与putty没什么关系,它是一个“bash”主义。

一旦你习惯了它,它非常有用,但是,如果它困扰你,你可以切换到“ksh”,它使用长命令行做一些不同的事情(不确定Debian上的内容!)