ssh 强制 tty 返回额外的不可打印字符

ssh 强制 tty 返回额外的不可打印字符

我知道^M会出现在什么时候ssh -t参考文献1,但我不明白ssh -tCentos 7.2 中的情况(即使 Centos 6.2 也可以,但它们的环境变量之间没有区别)。有人知道这个吗?或者可能与参考文献2

$ ssh -t centos72 'echo $HOME' 2>/dev/null|cat -A
^[[?25h^[[0G^[[K^[[?25h^[[0G^[[K/home/user^M$
$ ssh centos72 'echo $HOME' 2>/dev/null|cat -A
/home/user$
$ ssh -t ubuntu1404 'echo $HOME' 2>/dev/null|cat -A
/home/user^M$
$ ssh ubuntu1404 'echo $HOME' 2>/dev/null|cat -A
/home/user$

答案1

这些是终端或 VT100 代码的控制字符。它们用于使你的终端与远程伪终端一起工作,显示你的提示符和其他内容。

来自另一个标签的详细描述那么问题来了以及来自维基百科

  • CSI ?25h:显示光标。
  • CSI n G:将光标移动到列n。(不是 ANSI.SYS)
  • CSI n K:删除部分行。如果 n 为零(或缺失),则清除从光标到行尾的内容。如果 n 为一,则清除从光标到行首的内容。如果 n 为二,则清除整行。光标位置不变。
  • 再次是前两个。
  • ^M:回车符(在行尾)

这些是一些基本的健全性检查,以确保终端已准备就绪。Ubuntu 可能仅在本地终端查询后才发送它们。

相关内容