Quero ver o conteúdo do meu .bash_history
arquivo, mas não sei como chegar lá através da linha de comando.
/home/username/.bash_history
?
.bash_history
é anexado apenas quando um terminal está fechado.
Quero ver o conteúdo do meu .bash_history
arquivo, mas não sei como chegar lá através da linha de comando.
/home/username/.bash_history
?
.bash_history
é anexado apenas quando um terminal está fechado.
Respostas:
Se você quiser acessar o próprio arquivo real, basta usar o seu editor de texto favorito (eu uso emacs
, mas você pode usar pluma
de gedit
ou vim
ou 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 $HISTFILE
variá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 history
como @ minez029 sugerido. O history
comando sem opções apenas imprime o conteúdo do seu $HISTFILE
seguido pelos comandos executados no shell atual que ainda não foram gravados nesse arquivo, com números de linha.
Se você realmente precisa da saída do .bash_history
arquivo, substitua history
por
cat ~/.bash_history
todos 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).
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).
Como alternativa, use
history | grep "apt-get" | tail -n 15
para obter os últimos 15 comandos que continham apt-get
com o último executado impresso por último (na parte inferior). Você pode substituir apt-get
por qualquer comando (ou argumento de comando) que deseja procurar (pode ser uma expressão regular).
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.
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 + r
teclas 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á.
Você pode tentar o histórico semelhante a "caixa de sugestões" https://github.com/dvorka/hstr - lê o histórico do Bash e permite uma navegação rápida.
history | less