linux - Ctrl-p 和 Ctrl-n 在 Docker 下的行为异常

标签 linux bash docker

对于我的生活,我似乎无法弄清楚为什么 ctrl-pctrl-n 在我一直使用的 Docker 镜像下不能像他们应该的那样工作。 ctrl-p 应该像 up 箭头一样工作,但我通常必须按两次才能获得我运行的最后一个命令。它以一种看似随机的方式循环历史。

也许有人可以帮助我理解这一点。

docker run -it buildpack-deps:trusty # run a Linux based image

root@74cbcf321fae:/# ls
bin  boot  dev  etc  home  lib  lib64  ...
root@74cbcf321fae:/# touch hello

如果我在这里按 up,它应该会显示 touch 命令,然后是 ls。 但是,如果我按 Ctrl-p ,第一次什么都没有出现。当我再次按下它时,ls 神奇地出现了。

谁能帮我理解这些。我不能没有 Ctrl-pCtrl-n

最佳答案

看起来这已在文档中被删除(或移动),但它曾经住在这里:https://docs.docker.com/engine/reference/commandline/attach/

编辑:看起来他们在 Configuration Files 中引用了以下内容文档。

从 docker 容器中分离的命令序列是 ctrl-p ctrl-q,即为什么 ctrl-p 不能按预期工作。当你点击 ctrl-p 时,docker 正在等待 ctrl-q,所以什么也没有发生。

您可以使用 docker run 的新 --detach-keys 参数将此序列覆盖为 ctrl-< kbd>p:

docker run -ti --detach-keys="ctrl-@" ubuntu:14.04 bash

$# ls
$# <--- Ctrl-P here will display ls now
$# <--- Ctrl-@ here will detach from the running container

如果需要,您可以将其添加到您的 ~/.docker/config.json 文件中以保留此更改:

{
    ...
    "detachKeys": "ctrl-@",
    ...
}

更多细节可以在这里找到:https://github.com/docker/docker/pull/15666因为我在文档中找不到了。

关于linux - Ctrl-p 和 Ctrl-n 在 Docker 下的行为异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41820108/

相关文章:

linux - 如何在多个文件上使用 find 命令执行 awk 脚本

docker - 在 docker-compose 文件中启用 "progress plain"

docker - kubernetes cassandra运算符错误

java - “Echo”linux 命令无法通过 Java 代码运行

linux - 补充模式

python - 为什么我的代码无法检测到操纵杆上的按钮按下

bash - 检测/避免多次 apt-get/dpkg 安装

linux - 如何在 GNUPLOT 中绘制实时数据?数据来自不断向其记录新数据的文件

ruby - 更新 jekyll 站点

docker build - 避免添加仅在构建时需要的文件