如何退格或删除?

How to backspace or delete?

在 Windows 10 中,当我在 windows 启动 MS PowerShell 以通过 Kitematic 中的容器进行 ssh 时,我注意到我无法退格或删除,而是得到 ^H用于退格而不是实际删除前一个字符。

我是不是漏掉了什么?

临时解决方案是在通过 ssh 连接时将 tty erase 命令设置为您在终端中发送的任何退格键。

stty erase ^H

上面的^H序列不是文字,而是按ctrl-v输入的控制字符,然后退格

您可以将此命令添加到 docker VM 上的 .bashrc 文件中,以便在每次连接时自动设置它。在终端中编辑文件时,您必须输入与上述转义序列相同的字符串。

.bashrc 中执行此操作将为 所有 登录 VM 设置 erase,因此您可能会对擦除对其他终端类型的工作方式产生负面影响连接。

您通常会在客户端而不是服务器端修复此问题。 For example, PuTTY has a specific setting for this。我不确定为什么您的 powershell/ssh 组合没有正确映射擦除,因为 Docker 通常开箱即用。在启动 docker/ssh 终端时检查 Docker 快捷方式的作用,并在启动终端以手动连接时执行相同的操作。

接受的答案有效,但我想我要指出的是,如果您启动 bash 而不是留在 sh 中,那么一切都有效,因此只需在 # 提示符下键入 bash 即可将获得您需要的功能。

万一有人在这个后期阶段无意中发现了这个 - 类似情况 - 使用 MS POWERSHELL openSSH 实现。远程进入 AIX/ksh。

必须将 TERM 设置为 vt100(已编辑 .profile)才能让 vi 在不加重的方式:

TERM=vt100  
EXPORT TERM

然后将这一行添加到我的 .profile.

stty erase '^?' echoe

erase '^?' 使用 windows ssh.

提供的退格键

echoe 强制编辑显示在屏幕上。

没有echoe我会输入

3456[backspace][backspace][backspace][backspace][enter]  

 is not recognized as a command

在输入行上 - 每个退格键都附加到带有一个小问号的行。