Gostaria de criar um log de todos os comandos digitados no terminal

5

Eu gostaria de ter um log de todos os comandos digitados no terminal.

Eu verifiquei "script", mas isso gera um arquivo com os comandos e responde todos juntos. Existe uma maneira de ter apenas os comandos?

    
por Siedrix 24.01.2011 / 16:51

5 respostas

6

Se você estiver usando os shells defaullt, todos os comandos já estão registrados em $ HOME / .bash_history. Existem várias variáveis de ambiente que afetam o histórico, você pode ler sobre aquelas com:

info bash
Type: / HIST

Se você quiser aplicar a configuração a todos os usuários, edite / etc / profile.

Exemplo:

export HISTFILESIZE=5000
    
por João Pinto 24.01.2011 / 17:08
6

Tudo que um usuário digita no terminal manualmente é salvo em ~/.bash_history , em que ~ é uma abreviação para o diretório inicial do usuário registrado no momento. Observe também que os arquivos que começam com . estão ocultos; no Nautilus, você pode mostrá-los pressionando Ctrl + H .

Dê uma olhada digitando

cat .bash_history

Para ver seu histórico, anotado com números sequenciais, digite

history

Você pode executar os comandos que você vê lá novamente digitando !2129 , por exemplo, que executaria o comando número 2129 como mostrado pelo comando history .

Observe que o comando history mostra até os segundos logs, onde .bash_history é salvo somente após o logoff do terminal.

Pouca informação interessante:

  • Os comandos que começam com um espaço não são salvos em .bash_history . Se você executar um comando como rm -R mydir/ , poderá prefixar um espaço para evitar a sua execução acidental novamente, pressionando a seta para cima.

Como Joao diz, o tamanho do histórico salvo pode ser controlado com export HISTFILESIZE=5000 .

    
por Stefano Palazzo 24.01.2011 / 17:07
0

Se você quer dizer que você quer um registro de todos os comandos que você executa em um shell interativo, veja BashFAQ 88 - Como posso evitar perder qualquer linhas de história?

    
por geirha 24.01.2011 / 17:20
0

Você também pode usar CTRL + R no terminal para pesquisar seu histórico.

  1. CTRL + R
  2. insira termos de pesquisa (por exemplo, digite 'sudo apt-get')
  3. pressione CTRL + R para percorrer cada correspondência
por user244368 04.02.2014 / 08:03
0

Eu escrevi uma função para isso:

function begin_install_log() {
if [ $# -eq 0 ]
then
    echo "No arguments supplied"
    HIST_NUM=""
else
    HIST_NUM=$(history|tail -n 1|awk '{ print $1  }')
    HIST_NUM=$((HIST_NUM + 2))
    OUTPUT_FILE=$HOME/environment/ansible/.install_cache/${1}
fi
}
function capture_install_log() {
if [ ! $HIST_NUM ]
then
    echo "run 'begin_install_log' first"
else
    history|grep -A999 $HIST_NUM|awk '{$1=""; print $0}' >> $OUTPUT_FILE
    HIST_NUM=""
fi

Uso:

$ begin_install_log some_file_name
$ blah
$ blah
$ blah
$ capture_install_log

Você terá que alterar a variável OUTPUT_FILE para atender às suas necessidades.

Felicidades!

    
por nargetdev 27.06.2015 / 22:19