Existe uma maneira de salvar todos os comandos bash de todos os terminais em um único arquivo?

Existe uma maneira de salvar todos os comandos bash de todos os terminais em um único arquivo?

Existe uma maneira de salvar todos os comandos bash de todos os terminais em um único arquivo? Por padrão, terminais diferentes têm históricos diferentes e isso fica confuso. Gostaria de salvar todo o histórico em um único arquivo e, opcionalmente, procurar esses comandos? Talvez shift+ uparrowpudesse procurar no histórico do arquivo central?

Responder1

Primeiro, você deve dizer ao shell para adicionar a hora e o nome de usuário ao histórico de cada usuário e expandir o tamanho de cada arquivo de histórico do padrão de 500 linhas com algo como este comando (defina o valor como desejar) inserido em um prompt do shell , com

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

e reinicie depois disso para que a alteração seja ativada. Por que? Pois bem, um histórico sem data e hora e que não identifica quem digitou um comando pode não ser muito útil.

Em seguida, copie periodicamente o conteúdo de ~/.bash_history para cada usuário em um arquivo de histórico conjunto e classifique-o, para que o histórico consolidado seja classificado em ordem de data, hora e usuário.

Depois de fazer isso, exclua os arquivos de origem em cada diretório de usuário por meio de um script de nível de administrador em loop

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

mudandoxpara executar essa linha para cada usuário.

informação relacionada