Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ssh/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
欧洲货币联盟+;ssh清除控制台历史记录_Ssh_Conemu - Fatal编程技术网

欧洲货币联盟+;ssh清除控制台历史记录

欧洲货币联盟+;ssh清除控制台历史记录,ssh,conemu,Ssh,Conemu,我使用的是ConEmu,我对它非常满意,除了这样一个事实:如果我使用PuTTY进行SSH访问,我可以在远程机器上运行命令,比如vim、nano、mcedit或其他打开某种curses界面的命令,我可以看到控制台命令的历史记录,但是当我使用CygWin SSH client或OpenSSH for Windows时,在运行vim/nano/mcedit/whates之后,我再也看不到命令历史记录了 当我退出这些程序时(vim中的:wq,mcedit中的Esc键,nano中的Ctrl^X),我可以看

我使用的是ConEmu,我对它非常满意,除了这样一个事实:如果我使用PuTTY进行SSH访问,我可以在远程机器上运行命令,比如vim、nano、mcedit或其他打开某种curses界面的命令,我可以看到控制台命令的历史记录,但是当我使用CygWin SSH client或OpenSSH for Windows时,在运行vim/nano/mcedit/whates之后,我再也看不到命令历史记录了

当我退出这些程序时(vim中的:wq,mcedit中的Esc键,nano中的Ctrl^X),我可以看到前面执行的所有命令,如下所示(如果我使用PuTTY):

  • 运行PuTTY并连接到某个主机
  • 你会在历史上看到类似的事情:
    主机$whoami
    用户
    主机$vim
    …在vim中执行某些操作,然后按:wq
  • 你应该看到这一点:

    ===切割===
    主机$whoami
    用户
    主机$vim
    主机$
    ===切割===

    前面的所有命令(whoami)都是可见的。但是,如果我运行ConEmu,然后从CygWin使用SSH客户端(或OpenSSH客户端,没关系),则会发生以下情况:

  • 运行ConEmu
  • sshuser@somehost 主机$whoami
    用户
    主机$vim
    …在vim中执行某些操作,然后按:wq
  • 现在屏幕是空的!没有历史!你可以看到:

    ===切割===
    主机$
    ===切割===

    好像没有人被处决。mcedit、nano或任何其他类似“屏幕”的程序也会发生同样的情况。在Midnight Commander中使用Ctrl-O也会发生同样的情况,在PuTTY中,一切都很好,但是当在ConEmu(或OpenSSH Windows客户端)中使用CygWin的ssh并运行Midnight Commander时,每个Ctrl-O只会显示一个空的历史记录。好像以前什么都没打过似的。那真的一点也不好


    有什么办法可以解决这个问题吗?

    PuTTY.exe的标准
    术语
    环境变量是
    xterm
    ,这主要适用于Cygwin
    ssh.exe
    。但是,
    ssh.exe
    的一个更好的
    术语是
    cygwin

    当您使用Cygwin
    ssh.exe
    连接到另一个系统时,Cygwin将处理转义序列,而不是ConEmu。事实上,无论您是在ConEmu内部还是外部运行
    ssh.exe
    ,都会得到相同的行为。因此,这个问题实际上与ConEmu无关,至少与它的ANSI处理器无关

    解决方案是将
    cygwin
    用于远程系统上的
    术语
    环境变量。事实上,SSH客户端和服务器会自动为您完成这项工作。但是,可能是您在
    .bash\u配置文件中意外地用say
    xterm
    覆盖了提供的
    TERM
    变量。在这种情况下,退出编辑器后恢复屏幕缓冲区的转义序列对于Cygwin ANSI处理器来说是不正确的

    您可以执行此测试以检查这是否解决了您的问题:

    $ export TERM=xterm
    $ vim
    $ # the screen before is cleared
    $ export TERM=cygwin
    $ vim
    $ # the screen buffer is restored