Borrar la salida del terminal del último comando solamente


13

En lugar de pasar cientos de líneas de salida para ver el historial de comandos anterior, ¿se puede borrar la salida del último comando? Por ejemplo, después de ejecutar ls, borre su salida porque ya no la necesita.

EDITAR:

Este no es su habitual clearu ctrl+Loperación. La idea es desplazarse hacia atrás a través del historial buscando la salida de un comando anterior, pero sin tener que desplazarse más allá de una carga de ls, o cat, o sudo apt-get installsalida a menos que realmente lo desee. Puede verse más o menos así:

cat fileIWantToRemember
ls directoryIWantToForget
# some command that wipes the output of ls
# scroll back to see the output of cat immediately

¿Quiere borrar el resultado o eliminar el comando del historial de comandos? Si desea modificar su historial de comandos, ¿tal vez este hilo aborde lo que está buscando?
ernie

El terminal solo muestra una secuencia de texto y almacena algunos en su propio búfer interno. No tiene forma de saber o discriminar entre la salida del comando. El terminal rxvt-unicode tiene un intérprete perl que podría implementar algo como esto. Pero hasta donde yo sé, no está hecho.
Keith

Hace mucho tiempo, usé un emulador de terminal en Mac OS X que tenía esta característica, pero ya no recuerdo cómo se llamaba. Sin embargo, no fue gratis. Sin embargo, mientras hacía una búsqueda rápida en Google, me encontré con finalterm.org , que parece que está tratando de implementar esa característica. Sin embargo, "Final Term está en desarrollo pesado y no es estable ni tiene características completas", así que no lo intenté. Sin embargo, parece interesante. La búsqueda de google, por lo que vale, fueterminal emulator output folding
rici

Final Term está lo suficientemente desarrollado como para plegar comandos (y muchas otras cosas increíbles), y una vez que hay un atajo de teclado para hacer eso, entonces se resuelve el problema. Estaba empezando a pensar que estaba loco ...
nacnudus

1
no es su respuesta exacta, pero en tales casos para ver el contenido de archivos grandes, uso el comando 'menos' en lugar de 'gato'. Otra cosa es que si algún comando da una gran cantidad de líneas como salida a la consola, puede evitarlo escribiendo "$ the-command | less".
Devasar el

Respuestas:


4

Gracias a @rici, este comportamiento se puede llamar "plegable". La salida de los comandos no se olvida, pero puede ocultarla hasta que la necesite nuevamente. El plegado es común en los editores de texto, pero parece ser raro en los emuladores de terminal.

Final Term es un nuevo emulador de terminal que incluye doblar entre muchos otros trucos elegantes. Cuidado: "Final Term está en desarrollo pesado y no es estable ni tiene características completas". Estaba lo suficientemente desarrollado como para plegar mis comandos cuando lo probé, pero demasiado inestable para no bloquearse. Uno para mirar.


0

Creo que estás buscando el comando claro ...

clear

"clear" borra su último comando de la vista. Puede desplazarse hacia arriba en el terminal para verlo nuevamente si es necesario.


El punto es no tener que desplazarse más allá cuando busca en su historial algo más.
nacnudus

¿Quiere decir que desea suprimir la salida del comando? En caso afirmativo, esto puede ayudarlo: stackoverflow.com/questions/617182/…
phe0113

2
Eso es genial si nunca quiero ver la salida. Quiero ver el resultado la primera vez, y luego olvidarlo. Entonces, en el ejemplo que di, quiero inspeccionar la salida de lspor alguna razón, pero luego quiero deshacerme de ella para no tener que seguir desplazándome para encontrar la salida de cat. Obviamente, podría volver a hacer cat, pero puedo imaginar querer retener una secuencia de comandos, y sería bueno no tener que repetirlos todos.
nacnudus

0

En bash, puede presionar el acceso directo Ctrl + Lpara borrar la pantalla, similar al clearcomando. ( http://ss64.com/bash/syntax-keyboard.html )

O bien, puede usar history | tail -3para ver los últimos tres comandos. ( http://www.howtogeek.com/howto/44997/how-to-use-bash-history-to-improve-your-command-line-productivity/ )


Vea mi comentario a @Justin a continuación, el punto no es tener que desplazarse más allá cuando busca otra cosa en el historial. Algo así como HISTCONTROL=ignorespaceen su segundo enlace que puede usar después del hecho sería bueno.
nacnudus

Estoy un poco perdido en lo que quieres lograr. Otro pensamiento, en muchas consolas que usé, generalmente puede usar las teclas de flecha para explorar el historial de comandos en bash, ¿se aplica esto a su situación?
phe0113

¿Mi edición aclara la pregunta?
nacnudus

@nacnudus, sí, entiendo tu punto ahora :)
phe0113

0

Parece que quieres eliminar elementos de tu historial. Para hacer esto, primero deberá habilitar la escritura del historial sobre la marcha, en lugar de cerrar sesión editando su ~ / .bashrc y agregando:

shopt -s histappend; export PROMPT_COMMAND='history -a';'

Luego, para eliminar elementos que puede hacer:

history -d offset, donde offset es la entrada del historial que desea eliminar

Basado en este hilo del foro .


Esto parece eliminarlo del archivo de historial, que es casi la idea correcta, pero ¿puede borrarlo del terminal actual?
nacnudus
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.