Androide

Comando de historial en Linux (bash history)

Como usar el comando history linux

Como usar el comando history linux

Tabla de contenido:

Anonim

, hablaremos sobre el comando de history , que le permite ver una lista de comandos ejecutados previamente, buscar en la lista y manipular el archivo de historial.

Uso del comando de history y expansiones de 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 la history .

En su forma más simple, cuando se invoca sin ninguna opción o argumento, el comando de history muestra la lista de historial completa 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

Al escribir !n ejecuta el comando n-ésimo de la lista del historial, y !-n el comando n se remonta. En el siguiente ejemplo, estamos ejecutando el comando en la línea 467 :

!467

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

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

history | less

Para mostrar las últimas 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, escriba:

history -5

Use las teclas de flecha down up y down para navegar por las entradas de la lista. Cuando se muestre el comando que ha buscado, presione Enter para ejecutarlo.

Escriba !! para ejecutar el comando anterior:

!!

Esto es especialmente útil cuando olvida colocar 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 del historial, ! !-2 penúltimo, y así sucesivamente.

^word1^word2^ expansion le permite volver a ejecutar el último comando reemplazando "word1" con "word2". Si accidentalmente escribió el sduo command lugar del sudo command , puede repetir el comando usando la palabra correcta con:

^sduo^sudo^

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

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 el comando nano setup.py simplemente escriba:

!356

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

(reverse-i-search)`':

El shell mostrará una línea coincidente. Para pasar a la siguiente sugerencia coincidente, presione Ctrl-R nuevamente.

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

Guardar la lista de historial

De manera predeterminada, al comenzar una nueva sesión, Bash lee la lista del historial del archivo .bash_history . 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.

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

history -a

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

history -w

Borrar historial

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

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

history -c

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

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

history -d 365 375

Cuando se usa un entero negativo, las líneas se cuentan desde el final de la lista del historial.

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

history -c history -w

Modificación del comportamiento histórico

El comportamiento del historial de Bash se puede definir utilizando varias variables de entorno diferentes. Al modificar el comportamiento del historial, configure 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. La variable HISTSIZE permite cambiar este valor. Para configurarlo en 10000, agregue la siguiente línea a su archivo .bashrc :

HISTSIZE=10000

La variable HISTCONTROL 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 espacio no se guardan en la lista del historial. ignoredups : los comandos duplicados no se guardan. ignoreboth : es una abreviatura que incluye ignorespace e ignoredups .

HISTCONTROL=ignoreboth

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

Por ejemplo, si configura:

HISTTIMEFORMAT="%F %T: "

El historial se mostrará en el siguiente formato:

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

Conclusión

El comando de history muestra una lista de comandos ejecutados previamente. Por ejemplo, puede usar el historial para ver un comando largo que ha usado antes y que no puede recordar.

terminal de la historia