相关疑难解决方法(0)

回滚和回滚缓冲区究竟是什么?

什么是“回滚”,并在节目像“滚动缓冲区”bashscreen,以及它们如何涉及到TTY,正在运行的程序,标准输入/输出/标准错误?

这是迄今为止我发现的“回滚”的唯一定义(在archlinux wiki 中):

回滚是在文本控制台中实现的一项功能,它允许用户返回查看已滚出屏幕的文本行。这是通过在视频适配器和显示设备之间为此目的创建的缓冲区实现的;回滚缓冲区。

但是,这给我带来了更多的问题:

  • 它的意思是“子程序”中的“功能”还是“功能”中的“功能”?
  • 此回滚缓冲区是否有 Unix 标准或 API?
  • 在程序的“堆栈”中,例如在终端模拟器vimscreen启动的bash启动中ssh启动,这些程序中的哪些正在控制回滚缓冲区?

我也用screen,以转储回溯到一个文件中。这个文件的顶部有很多空白,我的终端模拟器显示的“视图”似乎只是缓冲区底部的几行。

  • 这就是为什么像这样的程序vim可以“清除”我的整个终端窗口,因为它可以临时访问父 shell 的回滚缓冲区?
  • 还是vim使用它自己的回滚缓冲区,该缓冲区以某种方式覆盖在父回滚缓冲区之上?

shell terminal buffer tty scrolling

29
推荐指数
1
解决办法
2万
查看次数

清除脚本中的全屏并在退出脚本后获得之前的提示

今天我glance在办公室使用工具监控CPU利用率。当我glance从终端运行时,命令会清除屏幕,完成所有工作后,当我退出终端时,之前的提示仍然在我的屏幕上。我的意思是我可以看到前面的所有行。我的问题是这种清除屏幕的效果是如何实现的。如果他们使用了类似的命令clear,它应该清除了整个屏幕,他们是如何设法取回所有以前的提示的?我想为我的一些脚本实现相同的功能。

同样使用vi命令时,屏幕被完全占用,退出后,我们也可以查看以前的提示。

command

7
推荐指数
1
解决办法
640
查看次数

如何保存/恢复终端输出

一些程序如 vim/nano/nload 可以使用整个终端来显示其内容,并且在退出时恢复之前的终端输出。他们如何实施这个恢复过程?

terminal

6
推荐指数
1
解决办法
1846
查看次数

我如何像 htop 或 emacs 那样使用整个终端?

我想编写一个程序,可以像 htop 或 emacs 一样在终端中“绘制”。我的意思是“摆脱提示并使输出取决于终端的当前大小”。

为了更清楚地说明这一点:

我想以这种方式使用终端:

在此处输入图片说明

而不是这种方式:

在此处输入图片说明

bash io gui terminal

6
推荐指数
1
解决办法
2048
查看次数

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

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

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

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

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

谢谢。

prompt gnome-terminal

-2
推荐指数
1
解决办法
79
查看次数

标签 统计

terminal ×3

bash ×1

buffer ×1

command ×1

gnome-terminal ×1

gui ×1

io ×1

prompt ×1

scrolling ×1

shell ×1

tty ×1