Ejecutar un comando sin que quede en el historial de Linux

Todos los comandos que ejecutamos desde la consola, quedan registrados en el archivo de históricos el cual se encuentra por defecto en ~/.bash_history para cada usuario (en bash).

Podemos saber cuál es la ubicación y nombre de este archivo mediante:

$ echo $HISTFILE

Para consultarlo, por lo general se utiliza:

$ history

y se puede limpiar mediante

$ history -c

Después de esta introducción, vamos a punto. Si solo necesitamos invocar un comando y que no quede registro de su ejecución basta con agregar un espacio en blanco delante del comando.

$ <ESPACIO>comando

Ejemplo:

$  /etc/init.d/mysqld restart

OBS: existe un espacio adicional delante de la primer barra /

 

Detalles internos

En realidad, este comportamiento depende de la variable HISTCONTROL. Podemos ver su valor mediante:

$ echo $HISTCONTROL

Los valores soportados son los siguientes (se pueden indicar varios separados por coma):

  • ignorespace: los comandos ingresados que comiencen con un espacio, no se guardan en el histórico
  • ignoredups: los comandos ingresados que coincidan con la última línea del histórico, no se registran
    • si se ingresa varias veces consecutivas el mismo comando (duplicado), solo queda registrado una vez
  • erasedups: los comandos ingresados que coincidan con alguna línea del histórico, se registran y se borra la línea existente previamente
    • si se ingresa varias veces, consecutivas o no, el mismo comando (duplicado) solo se deja registro de la última vez
  • ignoreboth: es lo mismo que “ignorespace,ignoredups”
Tagged with:
Publicado en Linux