2012-10-04 10 views
7

La consola de comandos reset(1) es, creo que es demasiado lento. En mi máquina, toma 1 segundo de tiempo de pared para ejecutar.Linux comando reset (1) es lento

¿Por qué es esto? ¿Se puede hacer rápido? Alternativamente, ¿hay otro comando que pueda borrar mi buffer de terminal?

+0

cerraste mi pregunta fuera de tema, aunque es un problema real de uso para mí. E incluso si preguntarse por qué el reinicio es lento podría ser un poco gracioso, preguntar cómo puedo borrar el buffer de mi terminal ciertamente no es así. – nccc

Respuesta

5

me corrieron strace reset, y vi esta cerca del final:

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

Así que está esperando deliberadamente un segundo después de enviar todos los códigos de restablecimiento del terminal, probablemente porque algunos terminales necesitan tiempo para procesar todo.

No debería necesitar usar reset muy a menudo (solo cuando un programa de pantalla completa ha terminado anormalmente, por lo que no reinicia el terminal), ¿por qué es esto tan importante?

no estoy seguro de lo que entendemos por "borrar mi memoria intermedia terminal". Eso no es para lo que es reset.

+2

Quizás eso no es para lo que 'reset' es, pero no sé qué otro comando podría tener el mismo efecto. Gracias, sin embargo, este tipo de explica por qué es lento. – nccc

+1

Es un gran problema porque utilizo 'reset' muy a menudo cuando programo en algún emulador de terminal de ventana, p. gnome-terminal. A menudo necesito borrar la pantalla, pero también borrar todo el buffer de la terminal. – nccc

+0

Esto explica por qué en algunas distribuciones, en algunos casos raros, deja basura en la terminal. Borra la pantalla, luego aparecen algunos códigos de terminal y luego aparece el mensaje. –

5

reinicio llama tput (1) con los argumentos, rmacs, claras RMM, rmul, RS1, RS2, RS3 y. Esto hace que el paquete envíe las cadenas de restablecimiento apropiadas al terminal según la información en/etc/termcap (para el tput GNU o BSD) o en la base de datos terminfo (para el nput tput). Esta secuencia parece ser suficiente para restablecer los VC de Linux cuando comienzan a imprimir caracteres "de aspecto extraño". Para una buena medida, se llama a stty (1) con el argumento cuerdo en un intento de volver al modo cocido.

Véase también claro (1), stty (1), tput (1)

+3

Parece que 'tput reset' hace el trabajo por mí, sin demora. –

+0

De tput (1): '' Si tput es invocado por un enlace llamado reset, esto tiene el mismo efecto que tput reset'', creando un enlace simbólico de '' tput'' a '' reset'' en mi contenedor de inicio carpeta hizo el truco. Gracias. –

0

Si lo que desea es limpiar su buffer del terminal, usted podría mirar a la orden clear(1).

Un extracto de la página de manual de 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

borrar (1) borra el rectángulo visible de caracteres en el terminal, no todo el buffer del terminal. Tan claro (1) no siempre es suficiente – porton