Introducción
La history
command en Linux es una herramienta de shell integrada que muestra una lista de comandos utilizados en la sesión de terminal. history
permite a los usuarios reutilizar cualquier comando de la lista sin volver a escribirlo.
En este tutorial, le mostraremos cómo el history
funciona el comando y diferentes formas de usarlo.
Requisitos previos
- Un sistema que ejecuta Linux.
- Una cuenta con privilegios de sudo.
- Acceso a la ventana de terminal.
Cómo usar el comando de historial de Linux
Uso del history
comando sin opciones muestra la lista de comandos utilizados desde el inicio de la sesión de terminal:
history
Para mostrar la lista del historial de comandos con un número limitado de entradas, agregue ese número al history
dominio. Por ejemplo, para mostrar solo las últimas cinco entradas, use:
history 5
Una vez que cierra la terminal, el shell Bash guarda las nuevas entradas del historial de comandos en .bash_history archivo.
Usar marcas de fecha y hora
El .bashrc El archivo almacena la configuración del shell Bash. La modificación de este archivo le permite cambiar el formato de salida del history
comando.
Abra el .bashrc archivo usando un editor de texto como Nano:
sudo nano .bashrc
Para cambiar el formato de salida para incluir la fecha y las marcas de tiempo, agregue la siguiente línea a .bashrc archivo:
export HISTTIMEFORMAT="%c "
Usando diferentes argumentos después de HISTTIMEFORMAT
le permite personalizar el nivel de detalle en la marca de tiempo:
%d
:Día%m
:Mes%y
:Año%H
:Hora%M
:Minutos%S
:segundos%F
:Fecha completa (formato Y-M-D)%T
:Hora (formato H:M:S)%c
:Fecha completa y marca de tiempo (formato Day-D-M-Y H:M:S)
Guarde los cambios en .bashrc archivo, reinicie la terminal y ejecute el history
comando para confirmar el nuevo formato de salida:
history
Ver el tamaño del búfer de historial
El .bashrc El archivo contiene dos entradas que controlan el tamaño del búfer de historial:
HISTSIZE
:El número máximo de entradas para la lista de historial.HISTFILESIZE
:El número máximo de entradas en el .bash_history archivo.
Editando el HISTSIZE
y HISTFILESIZE
valores cambia la forma en que el shell de Bash muestra y guarda el historial de comandos.
Por ejemplo, cambiando el HISTSIZE
valor a 10
hace la history
lista de comandos muestra un máximo de 10 entradas más recientes.
Guardando los cambios en .bashrc archivo, reiniciando el terminal y ejecutando el history
El comando confirma el nuevo formato de salida:
history
Repetir un comando
Ejecutando el history
El comando le permite reutilizar cualquiera de los comandos de la lista. Por ejemplo, para ejecutar el primer comando (sudo apt update
) de nuevo, use:
!1
Agregar un guión (- ) antes de que el número de comando inicie el conteo desde el final de la lista. Por ejemplo, para reutilizar el décimo último comando (history 5
), usa:
!-10
Use signos de exclamación dobles para repetir el último comando:
!!
Buscar un comando por cadena
Agregar una cadena después del signo de exclamación ejecuta el último comando que comienza con esa cadena. Por ejemplo, para reutilizar el último comando que comienza con sudo
, usa:
!sudo
El uso de este método puede causar problemas si el shell ejecuta un comando inesperado, especialmente al buscar un comando que comience con sudo
. Como precaución, agregue el :p
El argumento muestra el comando sin ejecutarlo, lo que le permite revisar el comando y decidir si desea ejecutarlo.
!sudo:p
Para buscar un comando que contenga una cadena, pero que no comience con ella, agregue un signo de interrogación al lado del signo de exclamación. Por ejemplo, para reutilizar el último comando que contiene echo
:
!?echo
En el ejemplo anterior, el shell reutiliza el último comando que contiene el echo
cadena aunque el comando comience con sudo
.
Lista de los comandos coincidentes
Combinando history
y grep
le permite mostrar una lista de comandos que contienen una cadena. Por ejemplo, para enumerar todos los comandos que contienen ufw
, usa:
history | grep ufw
Cambiar el comando ejecutado
Utilice la siguiente sintaxis para cambiar el último comando ejecutado:
^[old string]^[new string]^
Por ejemplo, el ufw
el comando para habilitar el puerto 20 muestra que el puerto ya está habilitado:
sudo ufw allow 20/tcp
Utilice la sintaxis anterior para cambiar el número de puerto de 20 a 22:
^20^22^
Evitar la grabación de comandos en el historial
Para evitar la grabación de comandos en la lista del historial, deshabilite temporalmente la grabación usando:
set +o history
Para volver a habilitar la grabación, use:
set -o history
Borrar historial
Usa el -d
opción con el history
comando para eliminar un comando de la lista de historial. Por ejemplo, elimine el comando número 87 con:
history -d 87
Usa el -c
opción para borrar toda la lista del historial:
history -c
Actualizar el archivo de historial
El shell Bash guarda las actualizaciones en la lista del historial de comandos cuando sale de la sesión de terminal. La history
El comando también le permite guardar cambios mientras está en la sesión de terminal.
Usando el -a
le permite agregar las entradas del historial de comandos de esta sesión a .bash_history archivo:
history -a
Otro método es usar el -w
opción para guardar la lista de historial completa en .bash_history archivo:
history -w