El poder del comando de historia de Linux en Bash Shell

El poder del comando de historia de Linux en Bash Shell

Usamos historia Comando con frecuencia en nuestros trabajos de rutina diaria para verificar el historial de comando o obtener información sobre el comando ejecutado por el usuario. En esta publicación, veremos cómo podemos usar el comando de historia de manera efectiva para extraer el comando que fue ejecutado por los usuarios en Bash Shell. Esto puede ser útil para fines de auditoría o para averiguar qué comando se ejecuta en qué fecha y tiempo.

Por defecto fecha y marca de tiempo no se verá mientras se ejecuta historia dominio. Sin embargo, Bash Shell proporciona CLI Herramientas para editar el historial de comandos del usuario. Veamos algunos consejos y trucos útiles y poder de historia dominio.

Ejemplos de comando de historia

1. Lista Última/todos los comandos ejecutados en Linux

Ejecutando simple historia El comando de Terminal le mostrará una lista completa de los últimos comandos ejecutados con números de línea.

[[Correo electrónico protegido] ~] $ History 1 ps1 = '\ e [1; 35m [\ [correo electrónico protegido] \ h \ w] $ \ e [m' 2 ps1 = "\ e [0; 32m [\ [correo electrónico protegido] \ h \ w] $ \ e [m "3 ps1 =" \ [correo electrónico protegido] \ h: \ w [\ j] $ "4 ping google.com 5 echo $ ps1 6 cola -f/var/log/mensajes 7 cola -f/var/log/mensajes 8 salida 9 clara 10 historial 11 claro 12 historial

2. Enumere todos los comandos con fecha y marca de tiempo

Como encontrar fecha y marca de tiempo contra el comando? Con 'exportar' El comando con variable mostrará el comando del historial con la marca de tiempo correspondiente cuando se ejecutara el comando.

[[Correo electrónico protegido] ~] $ Export HistTimeFormat = " %F %T" 1 2013-06-09 10:40:12 Cat /etc /número 2 2013-06-09 10:40:12 Clear 3 2013-06- 09 10:40:12 encontrar /etc.name *.conf 4 2013-06-09 10:40:12 Clear 5 2013-06-09 10:40:12 Historia 6 2013-06-09 10:40:12 PS1 = '\ E [1; 35M [\ [Correo electrónico protegido ] \ h \ w] $ \ e [m '7 2013-06-09 10:40:12 ps1 = "\ e [0; 32m [\ [correo electrónico protegido] \ 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 la historia

Como podemos ver, el mismo comando se está repetiendo el número de veces en la salida anterior. Cómo filtrar comandos simples o no destructivos en la historia?. Use lo siguiente 'exportar'Comando especificando el comando en Histignignore = 'ls -l: pwd: fecha:' no se guardará por el sistema y no se mostrará en el comando de historia.

[[Correo electrónico protegido] ~] $ Export Histignore = "LS -L: PWD: Fecha:"

4. Ignorar los comandos duplicados en la historia

Con el siguiente comando a continuación nos ayudará a ignorar la entrada de comandos duplicados realizadas por el usuario. Solo la entrada única se mostrará en el historial, si un usuario ejecuta un mismo comando varias veces en una solicitud de bash.

[[Correo electrónico protegido] ~] $ Export HistControl = IgnoredUps

5. Comando de exportación Unset

Comando de exportación inexidante sobre la mosca. Ejecutar Exportación desordenada comando con variable uno por uno cualquier comando que haya sido exportado por exportar dominio.

[[Correo electrónico protegido] ~] $ unset Export HistControl

6. Guardar el comando de exportación de forma permanente

Hacer una entrada de la siguiente manera en .bash_profile ahorrar exportar comandar permanentemente.

[[correo electrónico protegido] ~] $ VI .Bash_profile # .Bash_profile # Obtenga los alias y funciones si [-f ~/.bashrc]; entonces . ~/.BASHRC FI # ENTORNO ESPERIBLE DEL USUARIO y programas de inicio Exportar HistControl = IgnoredUps Ruta = $ ruta: $ home/bin ruta de exportación

7. Lista de comandos ejecutados del usuario específicos

Cómo ver el historial de comando ejecutado por un usuario específico. Bash mantiene registros de la historia en un '~/.bash_history ' archivo. Podemos ver o abrir archivo para ver el historial de comando.

