GNU/Linux >> Tutoriales Linux >  >> Linux

Comando de historial en Linux (Bash History)

Si pasa mucho tiempo en la línea de comandos, ver el historial de los comandos que ha ejecutado anteriormente puede ser una característica útil que puede facilitar su trabajo diario y mejorar su productividad.

En este artículo, hablaremos sobre la history comando, que le permite ver una lista de comandos ejecutados anteriormente, buscar en la lista y manipular el archivo de historial.

Usando el history Expansiones de comando e historial #

history es un shell incorporado, y su comportamiento puede diferir ligeramente de un shell a otro. Cubriremos la versión incorporada de Bash de history .

En su forma más simple, cuando se invoca sin ninguna opción o argumento, el history El comando muestra la lista completa del historial con números de línea.

history
...
467  git push
468  tail -f var/logs/error
469  nano +22,5 functions.sh
470  source project-env/bin/activate
471  history

Escribiendo !n ejecuta el comando n-th de la lista de historial y !-n el comando n líneas atrás. En el siguiente ejemplo estamos ejecutando el comando en la línea 467 :

!467

Otra forma de ejecutar un comando es usar !word expansión. word se refiere al comando más reciente que comienza con 'palabra'.

Normalmente, history muestra muchas líneas de salida que no caben en la pantalla. Para ver la salida una página a la vez, canalícela a un programa buscapersonas como more o less comando:

history | less

Para mostrar el último n líneas, pase el número como argumento al comando. Por ejemplo, para ver solo las últimas cinco líneas de la lista del historial, escribiría:

history -5

Usa el up y down teclas de flecha para navegar por las entradas de la lista. Cuando se muestre el comando que buscaste, presiona Enter para ejecutarlo.

Escribe !! para ejecutar el comando anterior:

!!

Esto es especialmente útil cuando se olvida de anteponer un comando con sudo , y en lugar de volver a escribir el comando, puede escribir:

sudo !!

!-1 es lo mismo que !! y ejecuta el último comando de la lista de historial, !-2 penúltimo, y así sucesivamente.

^word1^word2^ La expansión le permite volver a ejecutar el último comando reemplazando "palabra1" con "palabra2". Si accidentalmente escribiste sduo command en lugar de sudo command puedes repetir el comando usando la palabra correcta con:

^sduo^sudo^

Usa el grep comando para filtrar la salida. Por ejemplo, para ver todos los comandos, incluido "nano", ejecutaría:

history | grep nano
302  sudo nano /etc/resolv.conf
356  nano setup.py
413  sudo nano /etc/hosts
469  nano +22,5 functions.sh

Ahora, si desea volver a ejecutar nano setup.py comando simplemente escriba:

!356

Otra forma de buscar en el historial de comandos es presionando Ctrl-R . El mensaje cambiará a lo siguiente y podrá comenzar a buscar un comando ejecutado anteriormente.

(reverse-i-search)`':

El caparazón mostrará una línea coincidente. Para pasar a la siguiente sugerencia coincidente, presione Ctrl-R de nuevo.

Consulte el manual de Bash para obtener más información sobre la expansión del historial, los modificadores y los designadores.

Guardando la Lista de Historial #

De forma predeterminada, al iniciar una nueva sesión, Bash lee la lista de historial de .bash_history expediente . La lista de comandos que se ejecutan en la sesión actual se guardan en la memoria y se guardan en el archivo cuando se cierra la sesión.

Si abrió varias sesiones de shell, solo se guarda el historial de la última sesión que se cerró.

El -a La opción le permite guardar la lista del historial de sesión actual en .bash_history archivo:

history -a

El -w La opción escribe la lista de historial completa en el archivo de historial.

history -w

Historial de limpieza #

La history El comando le permite borrar la lista completa del historial o eliminar ciertas partes.

Para borrar la lista del historial, use -c opción:

history -c

Para eliminar una línea o líneas específicas entre las posiciones inicial y final de la lista del historial, use -d opción.

Por ejemplo, para eliminar las líneas entre 365 y 375 (incluidas esas líneas), escribiría:

history -d 365 375

Si proporciona solo un número al -d opción, el comando elimina la línea dada.

Cuando se usa un número entero negativo, las líneas se cuentan hacia atrás desde el final de la lista del historial.

Los comandos anteriores borran la lista del historial, que se mantiene en la memoria, pero no elimina las entradas del .bash_history archivo en el disco. Para borrar el archivo, debe escribir la lista de historial en el archivo:

history -chistory -w

Modificación del historial de comportamiento #

El comportamiento del historial de Bash se puede definir utilizando varias variables de entorno diferentes. Al modificar el comportamiento del historial, establezca las variables en ~/.bashrc o cualquier otro archivo de configuración que se carga cuando el usuario inicia sesión.

Por defecto, Bash mantiene 500 líneas en la lista del historial de comandos. El HISTSIZE variable le permite cambiar este valor. Para establecerlo en 10000, agregue la siguiente línea a su .bashrc archivo:

HISTSIZE=10000

El HISTCONTROL La variable acepta una lista de valores separados por dos puntos que definen cómo se guardan los comandos en la lista del historial:

  • ignorespace - los comandos que comienzan con un espacio no se guardan en la lista del historial.
  • ignoredups - los comandos duplicados no se guardan.
  • ignoreboth - es una abreviatura, que incluye tanto ignorespace y ignoredups .
HISTCONTROL=ignoreboth

Cuando el HISTTIMEFORMAT se establece la variable, Bash antepone una marca de tiempo de ejecución para el comando en cada línea.

Por ejemplo, si establece:

HISTTIMEFORMAT="%F %T: "

El historial se mostrará en el siguiente formato:

413  2019-10-27 21:13:07: sudo nano /etc/hosts

Conclusión #

La history El comando muestra una lista de los comandos ejecutados anteriormente. Por ejemplo, puede usar el historial para ver un comando largo que haya usado antes y que no pueda recordar.

Si tiene alguna pregunta o comentario, no dude en dejar un comentario.


Linux
  1. Cómo usar el comando de historial en Linux

  2. Cómo borrar el historial de Bash en Linux

  3. Comando de historial en Linux explicado en profundidad

  4. Cómo borrar un comando específico del historial de Bash en Linux

  5. comando linux mv

Comando W en Linux

Al mando en Linux

Comando de historial en Linux con ejemplos

Cómo habilitar la marca de tiempo en el historial de Bash en Linux

Comando Df en Linux

Comando de historial en Linux:ver el historial de terminales de Linux