Como usar el comando history linux
Tabla de contenido:
- Uso del comando de
history
y expansiones de historial - Guardar la lista de historial
- Borrar historial
- Modificación del comportamiento histórico
- Conclusión
, 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.
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:
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 incluyeignorespace
eignoredups
.
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.
Eliminar selectivamente parte de su historial de navegación
Un lector anónimo quiere borrar pistas que muestran que ha visitado ciertos sitios web, pero sin borrar todo su historial de navegación .
Comando de fuente bash
El comando de origen lee y ejecuta comandos del archivo especificado como argumento en el entorno de shell actual. Source es un shell integrado en Bash y otros shells populares utilizados en los sistemas operativos Linux y UNIX.
Cómo usar el comando linux sleep para pausar un script bash
Sleep es una utilidad de línea de comandos que le permite suspender el proceso de llamada por un tiempo específico. En este tutorial, le mostraremos cómo usar el comando de suspensión de Linux.