Někdy spouštíme bash příkazy s citlivými informacemi. Například spuštění skriptu shellu a předání hesel jako argumentů příkazového řádku. V takovém případě je z bezpečnostních důvodů lepší vymazat historii bash.
Vymazat historii Bash v Linuxu
Když spustíme jakýkoli příkaz v shellu bash, uloží se do .bash_history soubor umístěný v domovském adresáři uživatele. Můžeme použít history příkaz pro tisk všech příkazů z tohoto souboru. Existují možnosti, jak odstranit celou historii nebo jakýkoli konkrétní příkaz z historie bash.
1. Odstraněním historie Bash odstraníte všechny příkazy
Pokud chcete historii bash úplně odstranit, můžete spustit history -c příkaz.
# history
...
737 history
738 vi .bash_history
739 cd
740 history
# history -c
# history
1 history
#
2. Odebrat konkrétní příkaz z historie Bash
Pokud chcete odstranit konkrétní položku z historie bash, použijte history -d offset příkaz. Offset je číslo řádku z výstupu history příkaz.
[root@li1176-230 ~]# ls -1 | wc -l
3
[root@li1176-230 ~]# history
1 history
2 ls
3 cd
4 ls -1 | wc -l
5 history
[root@li1176-230 ~]# history -d 4
[root@li1176-230 ~]# history
1 history
2 ls
3 cd
4 history
5 history -d 4
6 history
[root@li1176-230 ~]#
Jak vymazat historii bash v systému Mac OS
Pokud používáte prostý bash shell, můžete použít volbu -d nebo -c k odstranění historie bash.
bash-3.2$ history
1 history
2 cd
3 ls
4 pwd
5 history
bash-3.2$ history -d 4
bash-3.2$ history
1 history
2 cd
3 ls
4 history
5 history -d 4
6 history
bash-3.2$ history -c
bash-3.2$ history
1 history
bash-3.2$
ZSH vymazat historii
ZSH je v dnešní době velmi populární. Je postaven na bash shellu a poskytuje mnoho dalších funkcí, které pomáhají vývojářům. Výše uvedené příkazy historie bohužel nebudou fungovat k vymazání historie shellu ZSH. Je to proto, že historie ZSH je uložena v ~/.zsh_history soubor. Pokud chcete odstranit jakýkoli záznam, otevřete tento soubor ve VIM nebo jiném editoru a ručně záznam ze souboru odstraňte a uložte jej.
Poznámka :Historie zsh se načte při zahájení relace, takže změny v souboru .zsh_history se neprojeví v aktuální relaci shellu. Pokud spustíte nový shell otevřením nového okna nebo karty, všimnete si změn.