Programación BASH

Uso y personalización del historial de comandos de Bash

Uso y personalización del historial de comandos de Bash
El shell bash es el entorno de línea de comandos predeterminado disponible en la mayoría de las distribuciones de Linux. Al igual que en todos los entornos de shell, mantiene un registro de los comandos que el usuario ha ejecutado previamente. Este registro se mantiene y mantiene incluso cuando reiniciamos nuestro sistema.

Es posible que conozca el uso básico del comando history, pero puede hacer mucho más que eso. El historial de bash generalmente se almacena en el archivo ~ /.bash_history. Le permite recuperar y reutilizar el registro almacenado de una manera eficiente para aprovechar al máximo la función de guardado del historial de bash. No solo esto, sino que también puede personalizar y controlar la salida del comando bash de la manera que desee.

En este artículo, explicaremos cómo usar y personalizar eficazmente el historial de comandos de bash para aprovechar al máximo sus funciones.

Hemos utilizado Debian 10 para ejecutar los comandos y procedimientos mencionados en este artículo.

Usando el historial de comandos de bash

1. Ver el historial de bash

Para ver el historial completo de los comandos de shell, puede ejecutar el siguiente comando en la Terminal:

$ historial

Enumerará el historial completo para un usuario específico del archivo de historial almacenado específicamente para ese usuario. Verá todos los comandos comenzando con un número asignado a cada uno de ellos. Enumerará los comandos más antiguos en la parte superior comenzando con el número 1 y los comandos más nuevos en la parte inferior.

2. Búsqueda de la salida del historial

También puede buscar una palabra clave específica en la salida del historial. Empareje el comando history con grep y una palabra clave específica para buscar comandos que coincidan con su palabra clave especificada de la siguiente manera:

$ historial | grep [palabra clave]

Por ejemplo, para enumerar todos los comandos que incluyen la palabra clave "buscar", el comando sería:

$ historial | encontrar grep

3. Ver los últimos n comandos

El comando de historial de forma predeterminada enumera los últimos 1000 comandos ejecutados por un usuario. En caso de que desee enumerar solo un número específico, digamos n número del último comando ejecutado, ejecute el siguiente comando en la Terminal:

$ historia n

Por ejemplo, para enumerar los últimos 7 comandos ejecutados, el comando sería:

$ historial 7

Para ver el número de los últimos n comandos ejecutados que incluyen una palabra clave específica, puede usar la siguiente sintaxis:

$ historial | palabra clave grep | tail -n

Un ejemplo de esto sería ver los últimos 4 comandos ejecutados con la palabra clave "java".

$ historial | grep java | tail -n

4. Ver comandos más antiguos

Para ver el número n de comandos más antiguo, puede usar la siguiente sintaxis en Terminal:

$ historial | cabeza -n

Para ver el número n de comandos más antiguo que incluye una palabra clave específica, use la siguiente sintaxis:

$ historial | grep palabra clave | cabeza -n

Un ejemplo de esto sería ver los 4 comandos ejecutados más antiguos con la palabra clave "java".

$ historial | grep java | head -4

5. Borrar el historial de Bash por completo

Para eliminar todo el historial de bash, ejecute el siguiente comando en la Terminal:

$ historial -cw

Personalización del historial de comandos de bash

Para personalizar el historial de comandos de bash, tendremos que hacer cambios en ~ /.archivo bashrc. Para editar el ~ /.bashrc, use el siguiente comando:

$ nano ~ /.bashrc

Una vez que haya terminado de modificar el archivo, use Ctrl + O y Ctrl + X para guardar y cerrar el editor nano.

Luego ejecute el siguiente comando para aplicar las modificaciones:

$ fuente ~ /.bashrc

1. Agregar fecha y marca de tiempo al historial de Bash

Si desea mostrar la fecha y la marca de tiempo junto con el historial de comandos, puede hacerlo agregando la siguiente línea en ~ /.bashrc:

$ export HISTTIMEFORMAT = '% F,% T'

Ahora ejecuta el historia comando y mostrará el historial del comando con los datos correspondientes y la marca de tiempo.

