Como pesquiso o histórico de comandos do shell com um editor de texto?

8

Eu sei que Ctrl+ Rvamos procurar o histórico de comandos, mas é um pouco primitivo. Existe uma maneira de exportar todo o meu histórico de comandos (não apenas a sessão atual do terminal, mas o histórico completo) para um arquivo de texto? Eu poderia então usar um editor de texto para pesquisar confortavelmente. Ou se o arquivo de histórico já existe, onde está?

becko
fonte
Eu vou assumir que você quis dizer o histórico de comandos do seu shell e editou para usar o shell padrão, bash.
Muru

Respostas:

13

De man bash:

HISTFILE
    The name of the file in which command history is saved.
    The default value  is  ~/.bash_history.
    If unset, the command history is not saved when a shell exits.

Portanto, a variável HISTFILEconterá o nome do arquivo em que o histórico será salvo.

$ echo "$HISTFILE"
/home/user/.bash_history

Agora você pode procurar o padrão:

$ grep "vim" "$HISTFILE"
vim foo.text
vim bar.text
vim file.txt

Como o @Dennis apontou, se você quiser, pode executar history -apara acrescentar o histórico de comandos da sessão em execução ao $HISTFILEarquivo. Basicamente, os comandos serão anexados automaticamente assim que você fechar uma sessão, history -afará a mesma coisa naquele instante.

Corra help historypara ter mais idéia do historypróprio builtin.

heemail
fonte
1
Observe que o arquivo de histórico geralmente não contém linhas inseridas desde o início da sessão atual do bash, que pode ser corrigida pela execução history -a.
Dennis
@Dennis: Good point..added ..
heemayl
4

Tente o seguinte:

history > output.txt
less output.txt

Em seguida, pesquise digitando /+searchterm

O Nightman
fonte
3

O histórico do bash é salvo no diretório inicial ~/.bash_history.

Basicamente Ctrl+ Rpesquisas neste arquivo.

Sh1d0w
fonte