¿Cómo borro el historial del terminal Gnome?


59

Cuando usamos el clearcomando o Ctrl+ Len la terminal, borra la terminal, pero aún podemos retroceder para ver los últimos comandos utilizados. ¿Hay alguna manera de limpiar completamente la terminal?


Depende de la terminal, y ninguna de las respuestas aborda eso.
Thomas Dickey

Respuestas:


69

Puedes usar tput reset.

Además resety tput resetpuedes usar el siguiente script de shell.

#!/bin/sh
echo -e \\033c

Esto envía caracteres de control Esc-Ca la consola que restablece el terminal.

Palabras clave de Google: Secuencias de control de la consola de Linux

man console_codes dice:

La secuencia ESC c provoca un reinicio del terminal, que es lo que desea si la pantalla está totalmente confusa. El "echo ^ V ^ O" frecuentemente aconsejado solo hará que G0 sea actual, pero no hay garantía de que G0 apunte a la tabla a). En algunas distribuciones hay un reinicio del programa (1) que simplemente hace "echo ^ [c". Si su entrada de terminfo para la consola es correcta (y tiene una entrada rs1 = \ Ec), entonces "tput reset" también funcionará.


1
¿Cuál es la diferencia entre reset y tput reset?
Toothrot

tput resetes más rápido que reseten Ubuntu 16.04, al menos
Iván Rodríguez Torres

55
-1, aún puedes ver el búfer si te desplazas hacia arriba
João Pimentel Ferreira

15

Puede usar el resetcomando, que restablecerá la configuración del terminal.


15

Sé que estás en una terminal de gnomos, pero pensé que respondería con un consejo para otros que podrían estar (como yo) en una Mac:

Si está utilizando Terminal.appo iTerm.appluego Control+Lse desplazará hacia arriba para que el terminal se vea en blanco, pero en Cmd+Krealidad restablecerá el terminal / borrará el retroceso.

O bien, si puede configurar las preferencias de teclado para su terminal, puede asignar algo como Ctrl+Kingresar echo -e \\033ccomo se mencionó anteriormente.


2
Cmd+Kes todo lo que quería ty
Gaurav Gandhi

9

La respuesta de Anthon funciona en KDE Konsole, pero no en urxvt. En urxvt, he estado usando reset durante algunos años para borrar el desplazamiento (junto con todas las otras cosas que hace), y no estaba satisfecho de que no funcionara en Konsole. Así que ahora para Linux tengo un nuevo alias:

alias allclear='clear; echo -e "\033c\e[3J"'

Pero no funciona en OS X.

tput reset no funciona en ningún contexto AFAICT.

En KDE Konsole, ctrl- shift- kborra el desplazamiento hacia atrás (incluido el indicador de shell actual, por lo que está completamente vacío). En iTerm o el terminal de Apple en OS X, cmd- shift- ktambién borra el desplazamiento hacia atrás. Para agregar esta función a urxvt, agréguela a ~ / .Xresources:

urxvt*keysym.C-S-K: command:\033c

