Ať už jste začátečník nebo expert na bash, nemůžete pokračovat v práci na příkazovém řádku bez použití super užitečné funkce historie bash.
Pravděpodobně už víte, že pokud použijete klávesy se šipkami nahoru nebo dolů v terminálu Linuxu, můžete procházet příkazy, které jste spustili dříve.
To je dostupné díky příkazu bash history.
1. Zobrazení historie bash
Nejjednodušší způsob, jak zobrazit příkazy, které jste napsali dříve, je použít historii příkazů.
history
Zobrazí sto nebo možná tisíc příkazů uložených ve vaší historii. Velikost závisí na proměnné HISTSIZE.
Pokud nechcete, aby byla obrazovka nepřehledná, můžete omezit počet zobrazených řádků. Chcete-li například zobrazit pouze posledních 7 příkazů z historie, použijte to takto:
history 7
2. Spusťte příkaz z historie bash
Když se díváte na historii, můžete spustit příkaz pomocí jeho čísla s !
, takto:
!#
Poslední příkaz můžete znovu spustit pomocí !!
. Toho se hodí, když zapomenete použít příkaz a pak jej rychle použijete ke spuštění sudo:
sudo !!
Můžete také spustit poslední příkaz začínající určitým textem, jako je tento:
!text
Předpokládejme, že jste dříve spustili echo $HISTCONTROL a chcete jej spustit znovu. Můžete jej použít takto:
!echo
A výše uvedený příkaz spustí poslední spuštěný příkaz echo z vaší historie.
Existuje lepší možnost prohledávat historii a ukážu vám ji v další sekci.
Bonusový tip:Pokud si nejste jisti příkazem, místo jeho spuštění jej vytiskněte přidáním :p
do jeho konce. Takže to použijete jako !echo:p
, !23:p
atd.
3. Vyhledávání v historii bash
Možná si myslíte, že je jednodušší použít příkaz grep pro hledání něčeho v historii, jako je tento:
history | grep text
Lepším a super praktickým způsobem prohledávání historie je použití ctrl+r
pro spuštění zpětného vyhledávání a zadejte hledaný řetězec.
Mezi volbami můžete procházet stisknutím ctrl+r
opakovaně a když najdete hledaný příkaz, stiskněte ctrl+o
nebo jednoduše enter
pro výběr a spuštění tohoto příkazu.
Například níže uvedený příklad hledá příkaz, který měl v sobě 'aud'.
Pokud příkaz nenajdete, změňte hledaný řetězec nebo stiskněte ctrl+g
abyste vyšli ze zpětného vyhledávání.
4. Znovu použijte argumenty z předchozích příkazů v historii
Zde je další skvělá věc, kterou můžete dělat s historií bash. V novém příkazu můžete použít argumenty z předchozích příkazů.
Poslední argument předchozího příkazu můžete použít takto:
new_command !$
Řekněme například, že jste četli soubor pomocí příkazu less a rozhodli jste se, že tento soubor potřebujete upravit. Namísto úplného psaní použijete !$
zkratka.
Výše uvedená možnost vám poskytne pouze poslední argument předchozího příkazu. Pokud chcete všechny argumenty, použijte toto:
new_command !*
5. Vyčištění historie od nadbytečných záznamů
Existuje proměnná prostředí nazvaná HISTCONTROL, která vám pomáhá s nadbytečnými záznamy v historii bash. Můžete mu přiřadit jednu ze tří hodnot:
- ignorespace:S touto sadou proměnných můžete spustit příkaz tak, že před něj vložíte mezeru. Příkaz se spustí jako obvykle, ale nebude zahrnut do historie.
- ignoredups:Pokud jsou dva stejné příkazy spuštěny po sobě , do historie bude zaznamenán pouze jeden z nich.
- ignoreboth:Nastaví obě výše uvedené funkce.
Měli byste nastavit proměnnou v souboru bashrc tak, aby byla nastavena pokaždé, když použijete bash shell.
Příliš mnoho příkazů v historii bash? Můžete vymazat pomocí volby -c
. Tím se vymaže současná historie bash a začnou se od nynějška přidávat příkazy znovu.
history -c
Historie bash obsahuje mnohem více než těchto pět tipů, o kterých jsem zde diskutoval. Vždy se můžete podívat na manuálovou stránku příkazu history pro další informace. Pokud vás to zajímá, můžete se také dozvědět o vestavěných funkcích historie.
Doufám, že vám tento článek pomůže. Pokud máte oblíbenou funkci historie bash, podělte se o ni v komentářích.