GNU/Linux >> Znalost Linux >  >> Linux

Jak používat příkaz historie v Linuxu

Jak trávím stále více času v terminálových relacích, mám pocit, že neustále nacházím nové příkazy, které zefektivňují mé každodenní úkoly. historie GNU příkaz je ten, který opravdu změnil můj pracovní den.

historie GNU příkaz uchovává seznam všech ostatních příkazů, které byly spuštěny z dané relace terminálu, a umožňuje vám přehrát nebo znovu použít tyto příkazy namísto jejich přepisování. Pokud jste zkušený uživatel terminálu, víte o síle historie , ale pro nás dabéry nebo nové správce systému historie je okamžitý nárůst produktivity.

Za prvé, historie příkaz ve skutečnosti není příkaz. Můžete se o tom přesvědčit sami, když ve svém systému vyhledáte příkaz:

$ which history
which: no history in (/usr/local/bin:/usr/bin:/bin:/usr/games:/usr/local/sbin)

Váš počítač nemůže najít historii command, protože je to vestavěné klíčové slovo vašeho shellu. Protože je zapsána do shellu, který používáte, mohou existovat určité rozdíly v chování historie v závislosti na tom, zda používáte Bash, tcsh, Zsh, dash, fish, ksh a tak dále. Tento článek je založen na implementaci historie Bash, takže některé funkce nemusí fungovat v jiných prostředích. Většina základních funkcí je však stejná.

Historie 101

Chcete-li zobrazit historii v akci otevřete terminálový program v instalaci Linuxu a zadejte:

$ history

Zde je odpověď, kterou jsem dostal:

1  clear
2  ls -al
3  sudo dnf update -y
4  history

historie příkaz zobrazuje seznam příkazů zadaných od zahájení relace. Radost z historie je, že nyní můžete přehrát kteroukoli z nich pomocí příkazu jako:

$ !3

!3 příkaz ve výzvě říká shellu, aby znovu spustil příkaz na řádku 3 seznamu historie. K tomuto příkazu bych také mohl přistupovat zadáním:

$ !sudo dnf

Tím se zobrazí výzva historie k vyhledání posledního příkazu, který odpovídá zadanému vzoru (v tomto případě je tento vzor dnf ) a spusťte jej.

Historie vyhledávání

Můžete také použít historii pro opětovné spuštění posledního zadaného příkazu zadáním !! . Spárováním s grep , můžete vyhledávat příkazy, které odpovídají textovému vzoru, nebo jeho pomocí s tail , můžete najít několik posledních příkazů, které jste provedli. Například:

$ history | grep dnf
3  sudo dnf update -y
5  history | grep dnf

$ history | tail -n 3
4  history
5  history | grep dnf
6  history | tail -n 3

Další způsob, jak se dostat k této vyhledávací funkci, je zadáním Ctrl-R k vyvolání rekurzivního prohledávání historie vašich příkazů. Po tomto zadání se výzva změní na:

(reverse-i-search)`':

Nyní můžete začít psát příkaz a odpovídající příkazy se zobrazí, abyste je mohli provést stisknutím Return nebo Enter .

Změna provedeného příkazu

Můžete také použít historii znovu spustit příkaz s jinou syntaxí. Historii můžete upravit pomocí historie . Pokud například chci změnit svůj předchozí příkaz historie | grep dnf do historie | grep ssh , mohu na výzvu provést následující:

$ ^dnf^ssh^

Příkaz se spustí znovu, ale s dnf nahrazeno ssh . Jinými slovy, tento příkaz se spustí:

$ history | grep ssh

Odebírání historie

Může nastat chvíle, kdy budete chtít odstranit některé nebo všechny příkazy ze souboru historie. Pokud chcete odstranit konkrétní příkaz, zadejte historie -d <číslo řádku> . Chcete-li vymazat celý obsah souboru historie, spusťte history -c .

Soubor historie je uložen v souboru, který můžete také upravit. Uživatelé prostředí Bash jej najdou ve svém domovském adresáři jako .bash_history .

Další kroky

S historií můžete dělat řadu dalších věcí :

  • Nastavte velikost vyrovnávací paměti historie na určitý počet příkazů
  • Zaznamenejte datum a čas každého řádku v historii
  • Zabránit zaznamenání určitých příkazů do historie

Další informace o historii příkaz a další zajímavé věci, které s ním můžete dělat, podívejte se na články Setha Kenlona o historii analýzy, modifikátorech vyhledávání historie a GNU Bash Manual.

Tento článek byl původně publikován v červnu 2018 a editor ho aktualizoval o další informace.


Linux
  1. Jak používat Su Command v Linuxu

  2. Jak používat příkaz id v Linuxu

  3. Jak používat příkaz „screen“ v Linuxu

  1. Jak používat Linuxový příkaz grep

  2. Jak používat příkaz sudo v Linuxu

  3. Jak používat Linux na Command

  1. Jak používat příkaz locate v Linuxu

  2. Jak používat příkaz historie Linuxu

  3. Jak používat příkaz xargs pro Linux