Linux命令重置(1)速度较慢

Linux命令重置(1)速度较慢,linux,Linux,控制台命令reset(1)太慢了。在我的机器上,执行需要1秒的时间 为什么会这样?能快点吗?或者,是否有另一个命令可以擦除我的终端缓冲区?我运行了strace reset,并在末尾看到了这一点: nanosleep({1, 0}, 0x7fffe32053e0) = 0 所以它在发送所有终端重置代码后故意等待一秒钟,可能是因为一些终端需要时间来处理所有事情 您不需要经常使用reset(只有当全屏程序异常终止时,它才不会重置终端本身),这有什么大不了的 我不知道你说的“擦除我的终端缓

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


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

我运行了
strace reset
,并在末尾看到了这一点:

nanosleep({1, 0}, 0x7fffe32053e0)       = 0
所以它在发送所有终端重置代码后故意等待一秒钟,可能是因为一些终端需要时间来处理所有事情

您不需要经常使用
reset
(只有当全屏程序异常终止时,它才不会重置终端本身),这有什么大不了的

我不知道你说的“擦除我的终端缓冲区”是什么意思。这不是重置的目的。

重置使用clear、rmacs、rmm、rmul、rs1、rs2和rs3参数调用tput(1)。这会导致tput根据/etc/termcap(对于GNU或BSD tput)或terminfo数据库(对于ncurses tput)中的信息向终端发送适当的重置字符串。当Linux VC开始打印“滑稽的”字符时,这个序列似乎足以重置它们。为了更好地衡量,stty(1)是用sane参数调用的,以尝试返回烹调模式


另请参见clear(1)、stty(1)、tput(1)

如果您只想清除终端缓冲区,可以查看命令

手册页摘录如下:

NAME
   clear - clear the terminal screen

SYNOPSIS
   clear

DESCRIPTION
   clear clears your screen if this is possible.  It looks in
   the environment for the terminal type and then in the 
   terminfo database to figure out how to clear the screen.
   ...

也许这不是重置的目的,但我不知道还有什么其他命令会有同样的效果。不过,谢谢,这解释了为什么它很慢。这是一个大问题,因为我在一些窗口终端模拟器(例如gnome终端)中编程时经常使用
reset
。我通常只需要清除屏幕,还需要清除终端缓冲区。这就解释了为什么在一些发行版上,在一些罕见的情况下,它会在终端中留下垃圾。它清除了屏幕,然后出现了一些终端代码,然后我得到了提示。虽然对我来说这是一个真正的使用问题,但你关闭了我的问题作为离题。即使问重置为什么慢可能有点可笑,问我如何擦除终端缓冲区肯定不是。似乎
tput reset
帮我完成了这项工作,没有延迟。从tput(1):
如果tput由名为reset的链接调用,这与tput reset具有相同的效果。
,在我的主bin文件夹中创建一个从
tput
reset
的符号链接就成功了。谢谢。这并不能回答为什么
reset
很慢的问题。按顺序运行这些单独的
tput
命令速度很快。另一个答案显示,
reset
速度慢的原因是它故意休眠。clear(1)清除终端中可见的字符矩形,而不是整个终端缓冲区。如此明确(1)并不总是足够的