Alias / script para registrar o histórico de comandos antes de sair do terminal?

2

Sou novo em bash e scripts.

Eu estava pensando em escrever um alias ou um script para que cada vez que eu exit da linha de comando, ele registrasse meu histórico de comandos. Porque eu tento muitos novos comandos, e gostaria de voltar ao arquivo e fazer comentários, para que eu possa aprender melhor e não apenas tentar os comandos e depois esquecê-los completamente.

alias exit ="history > 'date +%Y-%m-%d'.txt; exit"

mas quando eu recarregar meu bash, recebo:

-bash: alias: exit: not found
-bash: alias: =history > 2015-09-22.txt; exit: not found

Por que isso não funciona? Devo tentar escrever um script com um loop while?

    
por user499507 22.09.2015 / 23:28

3 respostas

6

O Bash tem um arquivo de histórico que você provavelmente está procurando. Experimente vim ~/.bash_history ou cat ~/.bash_history . Provavelmente será o que você está procurando. Esse é o local do arquivo de histórico para distros redhat, pode estar localizado em outro lugar para outras distros ... mas o diretório home faz sentido para ele:)

    
por 22.09.2015 / 23:31
4

Apare o espaço antes do sinal de igual:

alias exit="history > 'date +%Y-%m-%d'.txt; exit"
    
por 23.09.2015 / 01:32
3

Veja este . Parece que no bash você pode definir "traps" para serem chamados quando os eventos acontecerem. Tente colocar isso é seu .bashrc:

function show_history {
    history > 'date +%Y-%m-%d'.txt
}
trap show_history EXIT

execute help trap para mais informações.

    
por 23.09.2015 / 01:17