每当我从 Windows 机器连接到 Ubuntu 服务器时,在安装在 Windows Subsystem for Linux 中的 Ubuntu 内部,终端的行为都非常奇怪。
这听起来可能很疯狂,但每当尝试编辑包含破折号 (-) 或 (+) 或类似特殊字符的行时,终端似乎就会变得混乱,并且无法正确插入新文本。
我来给你展示:
我不知道该怎么办,但是这确实让我发疯。
更多细节。
本地计算机:
$echo "$PS1"
\[\033]0;:/home/said\007\]\n\[\033[32m\]\u@\h \[\033[35m\] \[\033[33m\]\w\[\033[36m\]\[\033[0m\]\n$
$locale
LANG=en_US.UTF-8
LANGUAGE=
LC_CTYPE="en_US.UTF-8"
LC_NUMERIC="en_US.UTF-8"
LC_TIME="en_US.UTF-8"
LC_COLLATE="en_US.UTF-8"
LC_MONETARY="en_US.UTF-8"
LC_MESSAGES="en_US.UTF-8"
LC_PAPER="en_US.UTF-8"
LC_NAME="en_US.UTF-8"
LC_ADDRESS="en_US.UTF-8"
LC_TELEPHONE="en_US.UTF-8"
LC_MEASUREMENT="en_US.UTF-8"
LC_IDENTIFICATION="en_US.UTF-8"
LC_ALL=
远程计算机:
: echo "$PS1"
\[\033[38;5;2m\]\h\[\]\[\033[38;5;29m\] \[\]\[\033[38;5;11m\]\w\[\]\[\033[38;5;15m\]\n: \[\]
: locale
LANG=en_US.UTF-8
LANGUAGE=
LC_CTYPE="en_US.UTF-8"
LC_NUMERIC="en_US.UTF-8"
LC_TIME="en_US.UTF-8"
LC_COLLATE="en_US.UTF-8"
LC_MONETARY="en_US.UTF-8"
LC_MESSAGES="en_US.UTF-8"
LC_PAPER="en_US.UTF-8"
LC_NAME="en_US.UTF-8"
LC_ADDRESS="en_US.UTF-8"
LC_TELEPHONE="en_US.UTF-8"
LC_MEASUREMENT="en_US.UTF-8"
LC_IDENTIFICATION="en_US.UTF-8"
LC_ALL=
当我进入 WSL(Ubuntu 16.04)-> SSH ->(Ubuntu 16.04)(尝试了两个不同的 Ubuntu 主机)时会发生这种情况,但当我例如从我的 Mac 通过 SSH 进入同一台服务器时不会发生这种情况。
答案1
TERM=xterm-color
这与在远程主机上使用有关。将其更改为可TERM=xterm-256color
缓解此问题。