如何在Linux下使用向上/向下键启用Android adb shell历史logging?

我最近升级到新的Android SDK,我注意到一些非常非常困扰。 看来在shell中使用命令历史是不可能的。 你注意到了吗? Android的shell对我来说似乎很糟糕,但至less在最后一个SDK中,我有命令历史logging。 现在,按下上/下箭头,导致一些代码写在提示符(如^ [[A,^ [[B等…)。 我试图读一点点,但我发现很less有人问这个零答案。 任何想法为什么会发生这种情况,以及如何解决

Solutions Collecting From Web of "如何在Linux下使用向上/向下键启用Android adb shell历史logging?"

你可以在rlwrap里面运行shell:

rlwrap adb shell 

我宁愿自己在Emacs shell缓冲区中运行它,如果你对Emacs没有过敏,我推荐你这样做。 Emacs对于运行adb logcat也很好:你可以得到一个可search的历史logging,并且消息在它们到来时被更新,并且你可以很容易地把有趣的模式置于颜色中( Mx highlight-regexp和friends)。

如果Ctrlp仍然给你以前的历史条目,那么有可能由于某种原因,方向键变成解除绑定。 尝试这个:

 bind '"\e[A": previous-history' bind '"\e[B": next-history' 

如果这样可以使箭头键工作,可以通过将这两行添加到/etc/inputrc~/.inputrc来使其持久化:

 "\e[A": previous-history "\e[B": next-history 

如果你正在谈论真正的设备(而不是仿真器),你应该尝试一些非官方的固件,如Cyanogenmod – 它包括更好的二进制工具,比如更多function的shell,理智的常规UNIX工具,ssh服务器,等等

如果您正在讨论仿真器,可以从固件中提取这些二进制文件,并按原样(使用存储卡映像)将其推入仿真器。