无法在Amazon EC2(Amazon Linux)中键入小写字母e


16

在新的ec2版本上运行几天后,会发生以下情况:

  1. 我登录SSH,一切正常,我进行了编码
  2. 我第二天返回,并登录SSH
  3. 我再也无法输入小写字母e了-输入错误提示音
  4. 我尝试从另一台计算机上SSH,同样的问题
  5. 我重新启动服务器,同样的问题
  6. 我打开nanovie工作正常,只是没有在bashsh
  7. 我终止服务器,创建一个新服务器,从头开始安装,几天后再次发生

真是莫名其妙!我什至从哪里开始进行故障排除?

我的本地计算机设置:

  • Windows XP或7
  • 油灰(最新)或cygwin / openssh

EC2设置

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`

更新

  1. 这对所有用户都不利
  2. 仅在bash中(csh可以正常工作)
  3. 仅在emacs编辑模式下

我创建了一个聊天室来讨论此问题并在解决方案中进行磨练。


1
stty -a在ec2服务器
不稳定

1
/etc/profile、~/.profile或〜/ .bashrc中有什么好笑的吗?您可以求助于其他用户并尝试吗?似乎或者您的键盘字符映射已更改-可能在更新期间?
Thinice 2011年

1
如果reset紧随其后,stty sane问题是否会消失?
voretaq7

1
@ voretaq7-不,但是我不确定从脚本运行它们的含义(显然我不能从CLI运行它们,因为它们包含e:(我的脚本中需要说“这适用于我的炮弹会话”?
加藤

3
还要查找~/.inputrc/etc/inputrc查找损坏的readline键绑定。
谢尔盖·弗拉索夫

Answers:


21

您错误地输入了:

export EDITOR=/usr/bin/emacs

进入你的/etc/inputrc。这将把字母“ e”映射为零。

删除它,你应该没事。


1
非常感谢您的协助!要记住不要让人们在我外出喝酒时编程;(
加藤

5
有人可以解释为什么设置环境变量会破坏字母“ e”吗?
罗素·博罗戈夫

3
/etc/inputrc不适用于环境变量。这是readline读取的特定输入格式。
MikeyB 2015年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.