GNU/Linux >> Tutoriales Linux >  >> Linux

Cómo evitar entradas duplicadas en el historial de Bash en Linux

En esta breve guía, aprenderemos cómo evitar entradas duplicadas en el historial de Bash en Linux. Al trabajar desde la línea de comandos, es posible que haya ejecutado algunos comandos de Linux varias veces. Como ya sabes, cada comando que ejecutamos en la terminal se guarda en el archivo de historial. Entonces, ejecutar los mismos comandos una y otra vez llenaría el archivo de historial. Tarde o temprano, terminará con demasiadas entradas duplicadas en el archivo de historial.

De forma predeterminada, se almacenan 500 entradas de comandos en el archivo de historial. En los sistemas Ubuntu recientes, el tamaño del archivo es 1000. Una vez que la cantidad de entradas de comandos superó el límite predeterminado, las entradas más antiguas se eliminarán de la lista del historial. Por lo tanto, no puede recuperar las entradas antiguas. Por supuesto, puede aumentar el tamaño del archivo de historial y guardar tantas entradas como desee. Sin embargo, en lugar de aumentar el tamaño del archivo de historial, es mucho mejor evitar guardar duplicados en el archivo de historial.

Buscar la ubicación del archivo de historial

El historial de comandos es una característica específica del shell que se almacena por usuario. Según el SHELL que utilice, el archivo de historial se guarda en un archivo específico. En los sistemas Linux que usan Bash, los comandos se guardan en ~/.bash_history archivo por defecto. Puede verificar la ubicación del archivo de historial de su shell ejecutando el siguiente comando:

$ echo $HISTFILE

Aquí, HISTFILE es una variable que se utiliza para definir el nombre del archivo en el que se guarda el historial de comandos.

Salida de muestra de mi Ubuntu escritorio:

/home/sk/.bash_history

En CentOS 8 , obtuve el siguiente resultado:

/root/.bash_history
Cambiar la ubicación del archivo de historial

Si desea cambiar la ubicación predeterminada, ejecute:

$ echo "export HISTFILE=~/.custom_file" >>~/.bashrc

Reemplace "~/.custom_file" con el suyo propio en el comando anterior.

Ejecute el siguiente comando para aplicar los cambios:

$ source ~/.bashrc

Ahora veamos cómo evitar guardar los mismos comandos varias veces en ~/.bash_history archivo.

Evite entradas duplicadas en el historial de Bash en Linux

Recuperamos los últimos comandos ejecutados usando el comando "historial". Echa un vistazo al siguiente ejemplo:

$ history | grep ls

Salida de muestra:

    8  lsb_release -a
   13  ls -l
   14  lsb_release -a
   17  ls -l
   20  ls -l
   23  lsb_release -a
   27  ls
   29  lsb_release -a
   32  ls
   36  ls
   42  ls
   44  lsb_release -a
   62  history | grep ls

Como puede ver en el resultado anterior, "ls" El comando se ha grabado varias veces. Podemos controlar estos duplicados usando HISTCONTROL variable. HISTCONTROL puede tener los siguientes valores:

  • ignorar espacio - las líneas que comienzan con un espacio no se guardarán en el historial.
  • ignorados - Las líneas que coincidan con la entrada del historial anterior no se guardarán. En otras palabras, los duplicados se ignoran.
  • ignorar ambos - Es una abreviatura de los valores "ignorespace" e "ignoredups". Si establece estos dos valores en la variable HISTCONTROL, las líneas que comienzan con un espacio y los duplicados no se guardarán.
  • borrados - eliminar duplicados en todo el historial.

Entonces, para evitar entradas duplicadas en el historial de Bash en Linux, edite su ~/.bashrc archivo:

$ nano ~/.bashrc

Agregue la siguiente línea al final:

export HISTCONTROL=ignoredups

Guarde y cierre el archivo. Aquí, anteponemos la variable HISTCONTROL con "exportar". Significa que la variable está disponible para todos los subprocesos. Más detalles, aquí .

Alternativamente, use la siguiente línea:

$ echo "export HISTCONTROL=ignoredups" >>~/.bashrc

Ahora ejecute el siguiente comando para aplicar los cambios:

$ source ~/.bashrc

O cierre sesión y vuelva a iniciarla para aplicar los cambios.

A partir de ahora, las entradas duplicadas no se registrarán. Puede verificarlo ejecutando el mismo comando varias veces y ver la lista de historial usando el siguiente comando:

$ history

También puede establecer varios valores para la variable HISTCONTROL separados por dos puntos, como se muestra a continuación:

export HISTCONTROL=ignoredups:erasedups

Para obtener más detalles, consulte la página de manual de Bash:

$ man bash

Lectura relacionada:

  • Cómo borrar el historial de la línea de comandos en Linux
  • Cómo borrar un comando específico del historial de Bash en Linux
  • Cómo mostrar el historial de Bash sin números de línea

Linux
  1. Cómo usar los comandos del historial de Bash

  2. Cómo borrar el historial de línea de comandos BASH en Linux

  3. Cómo borrar el historial de Bash en Linux

  4. Cómo borrar un comando específico del historial de Bash en Linux

  5. Analizando el historial de Bash en Linux

Cómo montar un archivo ISO en Linux

Cómo usar operadores de prueba de archivos Bash en Linux

Cómo hacer una copia de seguridad y restaurar el historial de la terminal de Linux

Cómo habilitar la marca de tiempo en el historial de Bash en Linux

Cómo vincular un archivo en Linux

Cómo borrar el historial de Bash en Linux y Mac