Una de las formas más ideales para simplificar el trabajo en equipos Linux es tener la capacidad de ejecutar las órdenes de una manera casi autónoma. Esto se es posible con un comando especial de las distribuciones Linux llamado “History” o historial, el cual, como ya podemos sospechar, se encarga de guardar comandos en archivo de Linux que hemos ejecutado en la sesión de terminal. Esto nos da la posibilidad de recurrir a estos comandos de nuevo sin que sea necesario ingresarlos de forma manual.
Es un comando muy útil que podemos combinar con ciertos parámetros para ejecutar de nuevo ciertas órdenes o bien para llevar un registro detallado de comandos Linux de cada comando ejecutado en Linux y Solvetic te explicará cómo usarlo de forma efectiva.
A continuación, vamos a ver una recopilación de distintas utilidades que podemos llevar a cabo con el comando History en Linux.
1. Ver o listar historial de comandos en Linux
Es la forma básica de usar este comando ya que para ver todos los comandos en la sesión ejecutando lo siguiente en la terminal. Podemos ver que cada comando que ha sido ejecutado se lista con un identificador.
History
Para ejecutar alguno de estos comandos, usaremos el signo ! seguido del número adecuado, por ejemplo:
!1
2. Buscar comandos en Linux con History
El comando History es versátil, nos permite ejecutar el último comando ingresando los signos !!, a su vez esto se puede combinar con el comando grep con el fin de buscar comandos coincidentes con un patrón de texto.
Por ejemplo, buscaremos todos los comandos que hayan usado el término “update”. Como vemos, sale cada uno con su respectivo identificador.
History | grep Update
Una alternativa es usar la combinación de teclas Ctrl-R con el fin de acceder a una búsqueda recursiva en el historial de comandos, al usar esto la terminal tendrá el siguiente texto. Luego podremos ingresar los criterios de búsqueda deseados.
(reverse-i-search)`':
3. Cambiar un comando ejecutado en Linux
El comando History nos permite ejecutar un comando haciendo uso de una sintaxis diferente, por ejemplo, podemos realizar lo siguiente. Esto cambiará la búsqueda de update a SSH.
^update^ssh^
4. Limpiar el historial de comandos Linux
Sin duda que cuando usamos cientos de comandos el historial nos desplegará un número significativo de línea y muchos de estos comandos no serán necesarios ya, un buen consejo de Solvetic es limpiar el historial ya sea de una línea en particular o bien en su totalidad, las opciones para esto son las siguiente:
- Borrar una línea específica: History -d <número de línea>
- Borrar todo el historial: History -c
5. Ver un número determinado de línea de historial de comandos Linux
Es posible que solo deseemos ver una cantidad determinada de comandos ejecutados, por ejemplo, los últimos 6, para ello ingresaremos lo siguiente:
History 6
6. Repetir un comando que inicie con una cadena en Linux
Vemos que para ejecutar el último comando con History ingresamos !! mientras que para repetir un comando específico ingresamos !# de línea, esto es útil pero también podemos ejecutar comandos que inicien con una cadena, esto se logra con la sintaxis !cadena:
!sudo
7. Editar archivo History en Linux
Por defecto, el archivo del comando History se escribe al momento de cerrar la sesión, esto es algo natural peor si manejamos sesiones SSH donde se excede el tiempo de espera, el historial de esa sesión simplemente desaparecerá, esto se puede evitar escribiendo directamente en el archivo bash_History usando el parámetro -w:
History -w
8. Ejecutar un comando único sin iniciar sesión
Esta es una opción que nos da la posibilidad de ejecutar un comando sin que este sea almacenado en el historial de bash, por ejemplo:
echo "Solvetic"; History -d $(History 1)
9. Ejecutar todos los comandos sin dejar registro en Linux
Es posible que deshabilitemos la variable del comando History con la cual se guarda el registro de los comandos ejecutados, esto hará que todo lo que realicemos no sea grabado, para ello ejecutamos lo siguiente:
echo $HISTFILE unset HISTFILE
10. Ignorar comandos específicos en Linux con History
Será posible indicar una lista de comandos los cuales no se van a registrar en el archivo de historial, para ello usaremos la variable $HISTIGNORE, esta variable no está configurada por defecto, allí simplemente ingresamos lo siguiente:
echo 'export HISTIGNORE="ls:cd"' >> ~/.bashrc
11. Aumentar el tamaño del archivo de historial en Linux
El comando History hace uso de las variables $HISTSIZE y $HISTFILESIZE para el registro de los comandos con una capacidad predeterminada de 1000 y 2000 comandos respectivamente:
Estos valores se almacenan en el directorio /etc/profile y su valor puede ser editado con los nuevos datos al final de la línea ~/.bashrc. Estos cambios serán efectivos en el próximo inicio de sesión.
12. Agregar marcas de tiempo al comando History en Linux
Cuando usamos el comando History solo vemos el comando ejecutado mas no detalles de fecha y hora, con la variable $HISTTIMEFORMA podemos agregar estos valores:
echo 'export HISTTIMEFORMAT="%c "' >> ~/.bashrc
Después de esto cerramos sesión y al usar History veremos lo siguiente:
13. Editar la ubicación del archivo de historial en Linux
Por temas de administración es posible que deseemos cambiar la ruta por defecto del archivo de History la cual es ~/.bash_History, para ello usaremos la variable $HISTFILE así:
echo $HISTFILE su – usuarioCon el uso de History tenemos el control total de todos y cada uno de los comandos que ejecutamos en Linux.