Bash (Bourne again shell) je populární shell používaný na většině systémů podobných UNIXu. Bash je napsán Brianem Foxem jako GNU Project. Obsahuje funkce z Bourne shellu, C shellu a Korn shellu. Uživatelé, kteří tráví čas na příkazovém řádku pomocí bash shellu, často rádi opakují příkazy, které byly provedeny v minulosti. Funkce historie shellu Bash pomáhá zapamatovat si nedávné příkazy a později je znovu použít; tím ušetříte čas na přepisování. Začněme!
Historie výpisů
Když historie příkaz použitý bez zadaných argumentů, zobrazí poslední použité příkazy s odpovídajícími čísly řádků.
$ history
Výstup bude podobný následujícímu:

Výpis posledních „n“ provedených příkazů
Pomocí „historie
$ history 7

Spustit konkrétní příkaz z historie
Je možné provést konkrétní příkaz z historie. Použití vykřičníků následovaných číslem příkazu podle historie udělá kouzlo. Například následujícím příkazem znovu spusťte příkaz s číslem 7 (du –sh) takto:
$ !7

Znovu spustit předchozí příkaz
V mnoha situacích potřebujeme příkaz spouštět znovu a znovu. Níže uvedené příkazy provedou tuto úlohu provedením předchozího použitého příkazu.
$ !! Or $ !-1
Vyhledávání příkazů
Výstup generovaný historií lze využít několika způsoby. Výstup historie lze například předat do – more, tail, grep, aby se získal požadovaný výstup.
Vyhledejte v historii příkazů „free“:$ history | grep free Chcete-li zobrazit pouze poslední 4 příkazy:
$ history | tail -4
Příkaz more umožňuje zobrazení výstupu v terminálu po jedné stránce:
$ history | more
Spustit předchozí příkaz, který začíná konkrétním slovem
Použití vykřičníku následovaného konkrétním slovem příkazu udělá kouzlo!. Předpokládejme, že uživatel provedl – „free –h“. Zadáním „!free“ znovu spustíte příkaz „free –h“.

Mazání historie
Historii je možné vymazat příkazem níže: $ history -c Tímto vymažete všechny příkazy v paměti bash shellu pro aktuální uživatelskou relaci.
Užitečné aliasy
Alias je krátký název dlouhý a komplexní příkaz. Jednoduchý alias jednoho znaku pro příkaz historie.
$ alias 'h=history'
Níže uvedený alias „ht“ zobrazuje deset posledních příkazů –
$ alias 'ht=history | tail'
Níže uvedený alias „hg“ umožňuje zobrazit všechny příkazy, které odpovídají danému řetězci –
$ alias 'hg=history | grep'
Přidejte tyto aliasy do souboru „~/.bashrc“, aby byly trvalé při každém spuštění systému.
Nastavení konfigurace historie
Proměnná prostředí Bash | Popis |
HISTFILE | Umístění fyzického souboru, kde historie ukládá příkazy. Výchozí nastavení bash shellu je „~/.bash_history“. Nastavení „/dev/null“ deaktivuje záznam historie. |
HISTFILESIZE | Odkazuje na počet příkazů, které mají být uloženy v souboru historie. |
HISTSIZE | Odkazuje na řadu příkazů, které jsou uloženy v paměti v seznamu historie. Nastavením hodnoty 0 (nula) zakážete záznam historie. |
HISTIGNORE | Někdy je nutné neukládat nějaké příkazy. Tato proměnná přebírá seznam vzorů oddělených dvojtečkou. Například níže uvedená konfigurace umožňuje funkci historie nezaznamenávat příkazy:ls, top a clear. HISTIGNORE=”ls*:top:clear” |
HISTTIMEFORMAT | Tato proměnná HISTTIMEFORMAT umožňuje zobrazení historie s časovým razítkem. Po nastavení HISTTIMEFORMAT na '%F %T ' získáte níže uvedené výsledky. Toto je velmi užitečný příkaz pro systémové administrátory. |
HISTCONTROL | HISTCONTROL pomáhá při ignorování duplikátů. HISTCONTROL lze nastavit pomocí hodnot: erasedups, ignorespace, ignoredups nebo ignoreboth. (odděleno dvojtečkou)Následuje několik příkladů: HISTCONTROL=ignoredups:erasedups HISTCONTROL=ignorebothPředpokládejme, že položky historie obsahují duplikáty následovně („top“ a „ls –latr“ se opakují za sebou)Pokud byl HISTCONTROL nastaven na „ignoredups“ ” pak by se historie zobrazila takto: |
Pokročilá nastavení konfigurace
Bash uchovává seznam příkazů interně v paměti a při ukončení se zapisují do nakonfigurovaného souboru (výchozí je .bash_history). Když uživatel opustí shell, poslední řádky $HISTSIZE se zkopírují ze seznamu historie do souboru nastaveného na $HISTFILE. Pokud je uživatel přihlášen s mnoha bash relacemi, bude uložena historie pouze té poslední, která skončila. V případě, že má být historie příkazů zapsána okamžitě při provádění příkazu v uživatelské relaci, lze následující konfiguraci nastavit v souboru „.bashrc“.
$ shopt -s histappend $ PROMPT_COMMAND=”historie -a; historie -c; history -r“ „shopt –s histappend“ povolí připojení namísto přepsání historie.
„history -a“ se používá k připojení příkazů historie v paměti k ~/.bash_history
“history -c“ používá se k vymazání příkazů historie v paměti
„history -r“ se používá ke čtení příkazů historie z ~/.bash_history do paměti
Typický soubor „~/.bashrc“ s nastavením konfigurace související s historií vypadat jako níže:# kontrola velikosti příkazů, které mají být zaznamenány do paměti
HISTSIZE=2000# kontrola velikosti příkazů, které mají být uloženy v souboru
HISTFILESIZE=10000
# umístění fyzického souboru, kam se zapisují příkazy
HISTFILE=/var/users/rjujare/.bash_history
#Formát pro účely záznamu a zobrazení:zahrnutí časového razítka
HISTTIMEFORMAT=’%F %T ‘
# ignorujte běžné příkazy jako ls
HISTIGNORE=”ls:id:uname:clear:top”
# ignorovat duplicitní příkazy a příkazy začínající mezerou
HISTCONTROL=ignoreboth
# append, nepřepisovat historii
shopt -s histappend
PROMPT_COMMAND=”history -a; historie -c; historie -r”
Jak uložit konfiguraci?
Otevřete soubor ~/.bashrc ve svém oblíbeném editoru a změňte nastavení. Po dokončení změn soubor uložte a ukončete. Chcete-li získat efekt změny, zadejte zdroj souboru pomocí příkazu „source“ následovně:
$ source ~/.bashrc
Závěr
Skořápka Bash přichází s mnoha užitečnými funkcemi a jednou z nich je historie. Tyto funkce výrazně zvyšují produktivitu administrátorů i běžných uživatelů. Nezapomeňte se podělit o své vlastní zkušenosti s historií!