如何删除golang ssh客户端中的颜色代码

如何删除golang ssh客户端中的颜色代码,ssh,go,xterm,Ssh,Go,Xterm,我正在使用golang ssh包构建一个ssh客户端,我将终端模式设置如下 // Set up terminal modes modes := ssh.TerminalModes{ ssh.ECHO: 0, // disable echoing ssh.TTY_OP_ISPEED: 14400, // input speed = 14.4kbaud ssh.TTY_OP_OSPEED: 14400, // output speed = 14.4k

我正在使用golang ssh包构建一个ssh客户端,我将终端模式设置如下

// Set up terminal modes
modes := ssh.TerminalModes{
    ssh.ECHO:          0,     // disable echoing
    ssh.TTY_OP_ISPEED: 14400, // input speed = 14.4kbaud
    ssh.TTY_OP_OSPEED: 14400, // output speed = 14.4kbaud
}

// Request pseudo terminal
if err := session.RequestPty("xterm", 80, 40, modes); err != nil {
    log.Fatalf("request for pseudo terminal failed: %s", err)
}
它工作正常,但有一个小问题,当我使用“ls”命令时,它返回带有颜色代码的名称,如下所示

[root@localhost ~]# ls
ls
anaconda-ks.cfg    [0m[01;34mpeter[0m
[01;32mbuild.sh[0m           [01;34mredis64[0m
这让我觉得读取文件名很困难,那么有没有办法去除文件名周围的颜色代码? 感谢使用“vt220”终端类型

例如:
session.RequestPty(“vt220”,80,40,模式)

具有
ls
不输出颜色:
ls--color=never
?查看的
退出
字段和。这可能是一个解决方案。您声称自己是
xterm
(支持颜色)。可能选择不同的终端类型?服务器是否发送色码取决于两个因素:在
RequestPty
中设置的终端ID以及在服务器上如何解释(或不解释)。i、 e.如果您在服务器上有一个shell init脚本,该脚本设置
ls
以输出颜色,而不管
$TERM
,更改终端ID不会改变任何事情(哦,是的,服务器上的
$TERM
是用您传入的术语ID初始化的
RequestPty
)。因此,除非你真的想要一些交互式的东西,否则我会选择@Volker的解决方案。也许/也许不:似乎不关心传入的是什么类型,并且寻找
RequestPty
的使用示例,我发现没有什么有用的。你不需要使用
NewTerminal
来使用ssh执行命令。这对我没用。有用的是显示如何将“vt220”传递到pty的另一侧并使用。没有这些,我无法区分你的答案和其他答案。