我正在使用 putty 通过 SSH 连接到 Mac,如果我尝试使用 pico、nano 或 vi 编辑文件,我会得到类似如下的输出:
[username]$ pico textEdit.txt
←)0←7←[?47h←[1;24r←[m←[4l←[?1h←=←[?1h←=←[?1h←=←[?1h←=←[H←[2J←[22B←[7m^G←[m Get Help ←[7m^O←[m Write
←[1B←[7m^X←[m Exit←[6C←[7m^J←[m Justify ←[7m^W←[m Where Is ←[7m^V←[m Next Page ←[7m^U←[m UnCut Tx
t ←[7m^T←[m To Spell ←[22;35H←[7m[ New File ]←[m←[H←[7m GNU nano 1.2.4 File: textEdit.txt ←[1;52H←[m
我可以更改 putty 或命令提示符的任何设置以正确显示输出吗?(我还没有找到)
编辑:我使用 plink 打开隧道,如果我以常规方式打开 putty,它就可以正常工作
我见过许多使用 GUI 编辑器而不是 Putty 的解决方案,但我宁愿使用基于 shell 的编辑器进行快速编辑。
答案1
您没有使用 PuTTY。您使用的是plink
。这是有区别的。
在 Windows 上,默认控制台的工作方式与 Unix 中的终端不同 - 也就是说,它完全不理解 ANSI 转义序列(并且各种基于控制台的程序使用特殊的 API 函数来定位光标或更改颜色)。
因此,PuTTY.exe 不仅仅是一个 SSH 客户端,它本身也是一个完整的终端仿真器。同样,如果您使用 Cygwin 的ssh
命令,它会使用内部的某种终端仿真层cygwin1.dll
。
同时,plink.exe
它没有任何类似的东西,它只是一个 SSH 客户端。这意味着如果你在 Windows 控制台中运行它,你将总是查看最初发送的原始转义代码,无需任何解释。
有三种可能的解决方案:
plink
在 MinTTY 等终端仿真器中运行;ssh
从 Cygwin安装;用
PuTTY.exe
它做将您连接到 shell;它是一个仅能绘制高级终端功能的 GUI 程序。