Guía completa del comando Linux history

Linux 命令大全Manual completo de comandos Linux

history es un comando integrado extremadamente útil en el sistema Linux, que registra el historial de todos los comandos ejecutados por el usuario en la terminal. Esta función es especialmente valiosa en los siguientes escenarios:

  1. Rastrear operaciones: ver los comandos ejecutados anteriormente
  2. Reutilización rápida: sin necesidad de volver a escribir comandos largos
  3. Solución de problemas: revisar el registro de operaciones del sistema
  4. Mejora de eficiencia: completar rápidamente tareas repetitivas mediante comandos históricos

Cuando escribes comandos en la terminal, Bash los guarda en la memoria y, al salir, los escribe en el~/.bash_historyarchivo (en la configuración predeterminada).


Sintaxis básica y uso

La sintaxis básica del comando history es muy sencilla:

history [选项] [参数]

Formas comunes

1. Ver el historial completo:

history

2. Ver las últimas N entradas:

history 10  # 显示最近10条命令

3. Borrar todo el historial:

history -c

4. Eliminar un registro histórico específico (por ejemplo, eliminar la entrada 1010):

history -d 1010

Explicación detallada de opciones y parámetros comunes

El comando history admite varias opciones útiles:

Opción Descripción Ejemplo
-c Borrar todo el historial history -c
-d Eliminar el historial en la posición especificada history -d 1005
-a Escribir inmediatamente el historial de la memoria en el archivo de historial history -a
-n Leer del archivo de historial los registros no leídos history -n
-r Leer el contenido del archivo de historial en la sesión actual history -r
-w Escribir el historial actual en el archivo de historial history -w

Consejos prácticos y usos avanzados

1. Ejecutar rápidamente comandos históricos

Ejemplo

!n        # Ejecutar el comando n del historial
!!        # Ejecutar el comando anterior
!string   # Ejecutar el comando más reciente que comienza con string

Ejemplo:

Ejemplo

!1024     # Ejecutar el comando número 1024 del historial
!!        # Volver a ejecutar el comando anterior
!vim      # Ejecutar el comando más reciente que comienza con vim

2. Buscar comandos históricos

UsaCtrl+Rpara buscar hacia atrás en el historial de comandos; introduce parte de la palabra clave para encontrar el comando que coincide.

3. Sustitución de comandos históricos

Ejemplo

^old^new  # Reemplazar old por new en el comando anterior y ejecutarlo

Ejemplo:

Ejemplo

$ cat file1.txt
$ ^file1^file2  # Equivale a ejecutar cat file2.txt

4. Mostrar la marca de tiempo de los comandos

En~/.bashrcagrega la siguiente configuración para mostrar la hora de ejecución del comando:

Ejemplo

export HISTTIMEFORMAT="%F %T "

Luego ejecuta:

Ejemplo

source ~/.bashrc

Después de estohistoryel comando mostrará la hora de ejecución de cada comando.


Configuración de variables de entorno

Puedes personalizar el comportamiento del comando history mediante variables de entorno:

Variable Descripción Valor recomendado
HISTSIZE Número de comandos históricos guardados en memoria 5000
HISTFILESIZE Número de comandos guardados en el archivo de historial 10000
HISTCONTROL Controla cómo se registra el historial ignoredups:erasedups
HISTIGNORE Especifica comandos que no se registran "ls:cd:pwd:exit"

Ejemplo de configuración (añadir a~/.bashrc):

Ejemplo

export HISTSIZE=5000
export HISTFILESIZE=10000
export HISTCONTROL=ignoredups:erasedups
export HISTIGNORE="ls:cd:pwd:exit"
export HISTTIMEFORMAT="%F %T "

Escenarios de aplicación práctica

Escenario 1: Recuperar comandos olvidados

Ejemplo

history | grep "apt install"

Escenario 2: Estadísticas de comandos más usados

Ejemplo

history | awk '{CMD[$2]++;count++;} END {for (a in CMD)print CMD[a] " " CMD[a]/count*100 "% " a;}' | grep -v "./" | column -c3 -s " " -t | sort -nr | nl | head -n10

Escenario 3: Respaldar el historial

Ejemplo

history -a  # Asegurar que los comandos más recientes se hayan escrito en el archivo
cp ~/.bash_history ~/command_history_backup_$(date +%F).txt

Precauciones

  1. Privacidad y seguridad: el historial puede contener información sensible (como contraseñas), protéjelo adecuadamente
  2. Problema de múltiples terminales: las sesiones de diferentes terminales no comparten el historial en tiempo real de forma predeterminada
  3. Pérdida del historial: una salida anormal puede hacer que los comandos no se guarden
  4. Manejo de archivos grandes: un archivo de historial demasiado grande puede afectar el rendimiento

Resumen y ejercicios

  1. Revisa tu historial de comandos y encuentra los 5 comandos git más recientes

    history | grep git | tail -5
  2. Configura tu entorno bash para que el historial incluya marcas de tiempo e ignore comandos duplicados

  3. Crea un alias para respaldar rápidamente el historial actual en un directorio específico

    alias backup_history='cp ~/.bash_history ~/history_backups/history_$(date +%Y%m%d_%H%M%S).txt'
  4. Intenta usarCtrl+Rpara buscar algún comando complejo que hayas usado antes

Al dominar el comando history, puedes mejorar significativamente tu eficiencia en la terminal de Linux, reducir la entrada repetida y gestionar mejor el historial de tus operaciones de línea de comandos.

Linux 命令大全Manual completo de comandos Linux

Otras extensiones