Question Comment effacer complètement l'histoire de 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 toutes les choses soient effacées mais quand je ssh au serveur, toutes les commandes sont toujours là.

Comment puis-je les effacer définitivement?


221
2017-09-23 05:44


origine




Réponses:


Le fichier ~/.bash_history détient l'histoire.

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

cat /dev/null > ~/.bash_history

Autre moyen alternatif est de lier ~/.bash_history à /dev/null

cependant,

Un effet secondaire désagréable est que les entrées d’historique ont un copier dans la mémoire et ce sera retourner au 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

289
2017-09-23 05:51



vous pouvez également mettre la commande ci-dessus dans .bashrc & .bash_logout. ce que cela signifie quand vous vous connectez, vous aurez un historique clair et lorsque vous vous déconnecterez, votre historique sera effacé - Qasim
Pourquoi avez-vous besoin de / dev / null là? Ne serait pas > ~/.bash_hstory être assez? - configurator
oui ça suffirait! - fromnaboo
J'ai essayé de le faire sur une boîte de framboise tout en étant connecté via SSH. J'ai ajouté la commande ci-dessus (cat / dev / null> ~ / .bash_history && history -c && exit) à la fois à .bashrc & .bash_logout comme suggéré par @Qasim. Désormais, dès que je me connecte via SSH, l'hôte distant ferme la connexion (après avoir imprimé le motd). Aidez-moi :/ - Advanced
Va montrer ce qui se passe lorsque vous faites aveuglément des choses sans lire correctement et sans comprendre le traitement et le flux de données. Cela montre aussi les pièges d'une mauvaise communication. Ce que devav2 a fait a été de l'exécuter une fois, et ce que Qasim aurait dû écrire est de supprimer la commande exit avant de l'ajouter au script de connexion. - Sri


Que faire:

Dans chaque open bash shell (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 le shell bash 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) 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/


115
2018-04-11 20:55



En fait, l’inverse a fonctionné pour moi. - kristianp
Dans de nombreux cas, vous pouvez combiner ces deux commandes ensemble: history -cw - Elliot
Pour une raison quelconque, cela ne fonctionne pas sur Ubuntu 14.04, probablement d'autres. Cela devrait, mais ce n'est pas le cas. Si vous lancez la commande "history -cw" vous pouvez confirmer avec la flèche vers le haut que l'historique n'est plus là, mais si vous démarrez une autre fenêtre de terminal (dans le bureau Unity) avec Maj + clic sur l'icône du terminal (je l'ai épinglé dans le lanceur) l'historique des commandes est de retour, peu importe combien de fois vous faites "history -cw". "cat / dev / null> ~ / .bash_history" est le seul moyen qui a fonctionné pour moi. - Hatoru Hansou
Bien que je ne sois pas Ubantu, cela fonctionne très bien pour mon shell bash dans OSX. - Scott Biggs
C'est l'histoire -c et ensuite l'historique -w, vous effacez d'abord l'historique puis écrivez les modifications. Cela se confirme facilement en fermant le terminal et en l'ouvrant à nouveau, avec -w d'abord les commandes sont là encore, avec -w last history est effacé efficacement. - Hatoru Hansou


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

history -c && history -w

bonne chance!


44
2017-08-12 12:39





Il y en a une autre beaucoup plus simple: courir history -c sur l'invite du terminal et parti sont toutes les entrées dans le bash_history fichier.


19
2018-03-10 18:10



Non, ce n'est pas Déconnectez-vous, connectez-vous, flèche en haut me donne tout. Vous avez besoin du "history -w" aussi. - stolsvik
Si vous lisez la question du PO, vous sauriez que l'utilisation de history -c est la méthode exacte qui a conduit à cette question. - J.Money


Une autre façon de faire est de supprimer le ~/.bash_history fichier en utilisant rm ~/.bash_history commander. Lorsque vous vous connectez une autre fois, le .bash_history fichier sera automatiquement créé.


10
2017-09-23 06:18



Au moins sur certains OS, ~ / .bash_history est écrit sur le disque lorsque vous vous déconnectez - Vous ne savez pas si * buntus. - d-_-b


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, à un nombre maximum (voir HISTFILESIZE dans "man bash").

Si vous voulez supprimer l’historique, vous devez essentiellement vider ~ / .bash_history que beaucoup des entrées ci-dessus ont suggéré. Tel que:

history -c && history -w

Cela efface l'historique du shell en cours, puis force l'historique du shell actuel (vide) à écraser ~ / .bash_history .... ou, pour être plus précis, l'oblige à écraser HISTFILE (qui utilise par défaut ~ / .bash_history).

J'espère que cela t'aides.


5
2017-07-10 17:05



Vous avez répondu correctement, mais la question avait deux ans, avait accepté les réponses et comportait la même réponse que vous avez donnée. - Charles Green


rm ~/.bash_history; history -c; logout

Maintenant, reconnectez-vous et constatez que votre flèche ne vous donne rien.


5
2017-10-01 19:16



@KasiyA Il s'agit d'un serveur et d'une session ssh, donc pas besoin de modifier ... - Radu Rădeanu


Essaye celui-là

éditer votre .profile et ajouter la ligne ci-dessous à la fin du fichier

rm -f .bash_history

De cette façon, chaque fois que vous vous connectez, votre fichier .bash_history sera automatiquement supprimé pour vous. L'ajout de l'option de suppression récursive -r semble dangereux et inutile.


0
2017-08-30 18:06