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:
$ historialEnumerará 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 nPor ejemplo, para enumerar los últimos 7 comandos ejecutados, el comando sería:
$ historial 7Para 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 -nUn 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 -nPara 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 -nUn 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 -cwPersonalizació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 ~ /.bashrcUna 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 ~ /.bashrc1. 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 $ HISTSIZEDel 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 histappendEl "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 histappendO agregue la siguiente línea, si desea deshabilitar la opción de agregar y desea sobrescribir el archivo al salir:
$ shopt -u histappend4. 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.
- ignora el espacio: elimina los comandos que comienzan con una lista del historial del espacio.
- ignorar - eliminar comandos duplicados.
- ignoreboth: habilita ignoredups e ignorespace
- erasedups: elimina los duplicados de toda la lista
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: ignoredups6. 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.