Úvod
history command v Linuxu je vestavěný nástroj shellu, který zobrazuje seznam příkazů použitých v relaci terminálu. history umožňuje uživatelům znovu použít jakýkoli uvedený příkaz, aniž by jej museli znovu zadávat.
V tomto tutoriálu vám ukážeme, jak history příkaz funguje a různé způsoby jeho použití.
Předpoklady
- Systém se systémem Linux.
- Účet s právy sudo.
- Přístup do okna terminálu.
Jak používat příkaz historie Linuxu
Pomocí history příkaz bez voleb zobrazí seznam příkazů použitých od začátku relace terminálu:
history
Chcete-li zobrazit seznam historie příkazů s omezeným počtem položek, připojte toto číslo k history příkaz. Chcete-li například zobrazit pouze posledních pět záznamů, použijte:
history 5
Jakmile zavřete terminál, prostředí Bash uloží nové záznamy historie příkazů do .bash_history soubor.
Použít datum a čas
Soubor .bashrc soubor ukládá nastavení prostředí Bash. Úpravou tohoto souboru můžete změnit výstupní formát history příkaz.
Otevřete soubor .bashrc pomocí textového editoru, jako je Nano:
sudo nano .bashrc Chcete-li změnit výstupní formát tak, aby zahrnoval datum a časová razítka, přidejte následující řádek do souboru .bashrc soubor:
export HISTTIMEFORMAT="%c "
Použití různých argumentů po HISTTIMEFORMAT umožňuje upravit úroveň podrobností v časovém razítku:
%d:Den%m:Měsíc%y:Rok%H:Hodina%M:Minuty%S:sekund%F:Celé datum (formát Y-M-D)%T:Čas (formát H:M:S)%c:Kompletní datum a časové razítko (formát Den-D-M-Y H:M:S)
Uložte změny do .bashrc soubor, znovu spusťte terminál a spusťte history příkaz k potvrzení nového výstupního formátu:
history
Zobrazení velikosti vyrovnávací paměti historie
Soubor .bashrc obsahuje dvě položky, které řídí velikost vyrovnávací paměti historie:
HISTSIZE:Maximální počet položek pro seznam historie.HISTFILESIZE:Maximální počet záznamů v .bash_history soubor.
Úprava HISTSIZE a HISTFILESIZE hodnoty mění způsob, jakým shell Bash zobrazuje a ukládá historii příkazů.
Například změna HISTSIZE hodnotu na 10 vytváří history seznam příkazů zobrazuje maximálně 10 posledních záznamů.
Uložení změn do .bashrc soubor, opětovné spuštění terminálu a spuštění history příkaz potvrdí nový výstupní formát:
history
Opakujte příkaz
Spuštění history umožňuje znovu použít kterýkoli z příkazů v seznamu. Chcete-li například spustit první příkaz (sudo apt update ) znovu použijte:
!1
Přidání pomlčky (- ) před číslem příkazu začne počítání od konce seznamu. Chcete-li například znovu použít předposlední desátý příkaz (history 5 ), použijte:
!-10
K opakování posledního příkazu použijte dvojité vykřičníky:
!!
Hledat příkaz podle řetězce
Přidáním řetězce za vykřičník se spustí nejnovější příkaz, který začíná tímto řetězcem. Chcete-li například znovu použít nejnovější příkaz, který začíná sudo , použijte:
!sudo
Použití této metody může způsobit problémy, pokud shell spustí neočekávaný příkaz, zejména při hledání příkazu, který začíná sudo . Jako preventivní opatření přidejte :p argument zobrazí příkaz bez jeho spuštění, což vám umožní zkontrolovat příkaz a rozhodnout, zda jej chcete provést.
!sudo:p
Chcete-li vyhledat příkaz, který obsahuje řetězec, ale nemusí jím začínat, přidejte vedle vykřičníku otazník. Chcete-li například znovu použít poslední příkaz, který obsahuje echo :
!?echo
Ve výše uvedeném příkladu shell znovu použije poslední příkaz, který obsahuje echo řetězec, i když příkaz začíná sudo .
Seznam odpovídajících příkazů
Kombinace history a grep umožňuje zobrazit seznam příkazů, které obsahují řetězec. Chcete-li například vypsat všechny příkazy, které obsahují ufw , použijte:
history | grep ufw
Změňte provedený příkaz
Ke změně posledního provedeného příkazu použijte následující syntaxi:
^[old string]^[new string]^
Například ufw příkaz k povolení portu 20 ukazuje, že port je již povolen:
sudo ufw allow 20/tcp
Pomocí výše uvedené syntaxe změňte číslo portu z 20 na 22:
^20^22^
Zabránit nahrávání příkazů v historii
Chcete-li zabránit nahrávání příkazů v seznamu historie, dočasně deaktivujte nahrávání pomocí:
set +o history Chcete-li znovu povolit nahrávání, použijte:
set -o history Smazat historii
Použijte -d možnost s history příkaz k odstranění příkazu ze seznamu historie. Například smažte příkaz číslo 87 pomocí:
history -d 87
Použijte -c možnost vymazat celý seznam historie:
history -c Aktualizujte soubor historie
Když ukončíte relaci terminálu, prostředí Bash uloží všechny aktualizace do seznamu historie příkazů. history příkaz také umožňuje uložit změny v relaci terminálu.
Pomocí -a možnost vám umožní připojit záznamy historie příkazů z této relace do .bash_history soubor:
history -a
Další metodou je použití -w možnost uložit celý seznam historie do .bash_history soubor:
history -w