Table of Contents
El poder del “comando histórico” de Linux en Bash Shell
Usamos el comando history con frecuencia en nuestros trabajos de rutina diaria para verificar el historial del comando o para obtener información sobre el comando ejecutado por el usuario. En esta publicación, veremos cómo podemos usar el comando history de manera efectiva para extraer el comando que ejecutaron los usuarios en el shell Bash. Esto puede ser útil para fines de auditoría o para averiguar qué comando se ejecuta en qué fecha. y hora.
De forma predeterminada, fecha. y marca de tiempo. no se verán al ejecutar el comando historial. Sin embargo, bash shell proporciona herramientas CLI. para editar el historial de comandos del usuario. Veamos algunos consejos y trucos útiles y el poder del comando historial .
ejemplos de comandos de historial
1. Enumerar los últimos/todos los comandos ejecutados en Linux
La ejecución de un comando simple history desde la terminal le mostrará una lista completa de los últimos comandos ejecutados con números de línea.
[[email protected ] ~] $ history 1 PS1 = ‘\ e [1; 35m [\ [email protected] \ h \ w] $ \ e [m’ 2 PS1 = “\ e [0; 32m [\ [email protected] \ h \ W] $ \ e [m “3 PS1 =” \ [correo electrónico protegido] \ h: \ w [\ j] $ “4 ping google.com 5 echo $ PS1 6 tail-f/var/log/messages 7 tail-f/var/log/messages 8 salir 9 borrar 10 historial 11 borrar 12 historial
2. Enumere todos los comandos con fecha y marca de tiempo
¿Cómo encontrar fecha y marca de tiempo con el comando? Con ‘exportar’ el comando con variable mostrará el comando del historial con la marca de tiempo correspondiente cuando se ejecutó el comando.
[[email protected] ~] $ export HISTTIMEFORMAT = ‘% F% T’ 1 2013-06-09 10:40:12 cat/etc/issue 2 2013-06-09 10:40:12 clear 3 2013-06-09 10:40:12 find/etc-name * .conf 4 2013-06-09 10:40:12 claro 5 2013-06-09 10:40:12 historial 6 2013-06-09 10:40:12 PS1 = ‘\ e [1; 35m [\ [email protected] \ h \ w] $ \ e [m ‘7 2013-06-09 10:40:12 PS1 = “\ e [0; 32m [\ [protegido por correo electrónico] \ h \ W] $ \ e [m” 8 2013-06-09 10 : 40: 12 PS1 = “\ [correo electrónico protegido] \ h: \ w [\ j] $” 9 2013-06-09 10:40:12 ping google.com 10 2013-06-09 10:40:12 echo $ PS1 Significado de las variables HISTTIMEFORMAT% F Equivalente a% Y-% m-% d% T Reemplazado por el tiempo (% H:% M:% S)
3. Filtrar comandos en el historial
Como podemos ver, el mismo comando se repite varias veces en la salida anterior. ¿Cómo filtrar comandos simples o no destructivos en la historia ?. Utilice el siguiente comando ‘ export. especificando el comando en HISTIGNORE = ‘ls-l: pwd: date:’. no se guardará por el sistema y no se mostrará en el comando de historial.
[[email protected] ~] $ export HISTIGNORE = ‘ls-l: pwd: date:’
4. Ignorar comandos duplicados en el historial
freestar.config.enabled_slots.push
Con el siguiente comando nos ayudará a ignorar la entrada de comandos duplicados realizada por el usuario . Solo se mostrará una entrada en el historial, si un usuario ejecuta el mismo comando varias veces en un indicador Bash.
[[email protected] ~] $ export HISTCONTROL = ignoredups
5. Desconfigurar el comando de exportación
Desarmar el comando de exportación sobre la marcha. Ejecute el comando exportar unset con la variable uno por uno, los comandos que se hayan exportado con el comando export .
[[email protected] ~] $ unset export HISTCONTROL
6. Guardar comando de exportación de forma permanente
Realice una entrada de la siguiente manera en .bash_profile para guardar el comando de exportación de forma permanente.
[[email protected] ~] $ vi .bash_profile # .bash_profile # Obtiene los alias y funciones si [-f ~/.bashrc]; luego . ~/.bashrc fi # Entorno específico del usuario y programas de inicio export HISTCONTROL = ignoredups PATH = $ PATH: $ HOME/bin export PATH
7. Enumere los comandos ejecutados por usuarios específicos
Cómo ver el historial de comandos ejecutados por un usuario específico. Bash mantiene registros del historial en un archivo ‘~/.bash_history’ . Podemos ver o abrir un archivo para ver el historial de comandos.
[[email protected] ~] $ vi .bash_history cd/tmp/cd logstalgia-1.0.3/./configure sudo passwd root apt-get install libsdl1.2-dev libsdl-image1.2-dev libpcre3-dev libftgl-dev libpng12-dev libjpeg62-dev make gcc ./configure make apt-get install libsdl1.2-dev libsdl-image1.2-dev libpcre3-dev libftgl-dev libpng12-dev libjpeg62-dev make gcc ++ apt-get install libsdl1.2-dev libsdl-image1.2-dev libpcre3-dev libftgl-dev libpng12-dev libjpeg62-dev make gcc apt-get install make mysql-u root-p apt-get install grsync apt-get install unison unison
8. Desactivar el almacenamiento del historial de comandos
Algunas organizaciones no mantienen el historial de comandos debido a la política de seguridad de la organización. En este caso, podemos editar el archivo .bash_profile (es un archivo oculto) del usuario y hacer una entrada como se muestra a continuación.
[[email protected] ~] $ vi .bash_profile # .bash_profile # Obtiene los alias y las funciones si [-f ~/.bashrc]; luego . ~/.bashrc fi # Entorno específico del usuario y programas de inicio PATH = $ PATH: $ HOME/bin HISTSIZE = 0 export PATH .bash_profile (END)
Guarde el archivo y cargue los cambios con el siguiente comando.
[[email protected] ~] $ source .bash_profile
Nota: Si no desea que el sistema recuerde los comandos que ha escrito, simplemente ejecute el siguiente comando que desactivará o detendrá la grabación del historial sobre la marcha. .
[[email protected] ~] $ export HISTSIZE = 0
Sugerencias:. Busque ‘ HISTSIZE. y edite en ‘/etc/profile ‘ archivo con superusuario. El cambio en el archivo tendrá un efecto global.
9. Eliminar o borrar el historial de comandos
Con las flechas arriba. y abajo. podemos ver el comando usado anteriormente que puede ser útil o puede enojarlo. Eliminar o borrar todas las entradas de la lista del historial de bash con las opciones “-c. .
[[email protected] ~] $ history-c
10. Buscar comandos en el historial usando el comando Grep
Buscar comando a través de “ .bash_history. canalizando su archivo de historial en “ grep. como se muestra a continuación. Por ejemplo, el siguiente comando buscará y encontrará el comando “ pwd. de la lista del historial.
[[email protected] ~] $ history | grep pwd 113 2013-06-09 10:40:12 pwd 141 2013-06-09 10:40:12 pwd 198 2013-06-09 15:46:23 historia | grep pwd 202 2013-06-09 15:47:39 historial | grep pwd
11. Buscar último comando ejecutado
Busque el comando ejecutado anteriormente con el comando “Ctrl + r” . Una vez que haya encontrado el comando que está buscando, presione ‘ Enter. para ejecutar el mismo; de lo contrario, presione ‘ esc. para cancelarlo.
(reverso-i-search) `fuente ‘: fuente .bash_profile
12. Recuperar el último comando ejecutado
Recuperar un comando específico utilizado anteriormente. La combinación del comando Bang. y 8. (! 8. recuperará el comando número 8. que ha ejecutado.
[[correo electrónico protegido] ~] $! 8
13. Recuperar el comando específico ejecutado por última vez
Recupere el comando utilizado anteriormente ( netstat-np | grep 22. con ‘!. y seguido de algunas letras de ese comando en particular comando.
[[correo electrónico protegido] ~] $! net netstat-np | grep 22 (No se pudo leer información para “-p”: geteuid () = 501 pero debería ser root.) tcp 0 68192.168.50.2:22 192.168.50.1:1857 ESTABLECIDO-tcp 0 0192.168.50.2:22 192.168 .50.1: 2516 ESTABLECIDO-unix 2 [] DGRAM 12284-@/org/freedesktop/hal/udev_event unix 3 [] STREAM CONNECTED 14522-unix 2 [] DGRAM 13622-unix 3 [] STREAM CONNECTED 12250-@/var/run/hald/dbus-ujAjOMNa0g unix 3 [] STREAM CONNECTED 12249-unix 3 [] STREAM CONNECTED 12228-/var/run/dbus/system_bus_socket unix 3 [] STREAM CONNECTED 12227-
Hemos intentado resaltar el comando power of history . Sin embargo, esto no es el final. Comparta su experiencia del comando histórico con nosotros a través de nuestro cuadro de comentarios a continuación.