Pracuji v Mac OSX, takže myslím, že používám bash ...?
Někdy zadávám něco, co si v historii nechci pamatovat. Jak jej odstraním?
Pokud chcete spustit příkaz, aniž byste jej uložili do historie, přidejte jej s mezerou navíc
Prompt$ echo saved
Prompt$ echo not saved \
> # ^ extra space
Aby to fungovalo, potřebujete buď ignorespace
nebo ignoreboth
v HISTCONTROL
. Například spusťte
HISTCONTROL=ignorespace
Chcete-li, aby toto nastavení bylo trvalé, vložte jej do svého .bashrc
.
Pokud jste již příkaz spustili a chcete jej odstranit z historie, nejprve jej použijte
history
pro zobrazení seznamu příkazů v historii. Vyhledejte číslo vedle čísla, které chcete odstranit (např. 1234), a spusťte
history -d 1234
Kromě toho, pokud byl řádek, který chcete odstranit, již zapsán do vašeho $ HISTFILE (což se obvykle stane, když ve výchozím nastavení ukončíte relaci), budete muset napsat zpět do $ HISTFILE, nebo se řádek znovu objeví, když otevřete nový zasedání:
history -w
Chcete-li vymazat celou svou historii, použijte
history -c
Chcete-li odstranit jeden řádek, použijte
history -d linenumber
Mám to ve svém ~/.bashrc
, což dělá příkaz $ forget
odstranit předchozí příkaz z historie
function forget() {
history -d $(expr $(history | tail -n 1 | grep -oP '^ \d+') - 1);
}
Vždy můžete upravovat a odstraňovat záznamy z ~/.bash_history
, užitečné, pokud chcete odebrat jeden nebo více záznamů
Pokud chcete zapomenout na celou bash relaci, můžete kill
aktuální bash proces. Od proměnné $$
podržte pid
aktuálního prostředí, můžete:
kill -9 $$
Rychlé kroky:
echo $HISTFILE
history
v termináluV Ubuntu (ale jsem si jistý, že to bude fungovat i pro další distribuce Linuxu a také pro MacOS). Soubor s historií bash lze jednoduše editovat v libovolném textovém editoru:
$ nano ~/.bash_history
Pokud nevíte, kde je uložena, najdete ji takto:
$ echo $HISTFILE
Nebo to můžete udělat jen o něco obecnější:
$ nano $HISTFILE
Po vymazání historie musíte napsat změny. A pokud byste nechtěli mít v historii historii příkaz k vymazání historie, musíte příkaz spustit takto:
history -c && history -w && logout
Hodně štěstí.
Chcete-li odebrat jeden řádek ze souboru historie, použijte volbu -d. Pokud například chcete vymazat příkaz, ve kterém jste zadali heslo pro prostý text jako ve výše uvedeném scénáři, vyhledejte číslo řádku v souboru historie a spusťte tento příkaz.
$ history -d 2038
Chcete-li odstranit nebo vymazat všechny záznamy z historie bash, použijte příkaz historie níže s možností -c.
$ history -c
Případně můžete použít příkaz níže k odstranění historie všech naposledy provedených příkazů trvale v souboru.
$ cat /dev/null > ~/.bash_history
S Bash 5 můžete také odstranit rozsah
history -d 511-520
1- v bash terminálu typu
history
# Zobrazí seznam všech příkazů v souboru .bash_history v historii s čísly řádků
ex:
...
987 cd
988 ssh [email protected]
990 exit
991 cd
2 - vyberte číslo řádku CMD, který chcete odstranit
history -d 988
Poznámka: Pokud chcete smazat například poslední 3 CMD, stačí vybrat číslo třetího řádku ze spodní části ex: 988 a zopakovat CMD history -d 988
3krát za sebou.