我想从 bash 脚本发出一个命令来清除它正在运行的终端:
- 我不想清除 bash 历史记录 (history -c)
- 我不想发出清除命令(将终端向下移动到最后一个提示符,给人一种终端已被清除的印象,但如果你向上滚动,以前的输出仍然可见)
- 我想完全删除我终端上的所有先前输出,并将其清理干净,就像我打开一个新终端一样
谢谢。
答案1
尝试printf '\033c'
。这会向终端发送一个转义序列,通常会清除所有内容,包括回滚缓冲区。
答案2
clear
确实会清除终端屏幕。我猜你是从图形界面访问终端,因此你实际上是在使用控制台的界面,而不是实际的控制台。此界面会自动“保存”你的输出历史记录(向上滚动时看到的内容)。在真正的控制台(无图形界面)中,你不能直接向上滚动。在这种情况下,终端只是一个保存控制台输出日志的程序。
如果您打开一个新的终端窗口并关闭当前窗口,您将从一个新的窗口开始。(您也可以通过转到终端 -> 重新初始化并清除来手动重新初始化)
在桌面环境中运行的终端:
没有桌面环境的控制台:
答案3
除reset
答案外还描述了另一种清除终端的方法。
答案4
一个选项可能是查看是否可以在禁用回滚的情况下启动终端。例如,xterm -sl 0
将启动一个具有 0 个 saveLines 的 xterm。请参阅手册文件:
-sl number
This option specifies the number of lines to save that have
been scrolled off the top of the screen. This corresponds to
the saveLines resource. The default is 64.