完全清除终端窗口输出(甚至提示文本)?

Gar*_*ain -2 prompt gnome-terminal

我在一台 linux 机器上,我需要的是一个 sh 脚本/命令,以便能够从终端窗口中删除所有内容(甚至显示为 PS1 变量的内容)并删除滚动功能。

基本上我需要一个空白终端,您只能在其中看到程序的输出并且无法滚动。就像nano命令所做的那样。

我尝试了各种方法,如clearresettput resetecho -en \\ec但所有这些方法(尽管清除了几乎所有内容)都使提示文本完好无损,这是我不想要的。我也不需要能够在终端中向上或向下滚动。

一个解决方案可能是打印一些相当于终端高度的换行符,但这样我就可以向上滚动并最终看到提示文本,因此结合禁用滚动/滚动条可能是一个解决方案,但是我不知道该怎么做,即便如此,我也不认为这是一个“干净”的解决方案。

谢谢。

Jde*_*eBP 6

所有这些 [...] 保持提示文本完好无损

不真实。他们都清除了屏幕(其中一些 - 当心! - 做的不仅仅是这些)。然后你的 shell 出现,在它们完成运行后,并打印另一个 prompt。如果您希望程序在清晰的屏幕上运行,您应该在交互式 shell 提示输入另一个命令行之前,在运行clear命令的同一命令行或脚本中运行它。

清除 ; some_program

nano命令有什么作用

nano属于全屏 TUI 程序类,与mclessnvim、等程序并列tin。这些程序所做的是使用 termcap/terminfo 数据库来获取用于将终端切换到光标寻址模式和从光标寻址模式切换的控制序列,它们在启动和拆除用户界面时将这些控制序列发送到终端。通常,终端处于滚动模式

对于某些终端类型,在幕后切换到光标寻址模式会切换到备用屏幕缓冲区,并且备用屏幕缓冲区没有回滚,因此没有滚动条小部件。并非所有终端类型都保证此行为,因为并非所有终端类型甚至都有备用屏幕缓冲区。

进一步阅读