Linuxový terminál se systémem Bash má vestavěnou historii, kterou můžete použít ke sledování toho, co jste v poslední době dělali. Chcete-li zobrazit historii své relace Bash, použijte vestavěný příkaz history
:
$ echo "foo"."
foo
$ echo "bar"
bar
$ history
1 echo "foo"
2 echo "bar"
3 history
history
command není spustitelný soubor na vašem souborovém systému, jako většina příkazů, ale funkcí Bash. Můžete to ověřit pomocí type
příkaz:
$ type history
history is a shell builtin
Ovládání historie
Horní limit řádků ve vaší historii shellu je definován pomocí HISTSIZE
variabilní. Tuto proměnnou můžete nastavit v .bashrc
soubor. Následující nastavení nastaví vaši historii na 3 000 řádků, poté se nejstarší řádek odstraní, aby se uvolnilo místo pro nejnovější příkaz, který se umístí na konec seznamu:
export HISTSIZE=3000
Existují i další proměnné související s historií. HISTCONTROL
proměnná řídí, jaká historie se ukládá. Můžete přinutit Bash, aby vyloučil příkazy začínající prázdným místem umístěním tohoto do vašeho .bashrc
soubor:
export HISTCONTROL=$HISTCONTROL:ignorespace
Pokud nyní napíšete příkaz začínající mezerou, tento příkaz se nezaznamená do historie:
$ echo "hello"
$ mysql -u bogus -h badpassword123 mydatabase
$ echo "world"
$ history
1 echo "hello"
2 echo "world"
3 history
Můžete se také vyhnout duplicitním záznamům:
export HISTCONTROL=$HISTCONTROL:ignoredups
Pokud nyní zadáte dva příkazy, jeden po druhém, v historii se objeví pouze jeden:
$ ls
$ ls
$ ls
$ history
1 ls
2 history
Pokud se vám líbí oba tyto ignorování, stačí použít ignoreboth
:
export HISTCONTROL=$HISTCONTROL:ignoreboth
Odebrání příkazu z historie
Někdy uděláte chybu a napíšete do svého shellu něco citlivého, nebo možná jen chcete vyčistit historii, aby přesněji reprezentovala kroky, které jste podnikli, aby něco fungovalo správně. Pokud chcete smazat příkaz z historie v Bash, použijte -d
možnost s číslem řádku položky, kterou chcete odstranit:
$ echo "foo"
foo
$ echo "bar"
bar
$ history | tail
535 echo "foo"
536 echo "bar"
537 history | tail
$ history -d 536
$ history | tail
535 echo "foo"
536 history | tail
537 history -d 536
538 history | tail
Chcete-li zastavit přidávání history
položky, můžete umístit space
před příkazem, pokud máte ignorespace
ve vašem HISTCONTROL
proměnná prostředí:
$ history | tail
535 echo "foo"
536 echo "bar"
$ history -d 536
$ history | tail
535 echo "foo"
Celou historii relace můžete vymazat pomocí -c
možnost:
$ history -c
$ history
$
Lekce historie
Více o Bash
- Bashův cheat
- Úvod do programování pomocí Bash
- Průvodce systémového administrátora skriptováním v Bash
- Nejnovější články o Bash
Manipulace s historií je obvykle méně nebezpečná, než by se mohlo zdát, zvláště když ji upravujete s určitým účelem. Pokud například dokumentujete složitý problém, je často nejlepší použít k zaznamenávání příkazů historii relace, protože jejich vložením do historie je spouštíte, a tím testujete proces. Dokumentování bez provedení velmi často vede k přehlížení malých kroků nebo špatnému psaní drobných detailů.
Používejte své historické relace podle potřeby a moudře uplatňujte svou moc nad historií. Šťastné hackování historie!