web-dev-qa-db-fra.com

Comment visualiser le fichier `.bash_history` en ligne de commande?

Je souhaite afficher le contenu de mon fichier .bash_history mais je ne sais pas comment y accéder via la ligne de commande.

67
isupportopensource

Si vous souhaitez accéder au fichier lui-même, utilisez simplement votre éditeur de texte préféré (j'utilise emacsmais vous pouvez utiliser plumade geditou vimou autre):

emacs ~/.bash_history

C’est l’emplacement par défaut de votre fichier d’historique. Si vous n'y trouvez rien, vous avez peut-être changé le nom du fichier historique. Ceci est stocké dans la variable $HISTFILE, donc 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 historycomme @ minerz029 le suggère. La commande historyname__ , sans aucune option, imprime simplement le contenu de votre $HISTFILE suivi des commandes exécutées dans le shell actuel qui n’ont pas encore été écrites dans ce fichier, avec les numéros de ligne.

54
terdon

Si vous avez besoin du fichier .bash_history, remplacez historypar
cat ~/.bash_history dans toutes les commandes ci-dessous.

Si vous voulez réellement les commandes sans chiffres devant, utilisez cette commande au lieu de historyname__:

history | cut -d' ' -f 4-

sinon, il n'y aura aucune différence (sauf si vous utilisez un autre shell).


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 la dernière exécutée imprimée en dernier (en bas). Vous pouvez remplacer apt-get par n'importe quelle commande (ou argument de commande) que vous souhaitez rechercher (il peut s'agir d'une expression régulière).


Faire défiler l'histoire

Vous pouvez utiliser

history | tac | less

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

De même, utiliser

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

pour faire défiler toutes les commandes exécutées avec "apt-get" (en incluant les arguments) en commençant par la plus récente en haut. presse q pour quitter.

46
kiri

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

Pour rappel, la commande 'history' imprime l'historique avec un numéro à côté.

Vous pouvez diriger la sortie de l'historique dans grep, less etc.

La sortie de l'historique affiche également un nombre à 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.

par exemple. pour relancer 473 je taperais dans le terminal

 admin@xen1~$ !473

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

Vous pouvez également rechercher interactivement à l'envers dans l'historique des commandes en tapant ctrl + r clés, puis commencer à saisir une partie du contenu de la commande. Le moteur de recherche le complétera. Lorsque vous l'avez trouvé, vous pouvez taper entrée pour le répéter ou appuyer sur la touche [tab] pour le copier sur la ligne de commande afin de modifier la commande en premier.

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

15
Matt H

enter image description here

Vous voudrez peut-être essayer l’historique "semblable à une boîte" https://github.com/dvorka/hstr - il lit l’historique Bash et permet une navigation rapide.

1
Martin Dvorak