GNU/Linux >> Znalost Linux >  >> Linux

Udělejte z historie Bash užitečnější pomocí těchto tipů

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!


Linux
  1. Stupid Bash triky:Historie, opětovné použití argumentů, souborů a adresářů, funkcí a další

  2. Udělejte duův výstup užitečnějším s tímto elegantním trikem

  3. Bash -c s pozičními parametry?

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

  2. Bash tipy pro každý den na příkazovém řádku

  3. 15 užitečných vestavěných příkazů Bash Shell (s příklady)

  1. Analýza historie Bash v Linuxu

  2. Použití slovních modifikátorů s historií Bash v Linuxu

  3. Další tipy pro balení vašeho linuxového softwaru pomocí RPM