GNU/Linux >> Znalost Linux >  >> Linux

proč smazání bash historie nestačí?

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.


Linux
  1. Analýza historie Bash v Linuxu

  2. Příkaz nenalezen v Bash Opraveno

  3. Proč substituce procesu Bash nefunguje s některými příkazy?

  1. Proč Bash neukládá příkazy, které začínají mezerami?

  2. Automatické vyčištění historie Bash?

  3. Pole v Bash nenalezeno

  1. Jak používat příkazy historie Bash

  2. Jak vymazat historii Bash na Linuxu

  3. Proč neblokovat ICMP?