Je souhaite afficher le contenu de mon fichier .bash_history
mais je ne sais pas comment y accéder via la ligne de commande.
Si vous souhaitez 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 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 history
comme @ minerz029 le suggère. La commande history
name__ , 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.
Si vous avez besoin du fichier .bash_history
, remplacez history
parcat ~/.bash_history
dans toutes les commandes ci-dessous.
Si vous voulez réellement les commandes sans chiffres devant, utilisez cette commande au lieu de history
name__:
history | cut -d' ' -f 4-
sinon, il n'y aura aucune différence (sauf si vous utilisez un autre shell).
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).
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).
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.
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.
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.