A medida que paso más y más tiempo en sesiones de terminal, siento que continuamente encuentro nuevos comandos que hacen que mis tareas diarias sean más eficientes. La history
de GNU comando es uno que realmente cambió mi día de trabajo.
La history
de GNU El comando mantiene una lista de todos los demás comandos que se han ejecutado desde esa sesión de terminal, luego le permite reproducir o reutilizar esos comandos en lugar de volver a escribirlos. Si es un usuario de terminal experimentado, conoce el poder de la history
, pero para nosotros los aficionados o los nuevos administradores de sistemas, history
es una ganancia de productividad inmediata.
En primer lugar, la history
el comando no es en realidad un comando. Puede verlo usted mismo buscando el comando en su sistema:
$ which history
which: no history in (/usr/local/bin:/usr/bin:/bin:/usr/games:/usr/local/sbin)
Tu computadora no puede encontrar el history
comando porque es una palabra clave incorporada de su shell. Debido a que está escrito en el shell que está usando, puede haber alguna variación en el comportamiento del historial dependiendo de si está usando Bash, tcsh, Zsh, dash, fish, ksh, etc. Este artículo se basa en la implementación del historial de Bash, por lo que es posible que algunas funciones no funcionen en otros shells. Sin embargo, la mayoría de las funciones básicas son las mismas.
Historia 101
Para ver history
en acción, abra un programa de terminal en su instalación de Linux y escriba:
$ history
Esta es la respuesta que obtuve:
1 clear
2 ls -al
3 sudo dnf update -y
4 history
La history
comando muestra una lista de los comandos ingresados desde que comenzó la sesión. La alegría de la history
es que ahora puedes reproducir cualquiera de ellos usando un comando como:
$ !3
El !3
El comando en el indicador le dice al shell que vuelva a ejecutar el comando en la línea 3 de la lista de historial. También podría acceder a ese comando ingresando:
$ !sudo dnf
Esto solicita history
para buscar el último comando que coincida con el patrón que proporcionó (en este caso, ese patrón es dnf ) y ejecútelo.
Historial de búsqueda
También puedes usar history
para volver a ejecutar el último comando que ingresó escribiendo !!
. Emparejándolo con grep
, puede buscar comandos que coincidan con un patrón de texto o, usándolo con tail
, puede encontrar los últimos comandos que ejecutó. Por ejemplo:
$ history | grep dnf
3 sudo dnf update -y
5 history | grep dnf
$ history | tail -n 3
4 history
5 history | grep dnf
6 history | tail -n 3
Otra forma de acceder a esta función de búsqueda es escribiendo Ctrl-R
para invocar una búsqueda recursiva de su historial de comandos. Después de escribir esto, el aviso cambia a:
(reverse-i-search)`':
Ahora puede comenzar a escribir un comando y se mostrarán los comandos coincidentes para que los ejecute presionando Return o Entrar .
Cambiar un comando ejecutado
También puedes usar history
para volver a ejecutar un comando con una sintaxis diferente. Puedes revisar el historial con history
. Por ejemplo, si quiero cambiar mi comando anterior history | grep dnf
a history | grep ssh
, puedo ejecutar lo siguiente en el indicador:
$ ^dnf^ssh^
El comando se vuelve a ejecutar, pero con dnf
reemplazado por ssh
. En otras palabras, este comando se ejecuta:
$ history | grep ssh
Eliminar historial
Puede llegar un momento en que desee eliminar algunos o todos los comandos en su archivo de historial. Si desea eliminar un comando en particular, ingrese history -d <line number>
. Para borrar todo el contenido del archivo de historial, ejecute history -c
.
El archivo de historial se almacena en un archivo que también puede modificar. Los usuarios de Bash Shell lo encuentran en su directorio de inicio como .bash_history
.
Siguientes pasos
Hay otras cosas que puedes hacer con history
:
- Establezca el tamaño de su búfer de historial en una cierta cantidad de comandos
- Registre la fecha y la hora de cada línea en el historial
- Evitar que ciertos comandos se registren en el historial
Para obtener más información sobre la history
y otras cosas interesantes que puede hacer con él, eche un vistazo a los artículos de Seth Kenlon sobre el análisis del historial, los modificadores de búsqueda del historial y el Manual GNU Bash.
Este artículo se publicó originalmente en junio de 2018 y el editor lo actualizó con información adicional.