Linux命令重置(1)很慢

ncc*_*ccc 7 linux

控制台命令reset(1)是,我觉得太慢了.在我的机器上,执行需要1秒的待机时间.

为什么是这样?可以快速制作吗?或者,是否有另一个命令可以擦除我的终端缓冲区?

Bar*_*mar 7

我跑了strace reset,在接近尾声时看到了这个:

nanosleep({1, 0}, 0x7fffe32053e0)       = 0
Run Code Online (Sandbox Code Playgroud)

所以它在发送完所有终端重置码后故意等待一秒钟,可能是因为某些终端需要时间来处理所有内容。

你不应该reset经常使用(只有在全屏程序异常终止时,所以它不会重置终端本身),为什么这有什么大不了的?

我不确定“擦除我的终端缓冲区”是什么意思。那不是reset为了什么。

  • 也许这不是 `reset` 的用途,但我不知道还有什么其他命令可能具有相同的效果。不过,谢谢,这种解释了为什么它很慢。 (3认同)
  • 这很重要,因为我在某些窗口终端仿真器(例如 gnome-terminal)中编程时经常使用“reset”。我经常需要清除我的屏幕,但也要一直擦除终端缓冲区。 (2认同)

小智 5

使用clear,rmacs,rmm,rmul,rs1,rs2和rs3参数重置调用tput(1).这会导致tput根据/ etc/termcap(对于GNU或BSD tput)或terminfo数据库(对于ncurses tput)中的信息向终端发送适当的重置字符串.这个序列似乎足以在Linux VC开始打印"看起来很滑稽"的字符时重置它们.为了获得良好的衡量标准,stty(1)会使用理智的参数调用,以尝试恢复熟化模式.

另见clear(1),stty(1),tput(1)

  • 似乎`tput reset`为我完成了这项工作,没有任何延迟. (3认同)