Linux命令重置(1)很慢

时间:2012-10-04 01:01:53

标签: linux

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

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

3 个答案:

答案 0 :(得分: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)

答案 1 :(得分:4)

我跑了strace reset,看到了接近结尾:

nanosleep({1, 0}, 0x7fffe32053e0)       = 0

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

你不应该经常使用reset(只有当全屏程序异常终止,所以它不会重置终端本身),为什么这是一个大问题?

我不确定你的意思是“擦除我的终端缓冲区”。这不是reset的用途。

答案 2 :(得分:0)

如果您只想清除终端缓冲区,可以查看clear(1)命令。

摘自clear(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.
   ...