En Linux, el comando de historial se puede usar para mostrar la lista de comandos que se han ejecutado recientemente. La variable HISTCONTROL es una lista de valores separados por dos puntos que controlan cómo se guardan los comandos en la lista del historial. La variable HISTCONTROL nos permite almacenar el historial de bash de manera más eficiente. Se puede usar para ignorar los comandos duplicados o los comandos con espacios en blanco iniciales o ambos.
Usos del comando HISTCONTROL:
- Varios comandos se ejecutan varias veces mientras se trabaja en la línea de comandos. El tamaño predeterminado del historial es 500. Por lo tanto, el almacenamiento de varios comandos será un desperdicio de memoria. Aunque el tamaño del historial predeterminado se puede cambiar usando HISTFILESIZE, es favorable para eliminar los duplicados. Esto se puede lograr utilizando HISTCONTROL.
- Cuando no queremos que ciertos comandos aparezcan en el historial, se puede lograr usando la variable HISTCONTROL. Podemos indicarle al historial que ignore el comando dando un espacio en blanco antes del comando.
Trabajando con el comando HISTCONTROL
1. ignoreups: Provoca que no se incluyan líneas que coincidan con la entrada anterior del historial. No agrega un comando al historial si es el mismo que el comando inmediatamente anterior. No parece más atrás en la lista de historial.
HISTCONTROL=ignoredups
El historial posterior a la ejecución de este comando no almacenará un comando que sea igual al comando más reciente utilizado. Considere que los siguientes comandos se agregan en secuencia después de usar ignoreups:
pwd whoami date pwd pwd whoami
Cuando se ingresan dos comandos pwd consecutivamente, el segundo comando se ignora y no se agrega al historial. Pero si el comando inmediatamente anterior no es pwd, no se ignorará.
2. ignorespace: hace que las líneas que comienzan con un carácter de espacio en blanco no se incluyan en la lista del historial. Si no queremos que un comando se incluya en el historial, podemos usar espacios en blanco antes del comando para evitar su inclusión en la lista del historial.
HISTCONTROL=ignorespace
Tenga en cuenta que los siguientes comandos se agregan en secuencia después de usar ignorespace y no queremos incluir el comando de fecha, por lo que se puede agregar un carácter de espacio en blanco antes:
pwd whoami date ls -l | wc -l
Como hay un espacio en blanco antes del comando de fecha, no aparecerá en la lista del historial.
3. ignoreboth: se usa cuando queremos usar tanto ignorespace como ignoreups.
HISTCONTROL=ignoreboth
Es lo mismo que:
HISTCONTROL=ignorespace:ignoredups
El historial no incluirá comandos con espacios en blanco iniciales ni duplicados. Considere que los siguientes comandos se agregan en secuencia después de usar ignoreboth:
whoami pwd pwd pwd
Solo se agrega un comando pwd a la lista del historial, ya que un comando pwd tiene un carácter de espacio en blanco delante de él, mientras que el otro es el mismo que el comando más reciente incluido en la lista del historial.
4. erasedups: permite que todas las líneas anteriores que coincidan con la línea actual se eliminen de la lista del historial antes de que se guarde esa línea. La segunda línea y las siguientes de un comando compuesto de varias líneas no se prueban y se agregan al historial en cualquier caso del valor de HISTCONTROL. Su sintaxis es:
HISTCONTROL=erasedups
El historial después de que se use este comando no almacenará ningún elemento duplicado. Después de ejecutar un comando, lo comparará con otros comandos recientes antes de agregarlo al historial y, si se encuentra la coincidencia, el comando se ignora y no se almacena en el historial. Considere que los siguientes comandos se agregan en secuencia después de usar erasedups:
pwd whoami date ls -l | wc -l pwd whoami
Los comandos whoami y pwd se han usado dos veces, pero no se agregarán al historial dos veces después de que se hayan implementado borrados. La salida se puede ver en la siguiente imagen:
Publicación traducida automáticamente
Artículo escrito por mharshita31 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA