Como alternativa ao uso de bash_history
, para capturar todos os comandos inseridos no shell pelo você mesmo e salvá-lo no arquivo, você poderia usar algo como o comando trap
em um script ou função e coloque esse código em .bashrc
.
Felizmente, exatamente o script que você deseja foi fornecido por Richard Hansen por um tempo atrás nesta resposta , e seu script copia todos os comandos inseridos no bash e os envia (com timestamp) para um arquivo chamado .command_log
por padrão. Depois de ter colocado o script em seu .bashrc
e ter iniciado o terminal, o script de Richard grava os comandos em .command_log
assim que eles são executados, ao contrário do recurso bash_history
, que só grava no arquivo após o terminal ser fechado .
O script de Richard irá gravar seus comandos como este em .command_log
(embora você esteja usando comandos diferentes para mim):
2012-10-02T18:02:11+0100 /dev/pts/2 gksudo truecrypt
2012-10-02T21:52:03+0100 /dev/pts/2 xrandr -s 1280x1024
2012-10-03T00:16:52+0100 /dev/pts/2 mount
2012-10-03T00:17:12+0100 /dev/pts/2 udisks --unmount /dev/sdb1
2012-10-03T00:17:46+0100 /dev/pts/2 udisks --detach /dev/sdb
Eu tenho usado por um tempo e descobri que o script de Richard é muito útil; você pode até grep
the .command_log
e pesquisar o que quiser:
grep -i udisks .command_log
Então, eu acho que isso é provavelmente o que você quer se você precisa gravar cada coisa digitada no bash; Eu acho incrivelmente útil.