Je veux voir le contenu de mon .bash_history
mais ne savent pas comment y accéder via la ligne de commande.
Réponses
Trop de publicités?Si vous voulez accéder au fichier lui-même, il suffit d'utiliser votre éditeur de texte préféré (je me sers de emacs
mais vous pouvez utiliser pluma
de gedit
o vim
ou autre) :
emacs ~/.bash_history
C'est l'emplacement par défaut de votre fichier d'historique. Si vous ne trouvez rien à cet endroit, vous avez peut-être changé le nom du fichier d'historique. Celui-ci est stocké dans le fichier $HISTFILE
la variable, alors imprimez-la pour vérifier sa valeur actuelle :
echo $HISTFILE
Si, au lieu du fichier, vous voulez juste voir votre historique, vous pouvez exécuter history
comme le suggère @minerz029. El history
commande sans 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.
Si vous avez vraiment besoin de la sortie de la .bash_history
remplacer le fichier history
aveccat ~/.bash_history
dans toutes les commandes ci-dessous.
Si vous voulez réellement les commandes sans les chiffres devant, utilisez cette commande au lieu de history
:
history | cut -d' ' -f 4-
sinon, il n'y aura aucune différence (sauf si vous utilisez un Shell différent).
Les 15 dernières commandes
Vous pouvez utiliser
history | tail -n 15
pour obtenir seulement les 15 dernières lignes de votre historique avec la dernière exécutée imprimée en dernier (en bas).
Recherche d'une commande
Vous pouvez également utiliser
history | grep "apt-get" | tail -n 15
pour obtenir les 15 dernières commandes qui contiennent apt-get
avec le dernier exécuté imprimé en dernier (en bas). Vous pouvez remplacer apt-get
avec toute 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
pour faire défiler tous les commandes exécutées en commençant par la plus récente en haut. Appuyez sur q pour sortir.
De même, utilisez
history | grep "apt-get" | tac | less
pour faire défiler tous les commandes exécutées avec " apt-get
"(y compris les arguments) en commençant par le plus récent en haut. Appuyez sur q pour sortir.
En plus de l'excellente réponse de minerz029.
Pour répéter, la commande 'history' imprime l'historique avec un numéro à côté.
Vous pouvez passer la sortie de l'historique dans grep, less, etc.
La sortie de l'historique montre aussi un numéro à gauche à côté de la sortie, par ex.
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 réexécuter la commande.
Par exemple, pour ré-exécuter 473, il faut taper 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 de l'historique.
Vous pouvez également recherche interactive en arrière dans l'historique des commandes en tapant ctrl + r
puis commencez à taper le contenu de la commande et elle le cherchera et le remplira. Lorsque vous l'avez trouvée, vous pouvez taper Entrée pour la répéter, ou appuyer sur la touche [tab]
pour le copier sur la ligne de commande afin de modifier la commande en premier lieu.
Bien sûr, ces deux dernières options fonctionnent dans le Shell de bash. Je ne suis pas sûr que ces fonctionnalités fonctionnent dans d'autres shells. Mais puisque bash est le Shell par défaut d'Ubuntu, vous devriez les y trouver.
Vous pouvez essayer l'historique de type "boîte à idées". https://github.com/dvorka/hstr - il lit l'historique du Bash et permet une navigation rapide.