Vraag Hoe bash-geschiedenis volledig wissen?


Ik wil alle vorige opdrachten uit de geschiedenis van mijn server wissen. ik gebruikte history -c en het lijkt alsof alle dingen zijn gewist, maar als ik de server ss, zijn alle opdrachten nog steeds aanwezig.

Hoe kan ik ze permanent wissen?


221
2017-09-23 05:44


oorsprong




antwoorden:


Het bestand ~/.bash_history houdt de geschiedenis vast.

Om de bash-geschiedenis volledig op de server te wissen, opent u terminal en typt u

cat /dev/null > ~/.bash_history

Andere alternatieve manier is om te linken ~/.bash_history naar /dev/null

Echter,

Een vervelende bijwerking is dat de geschiedenisvermeldingen een kopie in het geheugen en het zal terugspoelen naar het bestand wanneer u uitlogt.

Om dit te omzeilen, gebruikt u de volgende opdracht (werkte voor mij):

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

289
2017-09-23 05:51



je kunt ook boven commando plaatsen in .bashrc & .bash_logout. wat het betekent wanneer je inlogt, je hebt een duidelijke geschiedenis en wanneer je uitlogt, wordt je geschiedenis gewist - Qasim
Waarom heb je / dev / null nodig? zou het niet > ~/.bash_hstory genoeg zijn? - configurator
ja het zou genoeg zijn! - fromnaboo
Ik probeerde het op een framboosdoos te doen terwijl ik via SSH met hem verbonden was. Ik voegde het bovenstaande commando (cat / dev / null> ~ / .bash_history && history -c && exit) toe aan zowel .bashrc & .bash_logout als voorgesteld door @Qasim. Nu, zodra ik verbinding maak via SSH, sluit de externe host de verbinding (na het afdrukken van de motd). Helpen :/ - Advanced
Laat zien wat er gebeurt als je blindelings dingen doet zonder goed te lezen en zonder de verwerking en gegevensstroom te begrijpen. Het toont ook de valkuilen van slechte communicatie. Wat devav2 deed, werd het een keer uitgevoerd en wat Qasim zou moeten hebben geschreven, is het verwijderen van het exit-commando voordat het in het inlogscript wordt toegevoegd. - Sri


Wat moeten we doen:

In elk open bash-shell (mogelijk hebt u meerdere terminals open):

history -c
history -w

Waarom: Zoals hierboven aangegeven, history -c leegt het bestand ~/.bash_history. Het is belangrijk op te merken dat bash shell niet direct geschiedenis doorspoelt naar het bash_history bestand. Het is dus belangrijk om (1) de geschiedenis door te spoelen naar het bestand en (2) de geschiedenis te wissen, in alle terminals. Dat is wat de bovenstaande commando's doen.

Referentie: 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



Eigenlijk werkte andersom voor mij. - kristianp
In veel gevallen kunt u deze twee opdrachten samen combineren: history -cw - Elliot
Om een ​​of andere reden werkt dit niet op Ubuntu 14.04, waarschijnlijk anderen. Het zou moeten, maar het doet het niet. Als u de opdracht "history -cw" geeft, kunt u met de pijl omhoog bevestigen dat de geschiedenis er niet meer is, maar als u een ander terminalvenster (in Unity-bureaublad) start met shift + klik op het terminalpictogram (ik heb het vastgezet in het opstartprogramma) de geschiedenis van de opdrachten terug, maakt niet uit hoe vaak u "geschiedenis -cw" doet. "cat / dev / null> ~ / .bash_history" is de enige manier die voor mij werkte. - Hatoru Hansou
Hoewel ik geen Ubantu ben, werkt het prima voor mijn bash-shell in OSX. - Scott Biggs
Het is geschiedenis -c en dan geschiedenis -w, u eerst wist de geschiedenis en schrijft vervolgens de wijzigingen. Dit wordt eenvoudig bevestigd door de terminal te sluiten en opnieuw te openen, waarbij -w eerst de opdrachten er weer zijn, met -w de laatste geschiedenis effectief is gewist. - Hatoru Hansou


voer de volgende opdrachten uit om de geschiedenis voor altijd te wissen

history -c && history -w

succes!


44
2017-08-12 12:39





Er is nog een veel eenvoudiger: rennen history -c op de terminalprompt en weg zijn alle gegevens in de bash_history het dossier.


19
2018-03-10 18:10



Nee dat is het niet. Uitloggen, inloggen, pijl omhoog geeft me alles. Je hebt ook de "history -w" nodig. - stolsvik
Als je de OP's vraag leest, zou je dat wel weten history -c is de exacte methode die tot deze vraag heeft geleid. - J.Money


Een andere manier om dit te doen is het verwijderen van ~/.bash_history bestand met behulp van rm ~/.bash_history opdracht. Wanneer u zich een andere keer aanmeldt, wordt de .bash_history bestand wordt automatisch gemaakt.


10
2017-09-23 06:18



Tenminste op sommige besturingssystemen ~ / .bash_history wordt naar schijf geschreven wanneer je uitlogt - niet zeker van * buntus. - d-_-b


Wis de geschiedenis van de huidige shell:

history -c

Wanneer u uitlogt, wordt de geschiedenis van uw huidige shell toegevoegd aan ~ / .bash_history, wat een cache is van de geschiedenis van vorige shells, tot een maximum aantal (zie HISTFILESIZE in "man bash").

Als je de geschiedenis helemaal wilt verwijderen, moet je in wezen ~ / .bash_history leegmaken, wat veel van de bovenstaande items hebben gesuggereerd. Zoals:

history -c && history -w

Dit wist de geschiedenis van de huidige shell en dwingt de huidige shell-geschiedenis (leeg) om ~ / .bash_history .... te overschrijven of om nauwkeuriger te zijn, het dwingt het om HISTFILE (dat standaard naar ~ / .bash_history) overschrijft.

Ik hoop dat dit helpt.


5
2017-07-10 17:05



Je antwoord is juist, maar de vraag was twee jaar oud, had antwoorden geaccepteerd en bevatte hetzelfde antwoord dat je hebt gegeven. - Charles Green


rm ~/.bash_history; history -c; logout

Log weer in en wees er getuige van dat je pijl omhoog je niets geeft.


5
2017-10-01 19:16



@KasiyA Het gaat om een ​​server en een ssh-sessie, dus het is niet nodig om te bewerken ... - Radu Rădeanu


Probeer deze

bewerk je .profile en voeg de regel onderaan toe aan het einde van het bestand

rm -f .bash_history

op deze manier zal het elke keer dat u inlogt automatisch uw .bash_history bestand voor u verwijderen. Het toevoegen van de -r recursieve verwijderoptie lijkt gevaarlijk en niet nodig.


0
2017-08-30 18:06