Infra - Linux
Compartilhamento do histórico do bash entre múltiplas sessões
Em um ambiente de janelas, frequentemente temos diversos terminais em execução, e cada um deles com seu histórico de comandos...
por Rubens Queiroz de AlmeidaEm um ambiente de janelas, frequentemente temos diversos terminais em execução, e cada um deles com seu histórico de comandos. Suponhamos que eu tenha uma janela com centenas de comandos executados, e outra com apenas cinco comandos. Se eu encerrar a segunda sessão primeiro, o histórico é sobrescrito e eu ficou com apenas os cinco comandos da segunda janela registrados. O ideal seria que o histórico fosse comum e dinâmico, ou seja, cada comando executado ficando disponível para todas as sessões em execução.
Executando o comando
tail -f .bash_history
em uma das janelas, vemos os comandos sendo executados. Mas se fecharmos uma outra janela, vejam o que acontece:
tail: .bash_history: arquivo truncado
Perdemos tudo que estava lá. A sessão que foi fechada truncou o arquivo .bash_history.
Para eliminar este problema, precisamos fazer com que a shell bash acrescente imediatamente, ao arquivo do histórico, os comandos executados em todas as sessões. Para isto, especificamos, no arquivo .bashrc, a seguinte diretiva:
history -a
Eu acho esta forma de trabalho bastante conveniente. Eu considero particularmente irritante ter uma sessão de histórico para cada janela aberta. Não sei porque o padrão não é assim.
Aproveitando, no Twitter, tem um usuário chamado @bashtips, que fornece dicas curtas de bash. Vale a pena acompanhar.
- Login automático com SSH e Automatização da instalação (deploy) e atualização de sites com GitLinux
- O que é Ar.DroneLinux
- Criando aplicativos para o iPhone no Linux (sem Xcode e MacOS X)Linux
- Blu-ray: Reproduzindo, copiando, ripando e assistindo no GNU/LinuxLinux
- Utilize seu iPad/iPhone/IPod Touch na plataforma GNU/LinuxLinux