Ik wil een specifieke vermelding in mijn Zsh-geschiedenis verwijderen.
Zsh’s fc
en history
hebben geen opties om items te verwijderen. Ik heb geprobeerd te zoeken naar de ~/.zhistory
maar die bestaat niet. Hoe kan ik de locatie van het geschiedenisbestand vinden en het item verwijderen?
Antwoord 1, autoriteit 100%
U zoekt in het verkeerde bestand. Kijk naar ~/.zsh_history
niet ~/.zhistory Om te zien in welk bestand je geschiedenis is opgeslagen
echo $HISTFILE
En
rm $HISTFILE
Antwoord 2, autoriteit 49%
Zsh-geschiedenis wissen (oh-my-zsh)
- iTerm sluiten, afsluiten en opnieuw openen
- voer
nano .zsh_history
- gebruik de
arrow keys
om naar het deel van je geschiedenis te gaan dat je wilt verwijderen. - gebruik de
delete
-toets om alle ongewenste geschiedenislogboeken te verwijderen. - Zodra je alles hebt verwijderd dat je wilt verwijderen, selecteer je
control X
omExit
te gebruiken. - U wordt gevraagd om de wijzigingen
Save
te maken. Als u tevreden bent met uw wijzigingen, klikt u opshift Y
. - U wordt gevraagd waar u uw wijzigingen wilt opslaan. Selecteer
control T
omto File
op te slaan. - navigeer naar uw
.zsh_profile
met uwarrow keys
en druk op enter. - Sluit iTerm af en herstart.
- typ
history
om de verwijderingen te bevestigen. - Je hebt je Zsh-geschiedenis gewist.
uit
Antwoord 3, autoriteit 32%
Wis zsh-geschiedenis op unix-systemen.
echo "" > ~/.zsh_history & exec $SHELL -l
Antwoord 4, autoriteit 9%
- open
~/.zshrc
-
voeg de volgende regel toe
alias clear_history='echo "" > ~/.zsh_history & exec $SHELL -l'
-
Bewaar het bestand en sluit het
- Sluit de console of typ
zsh
als je het resultaat direct wilt zien, maar dit opent een andere zsh-shell in de oude - Je kunt nu de console wissen door
clear_history
te typen
Alle eerdere antwoorden zijn goed, dit is gewoon de oplossing die voor mij werkte.
Antwoord 5, autoriteit 8%
- lees dit voor meer info
https://www.techrepublic.com /article/hoe-effectieve-wis-je-bash-geschiedenis/
TL;DR
cat /dev/null > ~/.zsh_history
Antwoord 6, autoriteit 5%
Je kunt deze commando’s gebruiken om de geschiedenis van het zsh-commando te openen (wanneer je in de home- of ~-directory bent) en aannemen dat je weet hoe je vim
en nano
moet gebruiken:
nano ~/.zsh_history
vim ~/.zsh_history
open ~/.zsh_history
dan kunt u de gewenste regels handmatig verwijderen en het bestand opslaan.
Antwoord 7, autoriteit 5%
- Typ en voer uit op de zsh-opdrachtregel, open ~/.zsh_history (Hiermee wordt TextEdit op mijn Mac geopend.)
- Verwijder alle regels in het bestand
- Bewaar het bestand en sluit het
- Sluit/sluit de Zsh volledig af en start de Zsh opnieuw (deze stap is belangrijk!)
- Open nu zsh en het geschiedeniscommando toont niet de regels die je hebt verwijderd
Antwoord 8, autoriteit 3%
Gebruik voor een uitgebreide, kant-en-klare oplossing mijn Zsh Hist-plug-in.
Anders verwijdert deze functie elke gewenste regel uit je Zsh-geschiedenis, zonder dat er vragen worden gesteld:
# Accepts one history line number as argument.
# Alternatively, you can do `dc -1` to remove the last line.
dc () {
# Prevent the specified history line from being saved.
local HISTORY_IGNORE="${(b)$(fc -ln $1 $1)}"
# Write out the history to file, excluding lines that match `$HISTORY_IGNORE`.
fc -W
# Dispose of the current history and read the new history from file.
fc -p $HISTFILE $HISTSIZE $SAVEHIST
# TA-DA!
print "Deleted '$HISTORY_IGNORE' from history."
}
Als u bovendien wilt voorkomen dat alle dc
-opdrachten naar de geschiedenis worden geschreven, voegt u het volgende toe aan uw ~/.zshrc
-bestand:
zshaddhistory() {
[[ $1 != 'dc '* ]]
}
Antwoord 9
Bijvoorbeeld met vim
kun je eenvoudig de laatste n
regels als volgt verwijderen:
- Bestand openen:
vim ~/.zsh_history
- Ga naar de onderkant van het bestand:
G
- Markeer regels:
V
-> ga omhoog met de pijltjestoets - Verwijderen:
d
- Schrijf & afsluiten:
:wq
Of je kunt gewoon met de cursor navigeren en een bepaalde regel verwijderen met dd
Antwoord 10
Voor ZSH
Om het geschiedenisbestand te vinden:
echo $HISTFILE
- Bewerk vervolgens het bestand en verwijder alle regels die u wilt verwijderen zoals u zou doen met
history -d id
. - Bewaar het bestand.
- Open een nieuwe terminal en je zou moeten zien dat er niets meer te zien is!
Ik ben echter verbaasd dat history -d
niet bestaat. Als het bestaat, is het goed verborgen.
Antwoord 11
Open .zsh_history
met je favoriete editor en sla toetsaanslagen op.
bijv. subl .zsh_history
opent de geschiedenis in de Sublime-editor en verwijdert vervolgens wat je maar wilt.
Je kunt ook TextEdit of andere editors gebruiken.
Antwoord 12
Dit werkte voor mij:
LC_ALL=C sed -i '' '/line/d' $HISTFILE
Vervang “regel” door wat u wilt verwijderen.
Van dit antwoord:
https://stackoverflow.com/posts/13661794/revisions