![bash 中的 ping 命令显示心形字符](https://linux22.com/image/866264/bash%20%E4%B8%AD%E7%9A%84%20ping%20%E5%91%BD%E4%BB%A4%E6%98%BE%E7%A4%BA%E5%BF%83%E5%BD%A2%E5%AD%97%E7%AC%A6.png)
为什么我在 ping 命令后看到一颗心♥
?我正在通过 ConEmu 中的 ssh 连接运行以下命令,看看是否有什么变化。这是预料之中的还是我以某种方式被黑客入侵了?在其他 shell、非 Ubuntu shell(git-bash)上 ping 不会发生这种情况。
$> ping mail.google.com
PING googlemail.l.google.com (74.125.196.18) 56(84) bytes of data.
64 bytes from yk-in-f18.1e100.net (74.125.196.18): icmp_req=1 ttl=46 time=0.991 ms
64 bytes from yk-in-f18.1e100.net (74.125.196.18): icmp_req=2 ttl=46 time=1.00 ms
64 bytes from yk-in-f18.1e100.net (74.125.196.18): icmp_req=3 ttl=46 time=0.993 ms
64 bytes from yk-in-f18.1e100.net (74.125.196.18): icmp_req=4 ttl=46 time=1.06 ms
64 bytes from yk-in-f18.1e100.net (74.125.196.18): icmp_req=5 ttl=46 time=0.957 ms
64 bytes from yk-in-f18.1e100.net (74.125.196.18): icmp_req=6 ttl=46 time=1.04 ms
64 bytes from yk-in-f18.1e100.net (74.125.196.18): icmp_req=7 ttl=46 time=1.01 ms
♥
--- googlemail.l.google.com ping statistics ---
7 packets transmitted, 7 received, 0% packet loss, time 6007ms
rtt min/avg/max/mdev = 0.957/1.008/1.064/0.050 ms
答案1
我正在 ConEmu 中运行命令...,看看是否有什么变化。
它改变了一切。这就是你的终端仿真器呈现发送的字符的方式CtrlC(正文结束,或ETX
,十六进制0x03
)。你可以用 试试printf '\x03'
。如果你觉得烦人,就换一个吧,但我不知道 Windows 上是否有任何模拟器没有这个问题。
答案2
你把一切都搞混了。
ConEmu 是一个终端,但不是 shell。git-bash 是一个 shell。ssh 是一个提供远程连接的控制台工具。
(本地)终端是一种仅显示正在运行的控制台应用程序(shell 和其他工具)的输出的工具。
因此,将 ConEmu 与 git-bash 进行比较是不合常理的。它们是不同类型的工具。您在 ConEmu 中运行什么 shell?这就是问题所在!
但是,如果您在运行 ConEmu ->
git-bash ->
ssh ->
ping时观察到该行为->
CtrlC,则意味着该错误(如果您这么认为)属于您的 ssh 客户端,因为它(并且只有它)将该字符显示/键入/打印到 Windows 控制台。
为了保险起见,请比较一下你的 ssh 行为
a) 普通控制台:WinR ->
“sh.exe -l -i” ->
ssh 等等……
b)从 ConEmu:WinR ->
“ConEmu -basic -cmd sh.exe -l -i” ->
ssh 等等......