Je souhaite afficher le contenu de mon .bash_history
fichier mais je ne sais pas comment y accéder via la ligne de commande.
/home/username/.bash_history
?
.bash_history
n'est ajouté que lorsqu'un terminal est fermé.
Je souhaite afficher le contenu de mon .bash_history
fichier mais je ne sais pas comment y accéder via la ligne de commande.
/home/username/.bash_history
?
.bash_history
n'est ajouté que lorsqu'un terminal est fermé.
Réponses:
Si vous voulez accéder au fichier réel lui - même, il suffit d' utiliser votre éditeur de texte favori (je l' utilise emacs
mais vous pouvez utiliser pluma
des 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 $HISTFILE
variable, 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 la history
tâche suggérée par @ minerz029. La history
commande sans option n'imprime que le contenu de votre $HISTFILE
suivi des commandes exécutées dans le shell en cours qui n'ont pas encore été écrites dans ce fichier, avec des numéros de ligne.
Si vous avez réellement besoin de la sortie du .bash_history
fichier, remplacez history
par
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 history
:
history | cut -d' ' -f 4-
sinon, il n'y aura aucune différence (sauf si vous utilisez un shell différent).
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 qui contenaient apt-get
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
pour faire défiler toutes les commandes exécutées en commençant par la plus récente en haut. Appuyez sur qpour quitter.
De même, utiliser
history | grep "apt-get" | tac | less
pour faire défiler toutes les commandes exécutées avec " apt-get
" dans celles-ci (y compris les arguments) en commençant par la plus récente en haut. Appuyez sur qpour 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 effectuer une recherche interactive en arrière dans l’historique des commandes en tapant les ctrl + r
clés, puis commencer à saisir une partie du contenu de la commande. Le moteur de recherche le remplira ensuite. Lorsque vous l'avez trouvé, vous pouvez taper entrée pour le répéter ou appuyer sur la [tab]
touche 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 par défaut d’Ubuntu, vous devriez les trouver ici.
Vous voudrez peut-être essayer l'historique "de type boîte à suggestions" https://github.com/dvorka/hstr - il lit l'historique Bash et permet une navigation rapide.
history | less