PUTTY: borrar el retroceso desde la línea de comandos

27

Cuando me conecto a mi servidor a través de PuTTY, puedo borrar la pantalla visible con el clearcomando.

Sin embargo, todavía puedo desplazarme hacia atrás en la GUI de PuTTY para ver las cosas viejas. Soy consciente de la función Clear Scrollback de PuTTY , pero eso requiere hacer clic con el mouse.

Me gustaría realizar exactamente la misma operación "Clear Scrollback", pero desde la línea de comandos.

¿Es posible?

Leí este sitio , que parece indicar que sí.

Sin embargo, mis experimentos han fallado. Por ejemplo:

printf '\033[3J'

No hace nada por mi.

Sin CSI 3 Jembargo, es posible que no entienda el significado de ese segundo enlace ...

jwd
fuente
¿Qué versión de PuTTY estás usando? La página indica que la función funciona en PuTTY 0.59 y superior. Tengo PuTTY 0.60 y funciona para mí. Tenga en cuenta que solo borra el búfer de desplazamiento hacia atrás, no borra la pantalla. (Si tengo una barra de desplazamiento que realmente puedo desplazar, entonces use esta secuencia, noto que la barra de desplazamiento se desactiva porque de repente no hay nada disponible para desplazarse. Pero la pantalla que se muestra actualmente permanece en su lugar.)
Bavi_H
@Bavi_H: ah, gracias, no me estaba dando cuenta de que no afectará el texto que se muestra actualmente. Veo que también está funcionando. La solución completa que quiero es clear && printf '\033[3J'. Si respondes, lo aceptaré.
jwd

Respuestas:

32

La CSI 3 Jsecuencia para borrar el búfer de desplazamiento hacia atrás se agregó a PuTTY 0.59. (En la página de solicitud de deseo para esta función, vea la línea "fija" o vaya a la página de cambios de PuTTY y busque CSI 3 J).

Como mencionó jwd, puede ingresar printf '\033[3J'en una línea de comando para enviar esta secuencia al PuTTY. Tenga en cuenta que esto solo borra el búfer de desplazamiento hacia atrás, no borra la pantalla. Si tiene una barra de desplazamiento que realmente puede desplazarse, entonces use esta secuencia, verá que la barra de desplazamiento se deshabilita porque de repente no hay nada disponible para desplazarse. Pero la pantalla que se muestra actualmente permanece en su lugar.

Como mencionó jwd, puede borrar la pantalla y el búfer de desplazamiento utilizando clear && printf '\033[3J'

Bavi_H
fuente
Y para aquellos que buscan una lectura ligera sobre los códigos de control: xfree86.org/4.8.0/ctlseqs.html (: Este se encuentra enCSI P s J
jwd
11

Si está acostumbrado, como yo, a usar Ctrl+Lla Reset terminalopción disponible en el menú del sistema PuTTY, puede que le resulte útil habilitarla Configuration -> Window -> Behavior -> "System menu appears on ALT-Space".

Luego, cuando golpeas Alt+Space, la opción para "Clear scrollback"se activa por L(minúsculas; sin Shift). Por lo tanto, se reset + clearconvierte en la combinación encantadora y mnemotécnica de Ctrl+Ly Alt+Space Lsin ningún tipo de ruido molesto o desorden en su historia de caparazón.

ConfexianMJS
fuente
Funciona y es fácil de recordar :)
Wyrmwood
No está mal, aunque para su información: también puede evitar el desorden en su historial de shell prefijando un comando con un espacio.
jwd
6

Cree un archivo de script y colóquelo en una carpeta incluida en la ruta:

$cat > /usr/local/bin/cls
#!/bin/bash
clear
printf '\033[3J'

Presione CTRL + d para guardar y salir

Cambiar permiso en el archivo:

chmod a+x /usr/local/bin/cls

Ahora puede usar el cmd cls :-)

Mr Calvin
fuente
1

La solución para mí fue transmitir '\ 033 \ 143' caracteres:

printf ("\ 033 \ 143");

Esto borra la pantalla del terminal y vuelve a colocar el cursor en la esquina superior izquierda.

Eschick
fuente
1
(1) La pregunta solicita un comando de línea de comandos (es decir, shell). Este no es un comando de shell, es una línea de código C; como tal, no es una respuesta a esta pregunta. (2) Esta publicación sería un poco más útil si dijeras cuál es el \143personaje y cómo se relaciona con esta pregunta, idealmente con citas.
Scott
1
Para aquellos que se preguntan, esto corresponde al código de escape de "restablecimiento completo" ( ESC c). ASCII ctiene un valor 99que es octal 143. Esto hará muchas otras cosas además de borrar el desplazamiento hacia atrás, solo para tu información.
jwd
1

Hay una opción en masilla donde puede desmarcar el comportamiento predeterminado de desplazamiento hacia atrás. Simplemente desmarque la opción "Insertar texto borrado en el desplazamiento hacia atrás".

Imagen de configuración de masilla

Después de esto, cuando emita el comando clear borrará la pantalla y no colocará el contenido de la pantalla anterior en el desplazamiento hacia atrás.

usuario3133668
fuente