V některých případech (některé verze bash) proveďte následující:
$ history -c; history -w
Nebo jednoduše
$ history -cw
Vymaže historii v paměti (šipka nahoru a dolů nebude obsahovat žádné příkazy k seznamu) a poté zapíše to na $HISTFILE
soubor (pokud je $HISTFILE
bude zkrácen běžící instancí bash).
Někdy se bash rozhodne ne zkrátit $HISTFILE
soubor i s histappend
možnost není nastavena a $HISFILEZIZE
nastavte na 0.
V takových případech vždy funguje možnost nuke:
history -c; >$HISTFILE
Tím se vymaže seznam historie příkazů zaznamenaných v paměti a všechny příkazy dříve zaznamenané do souboru. To zajistí, že spuštěný shell nebude mít žádnou zaznamenanou historii v paměti ani na disku, nicméně ostatní spuštěné instance bash (kde je historie aktivní) mohou mít plnou kopii příkazů načtenou z $HISTFILE
když byl spuštěn bash (nebo když history -r
se provede).
Pokud je také vyžadovalo, aby se do souboru historie nezapisovalo nic jiného (žádné nové příkazy) z aktuální relace, pak unset HISTFILE
zabrání takovému protokolování.
bash
má v paměti historii relace, která se zapisuje do souboru, pokud je proměnná shellu HISTFILE
je nastaveno na název souboru, když bash
ukončí.
Pokud smažete soubor, na který ukazuje HISTFILE
, zrušte nastavení této proměnné a ukončete bash
, pak tato shellová relace nezanechá žádnou trvalou historii.
Nepodařilo se zrušit nastavení HISTFILE
proměnná, ale smazání souboru by pouze vyprázdnilo trvalou historii, ale historie aktuální relace by byla uložena při ukončení shellu.