Comment rechercher l'historique des commandes du shell avec un éditeur de texte?

8

Je sais que Ctrl+ Rvous permet de rechercher l'historique des commandes, mais c'est un peu primitif. Existe-t-il un moyen d'exporter tout mon historique de commandes (pas seulement la session de terminal en cours, mais l'historique complet) vers un fichier texte? Je pourrais alors utiliser un éditeur de texte pour le rechercher confortablement. Ou si le fichier historique existe déjà, où est-il?

Becko
la source
Je vais supposer que vous vouliez parler de l'historique des commandes de votre shell et que vous avez modifié pour utiliser le shell par défaut, bash.
muru

Réponses:

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.

Ainsi, la variable HISTFILEcontiendra le nom de fichier où l'historique sera enregistré.

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

Vous pouvez maintenant rechercher le motif:

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

Comme l'a souligné @Dennis, si vous le souhaitez, vous pouvez exécuter history -apour ajouter l'historique des commandes de la session en cours d'exécution au $HISTFILEfichier. Fondamentalement, les commandes seront automatiquement ajoutées une fois que vous fermerez une session, history -aferont la même chose à cet instant.

Exécutez help historypour avoir plus d'idée sur le historybuiltin lui-même.

heemayl
la source
1
Notez que le fichier d'historique ne contient généralement pas de lignes entrées depuis le début de la session bash en cours, ce qui peut être corrigé en exécutant history -a.
Dennis
@Dennis: Good point..added ..
heemayl
4

Essaye ça:

history > output.txt
less output.txt

Recherchez ensuite en tapant /+searchterm

The Nightman
la source
3

L'historique de bash est enregistré dans votre répertoire personnel ~/.bash_history.

Fondamentalement Ctrl+ Rrecherche dans ce fichier.

Sh1d0w
la source