假设我正在运行一个输出大量内容的脚本。在运行到一半时,我想清除输出,这样如果我向上滚动,就只能看到在该点之后创建的输出。
在 Mac OS X 终端上,我可以使用 Command-K,但 Ubuntu 终端似乎没有等效的命令。
以下是我的发现:
clear && echo -en "\e[3]"
发送重置和清除整个窗口,但这需要我能够访问 bash 提示符- Control-L 清除当前内容,但在进程运行时似乎不起作用和它只会向下滚动窗口并且不会清除以前的内容。
我目前正在使用 Windows 子系统 Ubuntu 安装附带的默认终端。我可以向终端发送任何命令来强制重置所有内容吗?
或者,是否有支持此功能的第三方终端 - 理想情况下还提供其他优势,如标签和改进的文本复制/粘贴?
答案1
听起来问题在于一些命令/脚本输出了一些你不关心的东西,还有一些你做关心。
我对 Windows 了解不够多,无法回答“如何通过按键清除终端会话”,但我对 Linux 总体了解足够多,可以就“如何使输出更具可读性”提出一些建议。
您是否考虑过以下“标准 Linux”方法来解决该问题?
A)记录输出
your_command >> output.txt
这使得输出更加永久,您还可以制作 output1.txt、output2.txt 等,看看是否有一些变化达到了您想要的效果。
bash 中的运算符>>
将改变命令/脚本的输出从控制台到您正在处理的目录中的文件。(如果您希望它在特定位置,也可以指定路径)
更好的是,如果您编写了或者可以编辑脚本,您可以设置脚本中的日志记录以将输出组织到带有时间戳的文件名等的相关文件中。
B) 管道输出
your_command | less
如果您预计不需要引用输出的多个“版本”,也不希望在将来知道输出,那么这样做会更好。
在 less 程序中,你可以跳转到你关心的文本。(在 less 中搜索就是/
你的搜索词)