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.