Ver histórico dos comandos executados no terminal

36

Existe uma maneira de salvar todos os meus comandos de terminal digitados e visualizá-los como histórico em um livro de registros?

    
por rgr 17.05.2015 / 14:35

4 respostas

53

Isso é feito automaticamente. O Bash armazena seus comandos em ~/.bash_history . Se você quiser dar uma olhada no histórico, imprima a saída desse arquivo usando um dos

cat ~/.bash_history
less ~/.bash_history
...any other pager or output command...

Ou você pode usar o comando interno do bash:

history

Para limpar o histórico, exclua o arquivo e limpe o histórico temporário:

rm ~/.bash_history && history -c

O tamanho do histórico é padronizado para 500 comandos. Você pode, no entanto, aumentar isso adicionando a seguinte linha ao seu ~./bashrc :

HISTSIZE=<number of entries, -1 for unlimited>

Isso não entrará em vigor imediatamente, mas apenas nas sessões recém-iniciadas. Para aplicar isso, use o arquivo .bashrc:

. ~/.bashrc

ou execute HISTSIZE=... em sua sessão atual.

    
por s3lph 17.05.2015 / 14:40
20

Você pode digitar history em um terminal para ver todos os comandos executados anteriormente.

Você pode truncar a saída para algumas linhas (onde 5 é o número de linhas):

history 5

Se você deseja visualizar apenas os comandos que contêm uma string (por exemplo, mv ), é possível fazer isso:

history | grep mv

Você pode recuperar um comando digitando ! seguido do número de entrada.

Digamos que eu tenha uma história como esta:

1 ls -la
2 mkdir foo
3 mv bar.txt foo
  • Para executar mkdir foo , você pode digitar !2 .
  • Para executar o último comando, você pode usar !-1 ou !!
  • Para executar o penúltimo, você pode usar !-2

Se você executar um comando que falhe porque precisa de privilégios de root (por exemplo, touch /etc/foo ), você pode usar sudo !! para executar o último comando como root.

  • Se você digitar !man , executará o último comando que começa com man
  • Se você digitar !?man? , ele executará o último comando que contém man (não necessariamente na linha começar)

Se você tem um erro de digitação em um comando, pode corrigi-lo dessa maneira. Digamos que eu digite cat .bash_hi , para substituir .bash_hi por .bash_history Eu só preciso digitar ^hi^history^ .

Fonte: link

    
por Helio 17.05.2015 / 14:37
6

Basta digitar:

history > print.txt

Um novo arquivo chamado print.txt será criado em seu diretório atualmente em funcionamento.

    
por Bilal 17.05.2015 / 15:07
3

Muitas vezes, só quero esses comandos recentes também. Para postar em minhas anotações de desenvolvimento ou, bem, empilhar sites como esses ... Isso se mostrou muito útil, removendo números de linha irrelevantes:

history | cut -c 8- | tail

ou, se você gostar dele como um alias, os números de linha removidos e recuados imediatamente (conforme necessário para a remarcação de cotação de código)

alias lastones="history | tail | sed -e 's/^ [0-9]\{1,5\}  /    /gi'"
    
por Frank Nocke 28.10.2016 / 06:14