Comment puis-je supprimer les 5 dernières lignes de l'historique bash? Ainsi, lorsque je recharge le serveur Ubuntu ou que je le redémarre, ils ne sont pas du tout là?
history -c ne le supprime que de la session en cours, mais lorsque je me reconnecte, je revois les commandes, je veux effacer les 5 dernières.
J'ai couru:
history
Ensuite, je verrai les numéros des commandes, par exemple:
489 cd ..
490 cd .zshrc
491 cat .zshrc
Puis je cours par exemple:
history -d 489
history -c
Ensuite, je ferme le terminal, je le rouvre et je vois toujours que la ligne 489 n’a été supprimée que pour la session en cours. Comment puis-je le supprimer systématiquement de toutes les sessions?
S'il vous plaît donnez votre avis.
Il y a différentes façons d'accomplir cette tâche, mais clarifions quelque chose avant d'aller plus loin.
Il existe un fichier nommé: ~/.bash_history
, qui contient l'historique de vos sessions de terminal les plus anciennes. Chaque fois que vous fermez votre terminal, votre historique y est enregistré.
En même temps, l'historique de vos anciennes sessions et de la session en cours est temporairement accessible par les commandes history
jusqu'à la fermeture du terminal, qui sera ensuite enregistré dans le fichier ~/.bash_history
.
Donc, si vous supprimez 5 lignes à la fin de ~/.bash_history
, la fermeture du terminal rendra votre commande en cours accessible lors des prochaines sessions.
Donc, si je fais un wc
sur .bash_history:
wc -l ~/.bash_history
La plupart du temps, j'aurai un nombre inférieur à celui de history | wc -l
.
Si vous souhaitez supprimer les 5 dernières lignes du fichier, vous pouvez utiliser cette commande:
for i in {1..5}; do sed -i '$d' .bash_history; done;
Et si vous souhaitez conserver tout l'historique sauf les 5 dernières commandes émises dans la session en cours, exécutez:
history | awk '{ print $2 }' | head -n -5 > .bash_history
N'oubliez pas non plus d'exécuter history -c
.
Vous pouvez supprimer le fichier d’historique à l’aide de la ligne de commande en deux étapes:
Taper history -d <line_number>
supprime une ligne spécifiée de l'historique en mémoire. Taper history -w
écrit l'historique actuel en mémoire dans le fichier ~/.bash_history. Les deux étapes combinées suppriment la ligne de façon permanente de l'historique en mémoire et du fichier .bash_history.
Réf: StackExchange
Je pense que vous devez essayer c'est très facile et simple.
Comment supprimer l'historique sans aucune trace
history -d $((HISTCMD-1)) && history -d NO_of_History_you_want_to_delete
si vous voulez exécuter une commande sans laisser de trace.
history -d $((HISTCMD-1)) && type_your_command_here_and_execute
Ouvrez ~/.bash_history
dans votre éditeur et supprimez les 5 dernières lignes.