2012-10-04 39 views
7

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

这是为什么?它能做得快吗?或者,是否有另一个命令可以清除我的终端缓冲区?

+0

你关闭我的问题是题外话,虽然这是我的一个实际使用的问题。即使询问为什么重置速度很慢可能会有点有趣,但问我如何清除终端缓冲区肯定不是。 – nccc

回答

5

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

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

因此它刻意等待第二发送所有的终端复位代码之后,可能是因为一些终端需要时间来处理一切。

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

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

+2

也许这不是“重置”的目的,但我不知道其他命令可能具有相同的效果。不过谢谢,这种解释为什么它很慢。 – nccc

+1

这很重要,因为在某些窗口终端仿真器中编程时,我经常使用'reset',例如侏儒末端。我经常需要清理我的屏幕,但也一直删除终端缓冲区。 – nccc

+0

这解释了为什么在某些极少数情况下,它会在终端中留下垃圾。它清除屏幕,然后出现一些终端代码,然后我得到提示。 –

5

使用clear,rmacs,rmm,rmul,rs1,rs2和rs3参数重置调用tput(1)。这会导致tput基于/ etc/termcap(对于GNU或BSD输出)或terminfo数据库(对于ncurses输入)中的信息向终端发送适当的重置字符串。当他们开始打印“看起来好看”的字符时,这个序列似乎足以重置Linux VC。为了更好的衡量,stty(1)被调用,并使用相同的参数尝试返回熟化模式。

参见(1)清楚,stty的(1),tput的(1)

+3

似乎'输入重置'为我完成这项工作,毫不拖延。 –

+0

从tput(1):''如果tput被一个名为reset的链接调用,这与tput reset.''的效果相同,在我的home bin创建一个从'tput''到'reset'的符号链接文件夹做了伎俩。谢谢。 –

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. 
    ... 
+1

clear(1)清除终端中可见的字符矩形,而不是整个终端缓冲区。如此清楚(1)并不总是足够的 – porton