[[correo electrónico protegido] ~] $ VI .Bash_history CD / TMP / CD logstalgia-1.0.3/ ./Configurar sudo passwd root apt-get install LibsDL1.2-DEV LIBSDL-IMAGE1.2-dev libpcre3-dev libftgl-dev libpng12-dev libjpeg62-dev Make GCC ./Configurar Make Apt-Get Instalar LibsDL1.2-DEV LIBSDL-IMAGE1.2-DEV LIBPCRE3-DEVIBFTGL-DEV LIBPNG12-DEVIBJPEG62-DEV HACER GCC ++ APT-GET INSTALA LIBSDL1.2-DEV LIBSDL-IMAGE1.2-DEV libpcre3-dev libftgl-dev libpng12-dev libjpeg62-dev Make gcc apt-get install haz mysql -u root -p apt-get instalación grync apt-get unison unison unison

8. Desactivar el almacenamiento de la historia de los comandos

Alguna organización no mantiene el historial de comandos debido a la política de seguridad de la organización. En este caso, podemos editar .bash_profile Archivo (es un archivo oculto) de los usuarios y realizar una entrada como a continuación.

[[correo electrónico protegido] ~] $ VI .Bash_profile # .Bash_profile # Obtenga los alias y funciones si [-f ~/.bashrc]; entonces . ~/.Bashrc fi # entorno específico del usuario y programas de inicio ruta = $ ruta: $ home/bin histsize = 0 ruta de exportación .Bash_profile (final)

Guardar archivo y cargar cambios con el siguiente comando.

[[correo electrónico protegido] ~] $ fuente .bash_profile

Nota: Si no desea que el sistema recuerde los comandos que ha escrito, simplemente ejecute a continuación el comando que deshabilitará o dejará de grabar el historial en la mosca.

[[correo electrónico protegido] ~] $ export histsize = 0

Consejos: Buscar 'Hacer historias'y editar en'/etc/perfil ' Archivo con Superuser. El cambio en el archivo afectará a nivel mundial.

9. Eliminar o claro historial de comandos

Con arriba y abajo Arrow, podemos ver el comando utilizado anteriormente que puede ser útil o puede verificarlo. Eliminar o compensar todas las entradas de la lista de Historial de Bash con '-C'Opciones.

[[correo electrónico protegido] ~] $ Historial -C

10. Comandos de búsqueda en la historia usando el comando GREP

Comando de búsqueda a través de '.bash_history'Poner su archivo de historial en'grep' como a continuación. Por ejemplo, el siguiente comando buscará y encontrará 'pwd'Comando de la lista de historial.

[[correo electrónico protegido] ~] $ Historia | 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 Historia | Grep PWD

11. Buscar el comando ejecutado por último

Buscar comando ejecutado previamente con 'Ctrl+R' dominio. Una vez que haya encontrado el comando que está buscando, presione 'Ingresar'Para ejecutar lo mismo más presione'Esc'Para cancelarlo.

(Reverse-I-Search) 'fuente': fuente .bash_profile

12. Recordar el último comando ejecutado

Recuerde un comando específico utilizado anteriormente. Combinación de Estallido y 8 (!8) El comando recordará el número 8 comando que ha ejecutado.

[[correo electrónico protegido] ~] $ !8

13. Recordar el comando específico ejecutado por último

Recordar el comando usado anteriormente (netstat -np | Grep 22) con '!'Y seguido de algunas letras de ese comando en particular.

[[correo electrónico protegido] ~] $ !net netstat -np | GREP 22 (no se pudo leer ninguna información para "-p": geteuid () = 501 pero debe estar root.) TCP 0 68 192.168.50.2:22 192.168.50.1: 1857 Establecido - TCP 0 0 192.168.50.2:22 192.168.50.1: 2516 Establecido - Unix 2 [] DGRAM 12284 - @/org/freedesktop/hal/UDev_event Unix 3 [] Stream conectado 14522 - UNIX 2 [] DGRAM 13622 - UNIX 3 [] Corriente conectado 12250 - @/var/run/Run/ hald/dbus -ujajomna0g Unix 3 [] Stream conectado 12249 - Unix 3 [] Stream conectado 12228 -/var/run/dbus/system_bus_socket Unix 3 [] Stream conectado 12227 -

Hemos tratado de resaltar el comando del poder de la historia. Sin embargo, esto no es final. Por favor comparta su experiencia de History Command con nosotros a través de nuestro cuadro de comentarios a continuación.