Esta respuesta es la respuesta que a cualquiera que use Linux Bash le encantará si espera el mismo resultado que recibiría en una Mac presionando el comando + K. Seguí adelante y convertí esto en un comando independiente al agregar la siguiente función en la parte inferior de /etc/bash.bashrc (luego cierre sesión en el servidor, vuelva a iniciar sesión y funcionará mediante el comando allclear): allclear(){`echo" Borrando terminal y desplazando hacia atrás ... "` `sleep 1.5`` clear; echo -e "\ 033c \ e [3J" ` }` Editar: No se puede hacer que el formateo funcione. Si alguien puede editar esto para que sea legible, lo agradecería.
KLaw

3

Encontré esto en la red hace años, y funciona bien para mí. Borra completamente la terminal sin historial de desplazamiento.

echo -e "\e[3J"

2

Mapeé F12para borrar la pantalla en cada una de las siguientes conchas: bash , csh y fish shell . Mi comando es diferente de todos los anteriores porque conserva todo lo que ya ha escrito en la línea actual.
(Nota: todas las configuraciones a continuación dependen de la terminal, pero espero que funcionen prácticamente en todas partes)

golpetazo

Abra el archivo ~/.inputrce inserte la siguiente línea:

"\e[24~": "\C-k \C-uecho -ne '\\ec\\e[3J'; history -d $((HISTCMD-1))\n\C-y\C-?"

Para tener disponible el nuevo enlace de teclas, abra un nuevo terminal o escriba Ctrl+ y Xluego Ctrl+ Rpara volver a cargar el archivo .inputrc en el terminal actual.

Explicación
El archivo ~ / .inputrc controla las asociaciones de teclas del terminal bash.

Acerca de la línea:

  1. La primera parte de la línea "\e[24~", asigna la clave F12.
  2. El C-k( Ctrl+ X) borra el anillo de eliminación (memoria de copia y pasado de bash).
  3. El espacio evita un pitido en el siguiente comando.
  4. El C-u( Ctrl+ U) envía la línea actual al anillo de eliminación y la borra.
  5. El echo -ne '\\ec\\e[3J'; history -d $((HISTCMD-1))\nenvía dos comandos agrupados al terminal. Están separados por ;y terminados por \n.
    • El echo -ne '\\ec\\e[3J'borra la pantalla.
    • El history -d $((HISTCMD-1))evita estos dos comandos de entrar en la historia.
  6. El C-y( Ctrl+ Y) pega el anillo de matar almacenado por el C-ucomando.
  7. El C-?( Ctrl+ ?) es equivalente Backspacey elimina el espacio insertado en el paso 3 anterior.

Referencias

csh

Escriba el comando a continuación.
bindkey -c "^[[24~" "echo -ne '\ec\e[3J'"
También se puede insertar en su .cshrcarchivo para cargar el enlace de clave a cada nuevo terminal.
(Sí, es mucho más simple que en bash)

concha de pescado

Escriba el comando a continuación.
bind -k f12 "echo -ne '\ec\e[3J'; commandline -f repaint"
Puede editar y guardar la función fish_user_key_bindingspara cargar el enlace de teclas a cada nueva terminal.
(Sí, es mucho más simple que en bash)


2

[Ubuntu 16.04]

El archivo .bash_history se crea en el directorio de inicio del usuario una vez que se cierra el terminal

Es útil, pero puede eliminarlo si lo desea. Sin embargo, se creará cada vez que termine de usar el terminal.

Puede eliminarlo manualmente desde:

  • Su navegador de archivos.

  • el terminal: recuerde que se creará un nuevo archivo .bash_history cuando cierre el terminal (basado en su configuración predeterminada).

O puede llamar a una función personalizada si guarda la funcionalidad que necesita en un archivo vinculado desde el bashrc ... podría editar el bashrc en sí mismo si desea poner su código allí, pero los siguientes ejemplos están en un archivo separado

Honestamente, esto no es útil para mí, pero si desea eliminar el historial de comandos antes de salir, puede hacer esto:

.bash_custom #este es mi archivo personalizado

blotout() {
    HISTSIZE=0
    rm $HOME/.bash_history
    exit
}

luego en la parte inferior de agregar el nombre y la ruta de mi archivo
.bashrc # este es el archivo de configuración para el bash (creo)

# existent code
#...
#..

# import user customizations
source $HOME/.bash_custom

y eso es todo.

PERO, para hacer exactamente lo que quiere , solo necesita esta función en su archivo personalizado y vincularlo:

refresh() {
        tput reset
        H=HISTSIZE
        HISTSIZE=0
        HISTSIZE=H
}

O simplemente coloque la función en el .bashrc si lo desea, pero de esa manera probablemente necesite una declaración de exportación después de la función, no estoy seguro y si el archivo se actualiza probablemente perdió sus funciones ... No estoy seguro de eso también: D.
Recuerde que debe reiniciar el terminal cuando edite el .bashrc o su archivo 'personalizado'.


1

Para mí, usando PuTTY contra CentOS 7, clear deja solo el comando clear en el desplazamiento hacia atrás, pero al ejecutar "clear && clear", dos instancias del comando clear al mismo tiempo, borra completamente el desplazamiento hacia atrás y me deja sin barra de desplazamiento. Trata eso. Es una solución extraña, pero ninguno de estos aquí borró el desplazamiento hacia atrás de manera efectiva, y esto lo hace.


0

Se agregó a ~/.inputrcpara vincular la compensación completa a F12:

"\e[24~":'!echo -ne \047\\0033\\0143\047\r'

0

En Fedora 30, la eliminación del historial se realiza eliminando el archivo $ HOME / .bash_history. La forma más fácil de borrar el archivo de historial del terminal a través del teclado es:

  • Presione Alt+ F4para cerrar cada ventana de Terminal GNOME, recorriendo las ventanas mediante Alt+ Tabo Alt+ Shift+ Tabsegún sea necesario. (Todas las ventanas de terminal deben cerrarse porque el archivo .bash_history se crea o actualiza cuando se cierran).
  • Presione Alt+ F2.
  • Escriba nautilusy presione la Entertecla para abrir la aplicación Archivos (GNOME) (que anteriormente se conocía como Nautilus).
  • Presione Ctrl+ Hsi es necesario para mostrar los archivos ocultos.
  • Escriba .bash_history(que debe aparecer en la barra de búsqueda si se escribe inmediatamente después de abrir la ventana; de lo contrario, se puede acceder a la barra de búsqueda mediante Ctrl+ L).
  • Presione la tecla de flecha hacia abajo para seleccionar el archivo, que debería ser el único resultado de búsqueda.
  • Presione Shift+ Deletepara eliminar permanentemente el archivo. (Si utiliza la Deleteclave no modificada , el archivo .bash_history seguirá siendo accesible a través de la carpeta Papelera).

-2
cat /dev/null > ~/.bash_history && history -c && exit

Lo menos que puede hacer es explicar y formatear su respuesta.
Paradoja

(1) No está claro que el OP quiera eliminar la memoria (historial) del shell de comandos anteriores (la pregunta es sobre el terminal ). No puede verlo, pero history -cse ha presentado en dos respuestas anteriores, y se eliminaron por no ser las respuestas correctas a la pregunta. (2) Si bien cerrar la ventana del terminal (probablemente) borrará la memoria del terminal de comandos anteriores, está lejos de ser evidente que el OP quiere hacer eso. ... Y PS. exitNo se garantiza que un solo comando cierre la ventana del terminal.
G-Man dice 'Reincorporar a Monica'
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.