2. Aumento del tamaño del historial de Bash

Bash por defecto mantiene 500 comandos en la lista del historial. Sin embargo, podemos cambiar este valor usando el valor HISTSIZE.

Para ver el tamaño actual del historial de bash, ejecute el siguiente comando en la Terminal:

$ echo $ HISTSIZE

Del mismo modo, el tamaño predeterminado del archivo de historial de bash es 500. Es el número máximo de entradas contenidas en el archivo histórico.

Para aumentar el tamaño del historial de bash, digamos 10000, agregue las siguientes líneas en ~ /.archivo bashrc:

$ HISTSIZE = 10000
$ HISTFILESIZE = 10000

Para verificar si el tamaño del historial de bash ha cambiado correctamente, ejecute los siguientes comandos en la Terminal:

$ echo $ HISTSIZE
$ echo $ HISTFILESIZE

3. Agregar comandos Bash al archivo de historial

Cuando se cierra una sesión de bash, puede elegir si sobrescribir o agregar los comandos en el archivo de historial usando la variable histappend. Para ver la configuración actual, ejecute el siguiente comando en la Terminal:

$ shopt histappend

El "on" en la salida muestra que la opción histappend está habilitada y los comandos se agregarán al archivo de historial en lugar de sobrescribir. Mientras se muestra "off", la opción histappend está deshabilitada y el archivo se sobrescribirá.

Abra el ~ /.archivo bashrc y:

Agregue la siguiente línea, si desea agregar los comandos al archivo de historial en lugar de sobrescribir:

$ shopt -s histappend

O agregue la siguiente línea, si desea deshabilitar la opción de agregar y desea sobrescribir el archivo al salir:

$ shopt -u histappend

4. Almacene el historial de Bash inmediatamente

Bash de forma predeterminada solo guarda la sesión en el archivo de historial de bash una vez que finaliza la sesión. Para cambiar este comportamiento predeterminado y guardar instantáneamente cada comando que ha ejecutado, puede hacer uso de PROMPT_COMMAND.

Edite el ~ /.bashrc y agregue la siguiente línea:

$ PROMPT_COMMAND = 'historial -a'

Ahora, cada vez que ejecute cualquier comando, se agregará inmediatamente al archivo de historial.

5. Controlar el historial de golpes

Podemos controlar la forma en que bash guarda nuestro historial de comandos a través de la variable HISTCONTROL. Podemos especificarlo para ignorar las entradas duplicadas y / o ignorar las entradas con espacios en blanco iniciales.

Para aplicar estas funciones, abra el ~ /.bashrc y agregue la siguiente línea con valores separados por dos puntos de la siguiente manera:

$ export HISTCONTROL = ignorespace: ignoredups

6. Ignorar comandos específicos

También podemos controlar qué comandos ignorar en el historial usando una variable HISTIGNORE. Es una lista de patrones separados por dos puntos en la que podemos especificar todos los comandos que queremos ignorar del historial.

Por ejemplo, si no queremos listar los comandos básicos como history, ls, pwd en la lista del historial, agregamos la siguiente línea en ~ /.archivo bashrc:

$ export HISTIGNORE = "historial: ls: pwd:"

Con el historial de comandos de bash de Linux, puede hacer mucho más que simplemente repetir los comandos antiguos. En este artículo, hemos aprendido cómo usar el historial de bash para ver los comandos que se han ejecutado previamente y también hemos aprendido a controlar la forma en que bash guarda el historial de comandos.

Cómo capturar y transmitir su sesión de juego en Linux
En el pasado, los juegos solo se consideraban un pasatiempo, pero con el tiempo la industria del juego experimentó un gran crecimiento en términos de ...
Los mejores juegos para jugar con el seguimiento de manos
Oculus Quest presentó recientemente la gran idea del seguimiento manual sin controladores. Con un número cada vez mayor de juegos y actividades que ej...
Cómo mostrar la superposición de OSD en aplicaciones y juegos de Linux en pantalla completa
Jugar juegos en pantalla completa o usar aplicaciones en modo de pantalla completa sin distracciones puede aislarlo de la información relevante del si...