解释SSH输出

 天亮说晚安 发布于 2023-02-13 15:12

我正在尝试使用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

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

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

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

    2023-02-13 15:14 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有