Možná znáte základní použití příkazu historie, ale může toho udělat mnohem víc. Historie bash je obvykle uložena v souboru ~ /.bash_history. Umožňuje vám efektivně vyvolat a znovu použít uložený záznam, abyste mohli co nejlépe využít funkci ukládání historie bash. Nejen to, ale můžete také přizpůsobit a ovládat výstup příkazu bash tak, jak chcete.
V tomto článku vysvětlíme, jak efektivně používat a přizpůsobovat historii příkazů bash, abyste co nejlépe využili jeho funkcí.
Pro spuštění příkazů a postupů uvedených v tomto článku jsme použili Debian 10.
Pomocí historie příkazů bash
1. Zobrazení historie bash
Chcete-li zobrazit celou historii příkazů prostředí, můžete v Terminálu spustit následující příkaz:
$ historieZobrazí seznam celé historie konkrétního uživatele ze souboru historie uloženého konkrétně pro daného uživatele. Uvidíte všechny příkazy začínající číslem přiděleným každému z nich. Nahoře bude seznam starších příkazů počínaje číslem 1 a novější příkazy dole.
2. Hledání výstupu historie
Můžete také vyhledat konkrétní klíčové slovo z výstupu historie. Spárujte příkaz historie s grep a konkrétním klíčovým slovem a vyhledejte příkazy, které odpovídají zadanému klíčovému slovu, takto:
$ historie | grep [klíčové slovo]Například pro výpis všech příkazů, které obsahují klíčové slovo „find“, by byl tento příkaz:
$ historie | grep najít
3. Prohlížení posledních n příkazů
Příkaz historie ve výchozím nastavení obsahuje seznam posledních 1 000 příkazů provedených uživatelem. V případě, že chcete zobrazit pouze konkrétní číslo, řekněme n číslo posledního provedeného příkazu, spusťte v Terminálu následující příkaz:
$ historie nNapříklad pro vypsání posledních 7 provedených příkazů by byl příkaz:
$ historie 7Chcete-li zobrazit počet posledních příkazů n spuštění, které obsahují konkrétní klíčové slovo, můžete použít následující syntaxi:
$ historie | klíčové slovo grep | tail -nPříkladem by mohlo být zobrazení posledních 4 spuštěných příkazů s klíčovým slovem „java“.
$ historie | grep java | tail -n
4. Prohlížení nejstarších příkazů
Chcete-li zobrazit nejstarší počet příkazů, můžete v Terminálu použít následující syntaxi:
$ historie | hlava -nChcete-li zobrazit nejstarší n počet příkazů, které obsahují konkrétní klíčové slovo, použijte následující syntaxi:
$ historie | klíčové slovo grep | head -nPříkladem by bylo zobrazit nejstarší 4 spuštěné příkazy s klíčovým slovem „java“.
$ historie | grep java | hlava -4
5. Vymazat historii Bash úplně
Chcete-li odebrat celou historii bash, spusťte v Terminálu následující příkaz:
$ historie -cwPřizpůsobení historie příkazů bash
Chcete-li přizpůsobit historii příkazů bash, budeme muset provést změny v ~ /.soubor bashrc. Úpravy ~ /.soubor bashrc, použijte následující příkaz:
$ nano ~ /.bashrcPo dokončení úprav souboru uložte a zavřete nano editor pomocí Ctrl + O a Ctrl + X.
Poté spusťte následující příkaz, abyste provedli úpravy:
$ zdroj ~ /.bashrc1. Přidejte do historie Bash datum a časové razítko
Chcete-li zobrazit datum a časové razítko spolu s historií příkazu, můžete to udělat přidáním následujícího řádku do ~ /.bashrc:
$ export HISTTIMEFORMAT = '% F,% T'Nyní spusťte Dějiny příkaz a zobrazí historii příkazů s odpovídajícími daty a časovým razítkem.
2. Zvyšování velikosti historie bash
Bash ve výchozím nastavení udržuje 500 příkazů v seznamu historie. Tuto hodnotu však můžeme změnit pomocí hodnoty HISTSIZE.
Chcete-li zobrazit aktuální velikost historie bash, spusťte v Terminálu následující příkaz:
$ echo $ HISTSIZEPodobně je výchozí velikost souboru historie bash 500. Je to maximální počet položek, které jsou obsaženy v souboru historie.
Chcete-li zvětšit velikost historie bash, řekněme 10 000, přidejte následující řádky do ~ /.soubor bashrc:
$ HISTSIZE = 10 000$ HISTFILESIZE = 10 000
Chcete-li ověřit, zda se velikost historie bash úspěšně změnila, spusťte v Terminálu následující příkazy:
$ echo $ HISTSIZE$ echo $ HISTFILESIZE
3. Připojte příkazy Bash k souboru historie
Když je relace bash uzavřena, můžete se rozhodnout, zda přepíšete nebo připojíte příkazy v souboru historie pomocí proměnné histappend. Chcete-li zobrazit aktuální nastavení, spusťte v Terminálu následující příkaz:
$ shoped histappend„Zapnuto“ ve výstupu ukazuje, že je povolena možnost histappend a příkazy budou připojeny do souboru historie namísto přepsání. Zatímco se zobrazuje „vypnuto“, volba histappend je deaktivována a soubor bude přepsán.
Otevřete ~ /.soubor bashrc a:
Přidejte následující řádek, pokud chcete místo přepsání přidat příkazy do souboru historie:
$ shopt -s histappendNebo přidejte následující řádek, pokud chcete deaktivovat možnost přidání a chcete přepsat soubor při ukončení:
$ shopt -u histappend4. Okamžitě uložte historii Bash
Bash ve výchozím nastavení uloží relaci do souboru historie bash pouze po ukončení relace. Chcete-li změnit toto výchozí chování a umožnit okamžité uložení každého provedeného příkazu, můžete využít PROMPT_COMMAND.
Upravit ~ /.soubor bashrc a přidejte následující řádek:
$ PROMPT_COMMAND = 'history -a'Nyní, kdykoli spustíte libovolný příkaz, bude okamžitě přidán do souboru historie.
5. Ovládejte historii Bash
Způsob, jakým bash ukládá naši historii příkazů, můžeme ovládat pomocí proměnné HISTCONTROL. Můžeme jej určit pro ignorování duplicitních záznamů a / nebo pro ignorování záznamů s úvodními bílými mezerami.
- ignorespace - eliminuje příkazy, které začínají seznamem historie prostoru.
- ignoredups - eliminuje duplicitní příkazy.
- ignoreboth - Povolí ignorované i ignorované prostory
- erasedups- odstranění duplikátů z celého seznamu
Chcete-li použít tyto funkce, otevřete ~ /.bashrc a přidejte následující řádek s hodnotami oddělenými dvojtečkou takto:
$ export HISTCONTROL = ignorespace: ignoredups6. Ignorovat konkrétní příkazy
Můžeme také řídit, které příkazy mají být v historii ignorovány, pomocí proměnné HISTIGNORE. Jedná se o seznam vzorů oddělených dvojtečkou, ve kterém můžeme určit všechny příkazy, které chceme z historie ignorovat.
Například pokud nechceme vypsat základní příkazy, jako jsou příkazy historie, ls, pwd, do seznamu historie, přidáme následující řádek do ~ /.soubor bashrc:
$ export HISTIGNORE = "history: ls: pwd:"S historií příkazů Linux bash můžete udělat mnohem víc, než jen opakovat staré příkazy. V tomto článku jsme se naučili, jak používat historii bash k zobrazení příkazů, které byly provedeny dříve, a také jsme se naučili ovládat způsob, jakým bash ukládá historii příkazů.