Come posso cercare la cronologia dei comandi della shell con un editor di testo?


8

So che Ctrl+ Rcerchiamo la cronologia dei comandi, ma è un po 'primitiva. Esiste un modo per esportare tutta la cronologia dei miei comandi (non solo la sessione terminale corrente, ma la cronologia completa) in un file di testo? Potrei quindi utilizzare un editor di testo per cercarlo comodamente. O se il file della cronologia esiste già, dov'è?


Presumo che tu intendessi la cronologia dei comandi della shell e che tu abbia modificato per utilizzare la shell predefinita, bash.
muru,

Risposte:


13

Da 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.

Pertanto, la variabile HISTFILEconterrà il nome file in cui verrà salvata la cronologia.

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

Ora puoi cercare il modello:

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

Come ha sottolineato @Dennis, se si desidera è possibile eseguire history -aper aggiungere la cronologia dei comandi della sessione in esecuzione al $HISTFILEfile. Fondamentalmente i comandi verranno automaticamente aggiunti una volta chiusa una sessione, history -afarà la stessa cosa proprio in quell'istante.

Corri help historyper avere più idea sul historybuiltin stesso.


1
Si noti che il file cronologico di solito non conterrà le righe immesse dall'inizio della sessione bash corrente, che può essere risolto eseguendo history -a.
Dennis,

@Dennis: buon punto..aggiunto ..
heemayl

4

Prova questo:

history > output.txt
less output.txt

Quindi cerca digitando /+searchterm


3

La cronologia di bash viene salvata nella tua home directory ~/.bash_history.

Fondamentalmente Ctrl+ Rricerche da questo file.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.