web-dev-qa-db-fra.com

Comment effacer l'historique du terminal?

J'utilise Linux Mint 17.1 Rebecca depuis environ 2 jours et j'ai accidentellement tapé mon mot de passe dans le terminal qui est maintenant affiché dans la liste historique des commandes que j'ai déjà tapées.

Je veux effacer complètement l'historique du terminal. J'ai essayé d'utiliser les commandes suivantes dans le terminal qui, selon moi, effaceraient l'historique à tout jamais, mais elles ne le font pas:

history -c
reset
tput reset

Les commandes ci-dessus "effaceront" l'historique du terminal, mais lorsque je quitte et que j'en crée un nouveau, tout mon historique précédent est toujours là et peut être à nouveau répertorié à l'aide de la commande - history et également en appuyant sur la flèche HAUT de mon clavier . Je ne veux pas que cela se produise avant d'avoir totalement effacé mon historique, alors je veux continuer à l'utiliser.

Comment effacer complètement l'historique de mon terminal - pour toujours et recommencer à zéro?

Veuillez noter: je ne veux pas quitter le terminal sans enregistrer l'historique, effacez-le pour toujours dans cette seule instance.

101
Shambhala

reset ou tput reset ne fait que des choses sur le terminal. L'histoire est entièrement gérée par Shell, qui reste inchangée.

history -c efface votre historique dans le shell actuel. C'est suffisant (mais exagéré) si vous venez de taper votre mot de passe et que vous n'avez pas quitté Shell ou enregistré son historique explicitement.

Lorsque vous quittez bash, l'historique est enregistré dans le fichier historique, qui est par défaut .bash_history dans votre répertoire personnel. Plus précisément, l'historique créé lors de la session en cours est annexé au fichier; les entrées déjà présentes ne sont pas affectées. Pour remplacer le fichier d'historique par l'historique du shell actuel, exécutez history -w.

Au lieu de supprimer toutes vos entrées d'historique, vous pouvez ouvrir .bash_history dans un éditeur et supprimez les lignes que vous ne souhaitez pas conserver. Vous pouvez également le faire à l'intérieur de bash, moins facilement, en utilisant history pour afficher toutes les entrées, puis history -d pour supprimer les entrées dont vous ne voulez pas, et enfin history -w sauver.

Notez que si plusieurs instances bash en cours d'exécution ont lu le mot de passe, chacune d'entre elles peut le réenregistrer. Avant de purger définitivement le mot de passe du fichier historique, assurez-vous qu'il est purgé de toutes les instances Shell en cours d'exécution.

Notez que même après avoir modifié le fichier d'historique, il est possible que votre mot de passe soit toujours présent quelque part sur le disque à partir d'une version antérieure du fichier. Il ne peut plus être récupéré via le système de fichiers, mais il pourrait toujours être possible (mais probablement pas facile) de le trouver en accédant directement au disque. Si vous utilisez ce mot de passe ailleurs et que votre disque est volé (ou si quelqu'un a accès au disque), cela pourrait être un problème.

J'ai essayé l'histoire -c mais l'histoire revient une fois que nous sortons et rouvre. Cela m'a aidé.

cat /dev/null > ~/.bash_history && history -c && exit

Cela efface l'historique enregistré dans le fichier historique ainsi que l'historique de la session en cours (afin qu'il ne soit pas enregistré dans le fichier lorsque bash se ferme). Il quitte ensuite le shell. La prochaine session Shell n'aura pas d'historique.

41
athul

Au lieu de supprimer toutes vos entrées d'historique, tapez ces commandes dans votre terminal:

  1. history -c (pour l'historique de suppression)
  2. history -w (enregistrer l'historique)
20
user171143

Parce qu'il y a un problème de sécurité ici, vous devez envisager de supprimer en toute sécurité le fichier d'historique.

$ shred -u ~/.bash_history && touch ~/.bash_history
7
C0D3R3D

En tant que néophyte confronté au même problème, j'ai eu recours à l'expédient plutôt brutal de supprimer et de recréer le fichier historique: -

rm .bash_history
touch .bash_history

Cela a fonctionné pour moi sans provoquer d'effets secondaires désagréables à ma connaissance.

5
Hairy Joe

Type: history -c; rm ~/.bash_history

history -c efface l'historique de votre session en cours, rm ~/.bash_history efface votre historique à long terme, donc history -c; rm ~/.bash_history efface les deux.

4
ANTHONY