在新的ec2版本上运行几天后,会发生以下情况:
- 我登录SSH,一切正常,我进行了编码
- 我第二天返回,并登录SSH
- 我再也无法输入小写字母
e
了-输入错误提示音 - 我尝试从另一台计算机上SSH,同样的问题
- 我重新启动服务器,同样的问题
- 我打开
nano
或vi
与e
工作正常,只是没有在bash
或sh
- 我终止服务器,创建一个新服务器,从头开始安装,几天后再次发生
真是莫名其妙!我什至从哪里开始进行故障排除?
我的本地计算机设置:
- Windows XP或7
- 油灰(最新)或cygwin / openssh
EC2设置
- Amazon Linux(默认选项)
- node.js
- iptables将端口80转发到端口8003上的节点
- emacs,npm和openssl-devel
没有其他mod
- 这是我的/ etc / inputrc
- 这是我的〜/ .bashrc和〜/ .bash_profile
- 环境的输出
stty -a
我无法输入时的输出e
sh-4.1$ stty -a
speed 38400 baud; rows 30; columns 95; line = 0;
intr = ^C; quit = ^\; erase = ^?; kill = ^U; eof = ^D; eol = <undef>; eol2 = <undef>;
swtch = <undef>; start = ^Q; stop = ^S; susp = ^Z; rprnt = ^R; werase = ^W; lnext = ^V;
flush = ^O; min = 1; time = 0;
-parenb -parodd cs8 -hupcl -cstopb cread -clocal -crtscts -cdtrdsr
-ignbrk -brkint -ignpar -parmrk -inpck -istrip -inlcr -igncr icrnl ixon -ixoff -iuclc -ixany
-imaxbel -iutf8
opost -olcuc -ocrnl onlcr -onocr -onlret -ofill -ofdel nl0 cr0 tab0 bs0 vt0 ff0
isig icanon iexten echo echoe echok -echonl -noflsh -xcase -tostop -echoprt echoctl echoke
为了防止类似问题的发生,我创建了一个脚本(称为sub
),将大写的E转换为小写,然后回显命令。然后,我在反引号中运行它,以e
在命令行上获取它:
#!/bin/sh
echo ${@//E/e}
> `sub Emacs /Etc/profilE`
更新
- 这对所有用户都不利
- 仅在bash中(csh可以正常工作)
- 仅在emacs编辑模式下
我创建了一个聊天室来讨论此问题并在解决方案中进行磨练。
/etc/profile、~/.profile或〜/ .bashrc中有什么好笑的吗?您可以求助于其他用户并尝试吗?似乎或者您的键盘字符映射已更改-可能在更新期间?
—
Thinice 2011年
如果
—
voretaq7
reset
紧随其后,stty sane
问题是否会消失?
@ voretaq7-不,但是我不确定从脚本运行它们的含义(显然我不能从CLI运行它们,因为它们包含
—
加藤
e
:(我的脚本中需要说“这适用于我的炮弹会话”?
还要查找
—
谢尔盖·弗拉索夫
~/.inputrc
并/etc/inputrc
查找损坏的readline键绑定。
stty -a
在ec2服务器