为什么 bash(或 PuTTY)将两个字符“cd”解释为单个字符“㏅”?

为什么 bash(或 PuTTY)将两个字符“cd”解释为单个字符“㏅”?

我今天通过 PuTTY ssh 进入 CentOS 虚拟机——在我登录并获得 bash shell 后,我尝试cd进入另一个目录,但是我输入的内容的显示有点滞后,然后不是“cd”它显示单个字符“㏅”。我已经按了 Enter 键,所以 bash 幽默地通知我找不到该命令:

在此输入图像描述

之后它cd正确解释了任何进一步的 s 。

经过一番研究,我发现该字符是 Unicode 字符“Square CD”,是CJK 兼容块,旨在提供与东亚字符集的兼容性,具体而言,该字符代表 SI 单位坎德拉,发光强度的基本单位,我觉得这很棒。

无论如何,不​​知道如何重现这一点。我尝试了几次重新登录并快速输入“cd”,但每次都正确解释。

我的 PuTTY 版本是:(PuTTYTray p0.67-t029我想我应该更新)

输出uname -aLinux xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx 3.10.0-1062.9.1.el7.x86_64 #1 SMP Fri Dec 6 15:49:49 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux

bash 版本是:GNU bash, version 4.2.46(2)-release (x86_64-redhat-linux-gnu)

不确定发生“翻译”的地方是 bash 还是 PuTTY,甚至不知道为什么会发生......我想一定有某种功能,其中与单个字符的含义相对应的多个字符以某种方式“折叠” “进入单身……?或者其他的东西? 'c' 和 'd' 的 2 个字节也不会组合成 '㏅'(我检查过!)(尽管如果它们真的组合在一起那就太酷了)

无论如何,如果有人可以解释我很想知道!

相关内容