我使用SSH客户端版本3.2.9 SSH到一个Unix服务器。 当我login到服务器时,几个关键function不起作用。 命名为:backspace(^ H取而代之的是shift +退格工作),当我按下<tab>我没有得到build议,〜不把我带回家。
我的home.cshrc,local.login和local.profile在我的主文件夹(当我login)。
以下是在local.profile
$ more local.profile # # Copyright (c) 2001 by Sun Microsystems, Inc. # All rights reserved. # # ident "@(#)local.profile 1.10 01/06/23 SMI" stty istrip PATH=/opt/sunone_apps/Dep/POL/:/usr/bin:/usr/ucb:/etc:. export PATH
一个快速的解决办法是做:
stty erase <backspace>
在哪里,你尝试击退。 在该行的末尾点击进入,从这一点开始,系统将认识到您是退格字符 – 但只会在该会话的长度上保持不变。
这是一个临时的解决办法,因为当你不能退出,改变terminaltypes并重新login时,
通常情况下,这是由于您的terminal无法在远程端识别。 如果你连接到一个旧的Unix或Linux系统,你可能需要改变你的terminaltypes为vt100。
另外,取决于terminal。 在Windows机器上,我使用了MobaXterm,就像一个强大的腻子版本。 当你创build一个会话(保存或没有),你有一个“terminalsttings”选项卡,有一个选项发送CTRL H作为退格 。 取消选中此选项。 你可以在会议期间做这个,而不必重新启动会议,或者不用生成CSR等等。
这也是你可以改变你的terminaltypes(如xterm或vt100等)的地方。
我不知道“SSH客户端3.2.9”,但大多数SSH客户端让你指定你的退格键是否会发送^ H(退格)或^? (DEL)。 你的问题是当你使用前者时你正在使用后者。
在Putty中,您可以在configuration文件的键盘选项下更改已保存的configuration文件。 在您的客户端中查找类似的configuration选项,或者切换到Putty。
来自@oo的build议。 重新执行stty erase <backspace>会告诉您的terminal会话期望SSH客户端发送的任何字符。 解决这个问题是一个更好的解决scheme。
请注意,在stty命令中,您可能必须预先使用Ctrl-V将退格键“转义”,以便按照字面处理。 即使Backspace是删除字符,现代shell(bash / tcsh)也会经常“接受”DEL,只是为了让人们更容易。
永久性修复:我以前见过这样的问题。
以退格为例,远程主机期望某些字符被用作“擦除/退格”,当您在terminal中按下退格键时,terminal程序将向远程主机发送一些字符,如果远程主机预期与由terminal程序发送的字符,你会遇到这个问题。 所以快速修复如下:
在远程主机上运行#stty -a命令,并在输出中find预期的擦除代码。 说擦除= ^ ?. 在terminal中,inputCtrl v并按退格键。 你会看到什么代码发送“擦除”。 说这是^H 在远程主机上,运行#stty erase ^H 您可以像上面一样解决Tab问题。