web-dev-qa-db-fra.com

Comment effacer complètement l'histoire bash?

Je veux effacer toutes les commandes précédentes de l'historique de mon serveur. J'ai utilisé history -c et il semble que tout soit effacé, mais lorsque je ssh au serveur, toutes les commandes sont toujours là.

Comment puis-je les effacer de façon permanente?

247
hd.

Le fichier ~/.bash_history contient l'historique.

Pour effacer l’historique bash complètement sur le serveur, ouvrez terminal et tapez

cat /dev/null > ~/.bash_history

Une autre méthode consiste à relier ~/.bash_history à /dev/null

Cependant,

Un effet secondaire gênant est que les entrées de l'historique ont un copie dans la mémoire et il va revenir dans le fichier lorsque vous vous déconnectez.

Pour contourner ce problème, utilisez la commande suivante (a travaillé pour moi):

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

Que faire:

Dans chaque bash Shell ouvert (vous pouvez avoir plusieurs terminaux ouverts):

history -c
history -w

Pourquoi: comme indiqué ci-dessus, history -c vide le fichier ~/.bash_history. Il est important de noter que bash Shell ne vide pas immédiatement l'historique dans le fichier bash_history. Il est donc important de (1) vider l'historique dans le fichier et (2) d'effacer l'historique dans tous les terminaux . C'est ce que font les commandes ci-dessus.

Référence: http://www.giannistsakiris.com/index.php/2007/09/13/how-to-clear-bash-history-and-what-to-watch-out-for/ =

135
callpraths

exécuter les commandes suivantes pour effacer l'historique pour toujours

history -c && history -w

bonne chance!

56
Edwin Jose

Il existe une autre solution beaucoup plus simple: exécuter history -c sur l'invite du terminal et supprimer toutes les entrées du fichier bash_history.

20
Peter Eijlander

Une autre méthode consiste à supprimer le fichier ~/.bash_history à l’aide de la commande rm ~/.bash_history. Lorsque vous vous connectez une autre fois, le fichier .bash_history sera automatiquement créé.

10
Anwar

Effacer l'historique du shell actuel:

history -c

Lorsque vous vous déconnectez, l'historique de votre shell actuel est ajouté à ~/.bash_history, qui est un cache des historiques des shells précédents, jusqu'à un nombre maximal (voir HISTFILESIZE dans "man bash").

Si vous souhaitez supprimer complètement l'historique, vous devez essentiellement vider ~/.bash_history comme le suggèrent nombre des entrées ci-dessus. Tel que:

history -c && history -w

Cela efface l’historique du shell actuel, puis force l’historique (vide) à écraser ~/.bash_history .... ou, pour être plus précis, le force à écraser HISTFILE (dont la valeur par défaut est ~/.bash_history).

J'espère que cela t'aides.

7
mobiGeek
rm ~/.bash_history; history -c; logout

Reconnectez-vous maintenant et constatez que votre flèche vers le haut ne vous donne rien.

6
stolsvik

Essaye celui-là

éditez votre .profile et ajoutez la ligne ci-dessous à la fin du fichier

rm -f .bash_history

ainsi, chaque fois que vous vous connecterez, votre fichier .bash_history sera automatiquement supprimé. L'ajout de l'option de suppression récursive -r semble dangereux et inutile.

0
Mixed IT Prof