meta data de esta página
Diferencias
Muestra las diferencias entre dos versiones de la página.
Próxima revisión | Revisión previa | ||
linux:history [2010/11/18 14:16] – creado lc | linux:history [2023/01/18 14:10] (actual) – editor externo 127.0.0.1 | ||
---|---|---|---|
Línea 1: | Línea 1: | ||
+ | {{tag> | ||
+ | ===== Linux History ===== | ||
Veamos como sacar el máximo partido al histórico de comandos de linux | Veamos como sacar el máximo partido al histórico de comandos de linux | ||
- | * Mostrar el timestamp | + | === Mostrar el timestamp |
+ | normalmente cuando ejecutas history ves el número del comando y el comando propiamente dicho. Para propósitos de auditoría también te puede ser útil ver fecha y hora de cuando se ejecutó el comando. Para hacer esto, hay que setear la variable de entorno HISTTIMEFORMAT. | ||
- | <file> | + | <sxh> |
- | # export HISTTIMEFORMAT=’%F %T ‘ | + | export HISTTIMEFORMAT=’%F %T ‘</ |
- | # history | more | + | Para ver el histórico de comandos |
- | 1 2008-08-19 20:01:01 service network restart | + | <sxh>history | more</sxh> |
- | 2 2008-08-19 20:02:09 exit | + | |
- | 3 2008-08-19 20:08:39 id | + | |
- | 4 2008-08-19 20:11:23 cat / | + | |
- | </file> | + | |
- | * Búsqueda en el history: presionando Ctrl+R puedes buscar en tu history por un comando. Una vez presionado Ctrl+R en el prompt, empiezas a copiar el comando y el shell buscará por un comando que coincida en parte con lo que estás ingresando. Una vez que de con el comando que buscas puedes presionar Enter para confirmarlo o las flechas izquierda o derecha para editar el comando antes de ejecutarlo. | + | |
+ | === Búsqueda en el history === | ||
+ | | ||
+ | < | ||
- | # (reverse-i-search)`inet‘: | + | <sxh># (reverse-i-search)`inet‘: |
- | + | ||
- | * Repetir el último comando: puedes repetir el último comando de cuatro formas diferentes: presionando la flecha hacia arriba y Enter, ingresando el operador !! (bang bang) y Enter, ingresando !-1 y Enter o presionando Ctrl+P y Enter. | + | |
- | + | ||
- | * Ejecutar un comando específico del history: para ejecutar un comando específico del history, debes conocer el número del mismo y luego anteceder al número del mismo el operador ! | + | |
+ | === Repetir el último comando === | ||
+ | | ||
+ | - presionando la flecha hacia arriba y Enter | ||
+ | - ingresando el operador !! (bang bang) y Enter | ||
+ | - ingresando !-1 y Enter | ||
+ | - presionando Ctrl+P y Enter. | ||
+ | === Ejecutar un comando específico del history === | ||
+ | para ejecutar un comando específico del history, debes conocer el número del mismo y luego anteceder al número del mismo el operador ! | ||
+ | Por ejemplo | ||
+ | <sxh> | ||
# history | more | # history | more | ||
1 service network restart | 1 service network restart | ||
2 exit | 2 exit | ||
3 cat / | 3 cat / | ||
+ | </ | ||
+ | <sxh> | ||
# !3 | # !3 | ||
cat / | cat / | ||
+ | </ | ||
- | * Ejecutar un comando previo que empieza con una palabra específica: ingresando ! seguido de unas cuantas letras, ejecutarás nuevamente un comando, que empiece con esas letras, previamente ejecutado. | + | === Ejecutar un comando previo que empieza con una palabra específica |
+ | ingresando ! seguido de unas cuantas letras, ejecutarás nuevamente un comando, que empiece con esas letras, previamente ejecutado. | ||
+ | <sxh> | ||
# !ps | # !ps | ||
ps ax | grep cron | ps ax | grep cron | ||
5023 ? Ss 0:00 / | 5023 ? Ss 0:00 / | ||
8057 pts/0 R+ 0:00 grep cron | 8057 pts/0 R+ 0:00 grep cron | ||
+ | </ | ||
- | * Controlar la cantidad total de líneas en el history: seteando la variable de entorno HISTSIZE, en el .bash_profile por ejemplo, podrás limitar la cantidad de líneas almacenadas por el history. | + | === Controlar la cantidad total de líneas en el history |
+ | seteando la variable de entorno HISTSIZE, en el .bash_profile por ejemplo, podrás limitar la cantidad de líneas almacenadas por el history. | ||
+ | <sxh> | ||
# nano ~/ | # nano ~/ | ||
HISTSIZE=450 | HISTSIZE=450 | ||
HISTFILESIZE=450 | HISTFILESIZE=450 | ||
+ | </ | ||
+ | === Cambiar el nombre del archivo history === | ||
+ | por default, el history del bash se almacena en el archivo ~/ | ||
- | * Cambiar el nombre del archivo history: por default, el history del bash se almacena en el archivo ~/ | + | <sxh> |
- | + | ||
# nano ~/ | # nano ~/ | ||
HISTFILE=$HOME/ | HISTFILE=$HOME/ | ||
+ | </ | ||
+ | === Eliminar las entradas contiguas repetidas === | ||
+ | | ||
- | * Eliminar las entradas contiguas repetidas: seteando la variable de entorno HISTCONTROL se pueden eliminar las entradas contiguas repetidas, mira el ejemplo: | + | <sxh> |
- | + | ||
# ls | # ls | ||
# ls | # ls | ||
Línea 70: | Línea 84: | ||
358 ls | 358 ls | ||
359 history | tail -3 | 359 history | tail -3 | ||
+ | </ | ||
- | * Borrar duplicados a lo largo del history: el valor ignoredups de la variable de entorno HISTCONTROL utilizado anteriormente solo borra entradas duplicadas consecutivas, | + | === Borrar duplicados a lo largo del history |
- | + | el valor ignoredups de la variable de entorno HISTCONTROL utilizado anteriormente solo borra entradas duplicadas consecutivas, | |
- | * Forzar a que el history no recuerde un comando en particular: seteando la variable HISTCONTROL con el valor ignorespace, | + | |
+ | === Forzar a que el history no recuerde un comando en particular === | ||
+ | | ||
+ | <sxh> | ||
# export HISTCONTROL=ignorespace | # export HISTCONTROL=ignorespace | ||
# ls -l | # ls -l | ||
Línea 84: | Línea 101: | ||
568 pwd | 568 pwd | ||
569 history | tail -3 | 569 history | tail -3 | ||
+ | </ | ||
- | * Limpiar todas las entradas previas del history: ejecutando history -c eliminarás para la consola activa todas las entradas previas al history, pero no estarás eliminándolas del bash_history, | + | === Limpiar todas las entradas previas del history |
- | + | ejecutando history -c eliminarás para la consola activa todas las entradas previas al history, pero no estarás eliminándolas del bash_history, | |
- | * Sustituir palabras de los comandos del history: a veces puede ser que necesites ejecutar otro comando, pero con el mismo argumento que el comando anterior. En el siguiente ejemplo, el !!:$ a continuación del comando nano obtiene el argumento del comando anterior: | + | |
+ | === Sustituir palabras de los comandos del history === | ||
+ | a veces puede ser que necesites ejecutar otro comando, pero con el mismo argumento que el comando anterior. En el siguiente ejemplo, el !!:$ a continuación del comando nano obtiene el argumento del comando anterior: | ||
+ | <sxh> | ||
# ls .bash_logout | # ls .bash_logout | ||
.bash_logout | .bash_logout | ||
# vi !!:$ | # vi !!:$ | ||
vi .bash_logout | vi .bash_logout | ||
+ | </ | ||
En este otro ejemplo, el !^ a continuación del comando nano obtiene el primer argumento del comando anterior: | En este otro ejemplo, el !^ a continuación del comando nano obtiene el primer argumento del comando anterior: | ||
+ | <sxh> | ||
# cp .bash_logout .bash_logout.old | # cp .bash_logout .bash_logout.old | ||
# vi !^ | # vi !^ | ||
vi .bash_logout | vi .bash_logout | ||
+ | </ | ||
+ | === Sustituir un argumento específico de un comando específico === | ||
+ | en el siguiente ejemplo, !cp:2 busca por el comando anterior que empieza con cp y toma el segundo argumento y lo sustituye para el comando cat que se ejecuta a continuación: | ||
- | * Sustituir un argumento específico de un comando específico: | + | <sxh> |
- | + | ||
# cp .bash_logout .bash_logout.old | # cp .bash_logout .bash_logout.old | ||
# cat !cp:2 | # cat !cp:2 | ||
cat .bash_logout.old | cat .bash_logout.old | ||
+ | </ | ||
- | * Deshabilitar el uso del history: si quieres deshabilitar el history y que el bash shell no recuerde más los comandos ingresados, debes setear la variable HISTSIZE en 0 | + | === Deshabilitar el uso del history |
+ | si quieres deshabilitar el history y que el bash shell no recuerde más los comandos ingresados, debes setear la variable HISTSIZE en 0 | ||
+ | <sxh> | ||
# export HISTSIZE=0 | # export HISTSIZE=0 | ||
# history | # history | ||
# #nota aquí que no se muestra nada | # #nota aquí que no se muestra nada | ||
+ | </ | ||
+ | === Ignorar comandos específicos === | ||
+ | | ||
- | * Ignorar comandos específicos: | + | <sxh># export HISTIGNORE=”pwd: |
- | + | ||
- | + | ||
- | # export HISTIGNORE=”pwd: | + | |
- | ===== Referencias | + | ===== Artículo Original |
http:// | http:// |