一、现象
使用 docker 安装了 Ubuntu 16.04 镜像:
docker pull ubuntu:16.04
启动容器并进入终端环境:
docker run -it ubuntu:16.04 sh
不同的 Linux 系统对于 sh 命令执行的 shell 环境不一致,例如上述命令最终执行的是 dash 环境,这时候终端对于键盘操作有不同的响应:
退格键 backspace 变成了 ^H
插入键 insert 变成了 ^[[2~
删除键 delete 变成了 ^[[3~
.......
二、解决方案
这时,只要选择用 bash shell 就可以恢复到正常环境:
或者在启动 docker 容器的时候就指定 bash
docker run -it ubuntu:16.04 bash
三、总结
不同系统默认的 sh 命令执行的 shell 可能不一致,而不同的 shell 环境对于键盘操作的响应不一致。
(还有疑问?联系作者 微博/微信 @Ceelog)