当命令的输出过多而导致终端泛滥时,你会怎么做?

当命令的输出过多而导致终端泛滥时,你会怎么做?

我正在尝试解决一个常见的烦恼:当我通过 SSH 连接到远程服务器时,我经常会做一些事情,这些事情会产生比我预期更多的输出。例如,使用一个结果太过通用的模式来 grep 一个大型日志文件。当垃圾滚滚而来时,我坐在那里按 ^C,希望我记得将管道连接到 less。到目前为止,我最好的想法是尝试将我的 shell 配置为始终分页输出,我问另一个问题除此之外,我只有不太理想的解决方案:

  • 耐心等待输出完成
  • 训练自己总是少用管道
  • 使用更大的管道和更快的盒子以便输出更快

你做什么工作?

答案1

尝试使用屏幕。 http://www.gnu.org/software/screen

您可以切换到另一个 shell 并在输出完成时继续处理其他工作,并且还有一个额外的好处,即如果您没有监视它,输出将不会发送到您的远程链接。

还支持屏幕上的缓冲区回滚,因此您可以在完成后翻页或搜索输出。

如果您不使用屏幕,^C 没有响应并且您确实需要终止作业,您可能需要尝试“~。” (默认 ssh 中断)来终止 ssh 会话。您可能需要在输入“~”之前按回车键。

答案2

除了您提到的 3 个建议之外,您可以尝试 ^Z,然后终止该进程并修复它。

答案3

更聪明地工作.. 使用屏幕。管道更少。仔细检查您正在运行的命令.. 注意细节。

如果您确实需要混合正则表达式 foo,请在本地测试命令。

您提到再次登录是一个问题,请使用 ssh 密钥和密钥管理代理。

相关内容