Arquivo .bash_history

Iniciado por Eisenheim, 22 de Abril de 2013, 11:51

tópico anterior - próximo tópico

Eisenheim

Olá amigos.

Sou novato no fórum e esse é meu primeiro post.

Estou estudando para a certificação LPI-101/102, e pode apostar que será um enorme prazer compartilhar com vocês aquilo que for apreendido.

Sem mais delongas, minha dúvida é a seguinte:

Instalei a versão Server 12.04 do Ubuntu em uma máquina virtual para poder praticar os comandos e assim estudar. No entanto notei que o arquivo .bash_history não se encontra localizado em meu diretório home. Mesmo assim, o histórico dos comandos que tenho digitado estão sendo armazenados em algum arquivo em algum local pois consigo localizá-los pelas setas < >, só não sei ao certo aonde encontrá-lo.

Gostaria de saber se além de manter o .bash_history no diretório home do usuário, ele também fica armazenado em algum outro local do sistema.

Até a próxima.  ;)
Atenciosamente:
Jeferson Rodrigo Stefani

irtigor

Arquivos começados com "." são ocultos, use ls -A ou aperte "ctrl+h"/"alt+." no gerenciador de arquivos (se tiver instalado um). Por padrão é ~/.bash_history, mas vale o que estiver definido na variável $HISTFILE.

Eisenheim

Olá amigo irtigor

Do que você me respondeu apenas não sabia da existência da variável de ambiente $HISTFILE.

Sendo assim, acredito que no meu caso ela deve estar vindo sem o caminho "/home/usuario/.bash_history" definido.

Para definí-la, farei o seguinte:

HISTFILE=/home/usuario/.bash_history

Farei esse teste chegando em casa, mas acredito que meu problema se resolva.

Obrigado amigo.

Até a próxima.  ;)

Atenciosamente:
Jeferson Rodrigo Stefani

irtigor

Não, isso per se, não faz sentido... "por padrão" significa que, a não ser que explicitamente alterado, aquele/aquilo é o esperado e vai acontecer. Veja que "~" pro root é /root, e que - também - por padrão o histórico só é salvo no arquivo ao finalizar o shell.

Eisenheim

Olá amigo irtigor

Então, mas o duro que eu não alterei o conteúdo dessa variável de ambiente. Fiz a instalação normalmente e após o termino, fui inspecionar o diretório em busca do arquivo .bash_history e só então notei que ele não estava dentro do meu diretório pessoal.

Como havia dito, não sei como está vindo o conteúdo dessa variável, por isso ao chegar em casa vou analisar.

Mas em cima da sua resposta me fez pensar no seguinte:

Se eu definir o: HISTFILE=/home/usuario/.bash_history

Ele vai ficar ativo somente no meu shell enquanto ele estiver ativo? E quando eu sair? Ele não vai "apagar" o conteúdo da variável HISTFILE?

Obrigado pela ajuda amigo.

Até a próxima.  ;)
Atenciosamente:
Jeferson Rodrigo Stefani

irtigor

Só vale pro shell em uso, pra alterar permanentemente: https://help.ubuntu.com/community/EnvironmentVariables#Session-wide_environment_variables

A variável indica o arquivo, quando o shell termina o conteúdo é gravado, então contanto que esse arquivo esteja em um lugar que não vá ser apagado no boot (ex: /tmp), ele vai continuar existindo, mas não necessariamente vai ser fonte do histórico (se a variável não apontar pra ele).

Esse é o ponto mais importante (da minha mensagem anterior), que só é salvo no arquivo ao finalizar, então o mais provável é que você não esteja fazendo isso corretamente, ou que tenha algo impedindo. Como você costuma encerrar a máquina virtual?

Eisenheim

Olá amigo irtigor

Vou estudar o link que você me enviou.

Eu costumo desligá-la da seguinte maneira:

usuario@maquina:~$ sudo halt

Digito a senha pra ter privilégio de administrador e automaticamente ele encerra o s.o.

Obrigado pela ajuda amigo.

Até a próxima.  ;)
Atenciosamente:
Jeferson Rodrigo Stefani