Ubuntu

無法通過 ssh 輸入字母“e”

  • June 7, 2015

現在,我正在管理的 Ubuntu 14.04.2 LTS 伺服器上遇到一些非常非常奇怪的行為。

通過 ssh 從 cygwin(mintty) 或 Linux 機器上的終端連接到伺服器,我無法輸入字母e

我做了以下調試:

  • e可以在遠端伺服器上用vim輸入字母
  • 字母e可以在本地機器上的終端中輸入
  • $TERM設定為xterm
  • $LANG,$LANGUAGE$LC_ALL設置為de_DE.utf8
  • locale charmap返回UTF-8

現在,我完全不知道是什麼原因造成的。

對於如何解決這個問題的一些建議,我會很高興。

我的問題與can’t type lower caseed e in amazon ec2 (Amazon Linux)不同,但類似。

在檢查/etc/inputrc並沒有發現任何異常之後,我記得我確實在/etc/bash.bashrc. 不過,這已經存在了很長時間並且完美無缺。為什麼現在會出問題?

我檢查時發現/etc/bash.bashrc

由於所有文件都是使用 ansible 管理的,因此該命令也已使用 ansible 插入:

- name: Up Arrow Command Search
 lineinfile: dest=/etc/bash.bashrc line="bind '\"\e[A\"':history-search-backward"

- name: Down Arrow Command Search
 lineinfile: dest=/etc/bash.bashrc line="bind '\"\e[B\"':history-search-forward"

顯然,最近的 ansible 更新改變了 lineinfile 的行為,因此該命令導致

bind \e[A:history-search-backward
bind \e[B:history-search-forward

代替

bind '"\e[A"':history-search-backward
bind '"\e[B"':history-search-forward

因此導致了奇怪的行為。

非常感謝Eric Renouf,因為他連結到了另一個有類似問題的問題!

引用自:https://serverfault.com/questions/697205