我正在使用PuTTY登录Debian服务器。我有一个奇怪的问题,当我输入的命令太长时,它没有环绕并开始一个新行。相反,它从相同行的开头开始,并开始覆盖提示,然后是命令的开头。
该命令运行得很好,但它真的很烦人,我假设有一些设置可以解决这个问题吗?
答案 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上的内容!)