Como visualizar o arquivo `.bash_history` via linha de comando?


Respostas:


56

Se você quiser acessar o próprio arquivo real, basta usar o seu editor de texto favorito (eu uso emacs, mas você pode usar plumade geditou vimou qualquer outro):

emacs ~/.bash_history

Esse é o local padrão, se o seu arquivo de histórico. Se você não encontrar nada, pode ter alterado o nome do arquivo de histórico. Isso é armazenado na $HISTFILEvariável, portanto, imprima-o para verificar seu valor atual:

echo $HISTFILE

Se, em vez do arquivo, você apenas quiser ver seu histórico, poderá executar historycomo @ minez029 sugerido. O historycomando sem opções apenas imprime o conteúdo do seu $HISTFILEseguido pelos comandos executados no shell atual que ainda não foram gravados nesse arquivo, com números de linha.


49

Se você realmente precisa da saída do .bash_historyarquivo, substitua historypor
cat ~/.bash_historytodos os comandos abaixo.

Se você realmente deseja os comandos sem números à frente, use este comando em vez de history:

history | cut -d' ' -f 4-

caso contrário, não haverá diferença (exceto se você estiver usando um shell diferente).


Últimos 15 comandos

Você pode usar

history | tail -n 15

para obter apenas as últimas 15 linhas do seu histórico com a última executada impressa por último (na parte inferior).


Procurando por um Comando

Como alternativa, use

history | grep "apt-get" | tail -n 15

para obter os últimos 15 comandos que continham apt-getcom o último executado impresso por último (na parte inferior). Você pode substituir apt-getpor qualquer comando (ou argumento de comando) que deseja procurar (pode ser uma expressão regular).


Percorrendo o histórico

Você pode usar

history | tac | less

para percorrer todos os comandos executados, começando pelos mais recentes no topo. Pressione qpara sair.

Da mesma forma, use

history | grep "apt-get" | tac | less

para percorrer todos os comandos executados com " apt-get" neles (incluindo argumentos), começando pelos mais recentes no topo. Pressione qpara sair.


15

Além da excelente resposta de minerz029.

Para reiterar - o comando 'history' imprime a história junto com um número próximo a ela.

Você pode canalizar a saída do histórico para grep, menos etc.

A saída do histórico também mostra um número à esquerda, próximo à saída. por exemplo

  469  free
  470  ps -fA
  471  ps -fA | grep xend
  472  free
  473  sudo vi /etc/xen/xend-config.sxp 
  474  cat /etc/default/grub 

Com esse número, você pode executar novamente o comando.

por exemplo, para executar novamente 473 eu digitaria no terminal

 admin@xen1~$ !473

seguido pela tecla Enter para repetir o comando próximo a 473 na saída do histórico.

Você também pode pesquisar de maneira interativa no histórico de comandos, digitando as ctrl + rteclas e, em seguida, comece a digitar parte do conteúdo do comando, que será pesquisado e preenchido. Quando você o encontrar, poderá digitar enter para repeti-lo ou pressionar a [tab]tecla para copiá-lo na linha de comando e editar o comando primeiro.

Obviamente, essas duas últimas opções funcionam no shell bash. Não tenho certeza se esses recursos funcionam em outras conchas. Mas como o bash é o shell padrão do Ubuntu, você deve encontrá-los lá.


Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.