Como posso registrar toda a minha atividade de linha de comando?

2

Acabei de ter um Heisenbug que desapareceu completamente em mim. Estou convencido de que algo engraçado deve ter acontecido quando compilei meu programa vários dias ou uma semana atrás.

Mas, infelizmente, meu buffer de histórico de shell do Windows (MINGW) não volta tão longe. Como posso organizar todas as minhas atividades de linha de comando para que eu possa realizar esse tipo de investigação no futuro?

Com o Unix, é claro, você pode usar o utilitário script . Mas o Windows não (IME) trata os arquivos com o mesmo cuidado que o Unix: ie. você não pode | tee logfile de um programa arbitrário e espera interagir com ele normalmente. Os shell-windows não se representam em uma interface pty flexível. Então, com base nesse meu preconceito, eu não procurei seriamente por uma porta do utilitário de script.

Como uma pessoa "windows" faria isso?

    
por luser droog 10.01.2014 / 22:10

2 respostas

2

Se você estiver usando bash , talvez queira dar uma olhada em bash Parâmetros HISTORY para melhorar o tamanho do seu histórico de linha de comando:

  • HISTSIZE altera o número máximo de comandos disponíveis por meio do comando history
  • HISTFILESIZE altera o tamanho máximo do seu HISTFILE , geralmente .bash_history . Se não estiver definido, o HISTFILE não será truncado, então você terá todo o seu histórico de vida.
  • A opção histappend acrescenta o novo histórico ao seu arquivo de histórico, em vez de substituí-lo.

Exemplo .bashrc :

# append to the history file, don't overwrite it
shopt -s histappend

# for setting history length see HISTSIZE and HISTFILESIZE in bash(1)
HISTSIZE=1000
HISTFILESIZE=2000
HISTTIMEFORMAT="%Y-%m-%dT%H:%M:%S%z  "

HISTTIMEFORMAT marcará seu histórico com timestamp, o que é muito útil ao investigar.

    
por 15.01.2014 / 01:59
0

Use um buffer de shell no emacs. O tamanho do buffer não é relacionado ao número de linhas salvas pelo terminal.

    
por 24.01.2017 / 19:30