¿Hay alguna manera de guardar todos los comandos bash de todos los terminales en un solo archivo?

¿Hay alguna manera de guardar todos los comandos bash de todos los terminales en un solo archivo?

¿Hay alguna manera de guardar todos los comandos bash de todos los terminales en un solo archivo? Por defecto, diferentes terminales tienen un historial diferente y eso resulta confuso. ¿Me gustaría guardar todo el historial en un solo archivo y, opcionalmente, buscar esos comandos? ¿Quizás shift+ uparrowpodría buscar en el historial en el archivo central?

Respuesta1

Primero, debe decirle al shell que agregue la hora y el nombre de usuario al historial de cada usuario y expandir el tamaño de cada archivo de historial desde su valor predeterminado de 500 líneas con algo como este comando (establezca el valor como desee) ingresado en el símbolo del shell. , con

echo 'HISTTIMEFORMAT="%F %T $USER"' >> ~/.bashrc && HISTSIZE=10000

y reinicie después de eso para que se active el cambio. ¿Por qué? Bueno, un historial sin fecha y hora, y que no identifica quién ingresó un comando, puede no ser muy útil.

Luego, copie periódicamente el contenido de ~/.bash_history para cada usuario en un archivo de historial conjunto y ordénelo, de modo que el historial consolidado se ordene por fecha, hora y usuario.

Después de haber hecho eso, elimine los archivos fuente en cada directorio de usuario mediante un script de nivel de administrador que recorre

cd /home/userx && rm ~/.bash_history && history -c

cambiandoXpara realizar esa línea para cada usuario.

información relacionada