我使用 PuTTY 通过 SSH 连接到我的 Linux 服务器。今天我注意到,当我输入超出屏幕右侧的长命令时,文本不会换行到下一行,而是从屏幕左侧的同一行开始,覆盖字符的顶部。我搞不清楚是什么原因导致了这种情况。有人能指点一下是什么原因导致的,以及如何解决?我在 PuTTY 中最初勾选了自动换行模式。
我没有对该服务器的 PuTTY 设置进行任何更改,因此不知道为什么它停止正常工作。
答案1
提交问题后,我仔细想了一下,在 Google 上进行了另一次搜索,结果基本解释了这个问题:
我喜欢的 PS1 字符串是:PS1='\e[0;32m[\u\e[m@\h \W]\$ '
但这包含非打印字符(改变用户名颜色的 \e 部分)。我需要使用 转义这些非打印字符\[
。以下方法解决了该问题:
PS1='[\[\e[0;32m\]\u\[\e[m\]@\h \W]\$ '
输出结果如下:
[username@hostname cwd]$
用户名是绿色。
我已编辑了 PS1 行,以便普通用户的用户名显示为绿色,但如果 su 到 root,root 将显示为红色(\e[0;31m
如果您感兴趣的话)。我想因为我这样做了,所以我没有输入任何长命令...