Cómo ocultar el historial de la línea de comandos de Linux de incógnito

Si usted es un usuario de la línea de comandos de Linux, estará de acuerdo en que hay ocasiones en que no desea que ciertos comandos que ejecuta queden registrados en el historial de la línea de comandos. Puede haber muchas razones para ello. Por ejemplo, usted está en una cierta posición en su compañía y tiene algunos privilegios que no quiere que otros abusen de usted. O bien, hay algunos comandos críticos que no desea ejecutar accidentalmente mientras navega por la lista del historial.

Pero hay una manera de controlar lo que entra en la lista de la historia y lo que no? O, en otras palabras, ¿podemos activar un modo de incógnito similar al de un navegador web en la línea de comandos de Linux? La respuesta es sí, y hay muchas maneras de lograrlo, dependiendo de lo que usted quiera exactamente. En este artículo discutiremos algunas de las soluciones más populares disponibles.

Nota : todos los comandos presentados en este artículo han sido probados en Ubuntu.

Diferentes formas disponibles

Las dos primeras formas que describiremos aquí ya han sido cubiertas en uno de nuestros artículos anteriores . Si ya los conoce, puede omitirlos. Sin embargo, si usted no está consciente, se le aconseja que las revise cuidadosamente.

1. Insertar espacio antes del comando

Sí, lo has leído correctamente. Inserte un espacio al principio de un comando, y será ignorado por el shell, lo que significa que el comando no será registrado en la historia. Sin embargo, existe una dependencia – dicha solución sólo funcionará si la variable de entorno HISTCONTROL está configurada como «ignorespace» o «ignoreboth», que es la opción por defecto en la mayoría de los casos.

Entonces, un comando como el siguiente:

[space]echo «this is a top secret»

No aparecerá en el historial si ya has hecho este comando:

export HISTCONTROL = ignorespace

La siguiente captura de pantalla es un ejemplo de este comportamiento.

Cómo ocultar el historial de la línea de comandos de Linux de incógnito

El cuarto comando «echo» no se registró en la historia, ya que se ejecutó con un espacio al principio.

2. Desactivar el historial completo de la sesión actual

Si desea deshabilitar el historial completo de una sesión, puede hacerlo fácilmente desactivando la variable de entorno HISTSIZE antes de empezar a trabajar con la línea de comandos. Para desajustar la variable ejecute el siguiente comando:

export HISTFILE=0

HISTFILE es el número de líneas (o comandos) que pueden ser almacenados en la lista del historial para una sesión de bash en curso. Por defecto, esta variable tiene un valor establecido – por ejemplo, 1000 en mi caso.

Por lo tanto, el comando mencionado anteriormente pondrá el valor de la variable de entorno a cero y, por consiguiente, no se almacenará nada en la lista del historial hasta que cierre el terminal. Tenga en cuenta que tampoco podrá ver los comandos ejecutados anteriormente pulsando la tecla de flecha arriba o ejecutando el comando de historial.

3. Borrar todo el historial después de terminar

Esto puede ser visto como una alternativa a la solución mencionada en la sección anterior. La única diferencia es que en este caso se ejecuta un comando DESPUÉS de haber terminado con todo el trabajo. El siguiente es el comando en cuestión:

historia -cw

Como ya se ha mencionado, esto tendrá el mismo efecto que la solución HISTFILE mencionada anteriormente.

4. Desactivar el historial sólo para el trabajo que realiza

Mientras que las soluciones (2 y 3) descritas anteriormente hacen el truco, borran toda la historia, algo que podría ser indeseable en muchas situaciones. Puede haber casos en los que desee conservar la lista del historial hasta el momento en que inicie el trabajo de la línea de comandos. Para situaciones como estas, necesita ejecutar el siguiente comando antes de comenzar con su trabajo:

[space]set +o history

Nota :[espacio] representa un espacio en blanco.

El comando anterior desactivará el historial temporalmente, lo que significa que cualquier cosa que haga después de ejecutar este comando no se registrará en el historial, aunque todas las cosas ejecutadas antes del comando anterior estarán allí tal como están en la lista del historial.

Para volver a activar el historial, ejecute el siguiente comando:

[Space]set -o history

Esto hace que las cosas vuelvan a la normalidad de nuevo, lo que significa que cualquier trabajo en la línea de comandos realizado después del comando anterior aparecerá en el historial.

5. Eliminar comandos específicos del historial

Ahora supongamos que la lista del historial ya contiene algunos comandos que no quería grabar. ¿Qué se puede hacer en este caso? Es muy sencillo. Puedes seguir adelante y removerlos. Lo siguiente es cómo lograr esto:

[space]history | grep "parte del comando que desea eliminar"

El comando anterior generará una lista de comandos coincidentes (que están en la lista del historial) con un número[num] delante de cada uno de ellos.

Una vez que haya identificado el comando que desea eliminar, simplemente ejecute el siguiente comando para eliminar esa entrada en particular de la lista del historial:

historia -d[num]

>[en inglés

La siguiente captura de pantalla es un ejemplo de esto.

Cómo ocultar el historial de la línea de comandos de Linux de incógnito

El segundo comando’echo’ se ha eliminado con éxito.

Alternativamente, puede simplemente presionar la tecla de flecha hacia arriba para regresar a la lista del historial, y una vez que el comando de su interés aparezca en la terminal, simplemente presione «Ctrl + U» para borrar totalmente la línea, eliminándola efectivamente de la lista.

Conclusión

Existen múltiples formas de manipular el historial de la línea de comandos de Linux para que se adapte a sus necesidades. Tenga en cuenta, sin embargo, que normalmente no es una buena práctica ocultar o eliminar un comando de la historia, aunque tampoco está mal, per se, pero debe ser consciente de lo que está haciendo y de los efectos que puede tener.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *