Backspace 键不是你通常想太多的东西,但有时你可能会发现它在终端中无法正常工作,尤其是在登录到远程机器时,回显“^H” 而不是删除您输入的内容。
幸运的是,这很容易通过一个简单的命令来解决。
这些奇怪的角色是什么?
当您通过 SSH 登录远程机器时,您可能会注意到这个问题,这些机器运行非 Linux Unix 操作系统,尤其是像 Oracle 的 Solaris 这样的专有系统。 许多较旧的计算机终端使用的 Backspace 控制字符与今天不同,使用“Ctrl + H。”
现代终端使用“Ctrl + ?“ 用于 Backspace。如今,大多数系统将后者识别为 Backspace,因为物理终端已在很大程度上被 PC 上的终端仿真器所取代,但您可能仍会遇到尚未升级的系统并仍期待“Ctrl + H。”
这就是你会看到老 Unix 手在消息中开玩笑地使用“^H”的原因之一,就像人们使用讽刺删除线来表示“糟糕,你不应该看到那个!” 他们可能会说“我喜欢 Linux 系统修改^H^H^H^H^H^H^管理”。
使用 stty 检查终端设置
您可以检查系统使用的控制字符 stty 命令。 这 -一种 flag 将给出控制字符的人类可读输出。
stty -a
寻找“擦除”字符。 如果它显示“^H”,则它使用较旧的退格字符。 幸运的是,您也可以使用 stty 命令解决此问题。
设置擦除字符
您可以使用以下简单命令将擦除字符设置为您的计算机使用的字符:
stty erase '^?'
试试这个,看看 Backspace 键是否正常工作。 你可以把它放在shell的启动文件中,比如 .bashrc 对于 Bash 和 .zshrc 让 Zsh 在您登录系统时自动设置此设置。
与 Backspace 键类似,如果 Tab 在终端中不起作用,您可以使用 stty 命令修复问题。
现在您的退格键在 Linux 终端中有效
现在您已经解决了 Linux 终端中的 Backspace 键问题,您可以真正开始工作了。
如果您使用终端登录远程系统,则可以通过 tmux 和 Mosh 的组合提高工作效率,让您创建可以让您永远保持联系的会话。