解释SSH输出

The*_*ise 3 .net c# ssh bash xterm

我正在尝试使用Renci SSHNet库创建一个供我个人使用的SSH客户端,但我完全不确定我应该如何解释终端中已执行命令的输出.

例如,如果我要输入简单的命令,如"ls -l","cd/root"或"dir",输出字符串将按预期显示在我的Windows控制台窗口中.

但是当我试图用"nano"编辑文件或者使用"top"查看cpu/memory使用情况时,基本上任何应该显示静态文本的东西,我都会从ssh主机中得到一堆这样的blob.

?[?1049h?[1;24r?(B?[m?[4l?[?7h?[?12l?[?25h?[?1h?=?[?1h?=?[?1h?=?[39;49m?[39;49m?
(B?[m?[H?[2J?(B?[0;7m  GNU nano 2.2.6                File: test
?[23d^G?(B?[m Get Help  ?(B?[0;7m^O?(B?[m WriteOut  ?(B?[0;7m^R?(B?[m Read File
?(B?[0;7m^Y?(B?[m Prev Page ?(B?[0;7m^K?(B?[m Cut Text  ?(B?[0;7m^C?(B?[m Cur Po
?[24d?(B?[0;7m^X?(B?[m Exit?[14G?(B?[0;7m^J?(B?[m Justify   ?(B?[0;7m^W?(B?[m Wh
ere Is  ?(B?[0;7m^V?(B?[m Next Page ?(B?[0;7m^U?(B?[m UnCut Text?(B?[0;7m^T?(B?[
?[3d Spell
Run Code Online (Sandbox Code Playgroud)

所以我想我的问题是我应该如何解释所有这些?我只需要有人指出我正确的方向.

And*_*gor 5

您需要编写终端仿真程序.欢迎来到Unix终端的怪异.你可能想看看'man terminfo','man termcap'和'man ncurses'来介绍一些东西.

实际上,任何Unix机器上的终端窗口或控制台都可以模拟一个老式的串行终端,它本身就是电传打字机模拟的一层功能.所有这些ESC [?序列是终端请求它做事的命令.其中一些人会期望响应给出窗口大小,大写锁定状态等等.terminfo数据库记录了给定终端类型的所有转义序列(你应该从名为'xterm-color的类型开始) ").