Comment afficher le fichier '.bash_history' via la ligne de commande?

54

Je veux voir le contenu de mon fichier .bash_history mais je ne sais pas comment y arriver via la ligne de commande.

    
posée isupportopensource 14.10.2013 - 11:46
la source

4 réponses

45

Si vous voulez accéder au fichier lui-même, utilisez simplement votre éditeur de texte préféré (j'utilise emacs mais vous pouvez utiliser pluma de gedit ou vim ou autre):

emacs ~/.bash_history

C'est l'emplacement par défaut si votre fichier d'historique. Si vous n'y trouvez rien, vous avez peut-être changé le nom du fichier d'historique. Ceci est stocké dans la variable $HISTFILE , alors imprimez-le pour vérifier sa valeur actuelle:

echo $HISTFILE

Si, au lieu du fichier, vous souhaitez simplement consulter votre historique, vous pouvez exécuter history comme suggéré par @ minerz029. La commande history sans option affiche simplement le contenu de votre $HISTFILE suivi par les commandes exécutées dans le shell courant qui n'ont pas encore été écrites dans ce fichier, avec des numéros de ligne.

    
réponse donnée terdon 14.10.2013 - 23:43
la source
40

Si vous avez réellement besoin de la sortie du fichier .bash_history , remplacez history par
cat ~/.bash_history dans toutes les commandes ci-dessous.

Si vous voulez réellement les commandes sans numéros devant, utilisez cette commande au lieu de history :

history | cut -d' ' -f 4-

sinon, il n'y aura pas de différence (sauf si vous utilisez un shell différent).

15 dernières commandes

Vous pouvez utiliser

history | tail -n 15

pour obtenir uniquement les 15 dernières lignes de votre historique avec le dernier imprimé en dernier (en bas).

Rechercher une commande

Sinon, utilisez

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

pour obtenir les 15 dernières commandes contenant apt-get avec le dernier imprimé en dernier (en bas). Vous pouvez remplacer apt-get par toute commande (ou argument de commande) que vous souhaitez rechercher (il peut s'agir d'une expression régulière).

Défilement de l’historique

Vous pouvez utiliser

history | tac | less

faire défiler tous les commandes exécutées en commençant par la plus récente en haut. Appuyez sur q pour quitter.

De même, utilisez

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

faire défiler tous les commandes exécutées avec " apt-get " (y compris les arguments) en commençant par la plus récente en haut. Appuyez sur q pour quitter.

    
réponse donnée kiri 14.10.2013 - 12:07
la source
15

En plus de l’excellente réponse de minerz029.

Pour réitérer - la commande "history" imprime l'historique avec un numéro à côté.

Vous pouvez diriger la sortie de l’historique dans grep, moins, etc.

La sortie de l’historique indique également un chiffre à gauche de la sortie. par exemple

  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 

Avec ce numéro, vous pouvez relancer la commande.

p. ex. pour relancer 473 je taperais dans le terminal

 [email protected]~$ !473

suivi de la touche Entrée pour répéter la commande à côté de 473 dans la sortie de l'historique.

Vous pouvez également effectuer une recherche interactive en amont dans l’historique des commandes en saisissant ctrl + r keys, puis commencez à taper une partie du contenu de la commande pour la rechercher et la remplir. Lorsque vous l'avez trouvé, vous pouvez taper enter pour le répéter ou appuyer sur la touche [tab] pour le copier sur la ligne de commande pour modifier la commande en premier.

Bien sûr, ces deux dernières options fonctionnent dans le shell bash. Je ne suis pas sûr si ces fonctionnalités fonctionnent dans d'autres shells. Mais puisque bash est le shell par défaut d'Ubuntu, vous devriez les trouver ici.

    
réponse donnée Matt H 15.10.2013 - 01:47
la source
1

Vous pouvez essayer "suggère la boîte" - comme l’historique lien - il lit l’historique des Bash et permet une navigation rapide.

    
réponse donnée Martin Dvorak 11.05.2015 - 14:15
la source

Lire d'autres questions sur les étiquettes