Shell

Získejte maximum z historie systému Linux Bash

Získejte maximum z historie systému Linux Bash

Příkazový řádek Linuxu - Terminál, stejně jako všechny skořápky, uchovává historii příkazů prováděných v minulosti uživatelem. Tato historie je trvalá a zůstává v paměti, i když restartujeme náš systém. Tyto uložené příkazy můžeme vyvolat a znovu použít nejoptimálnějším způsobem, jak efektivně využívat funkci ukládání historie většiny skořápek.

Linuxový bash je dodáván s velmi výkonným příkazem zvaným „historie“. Tento příkaz je integrovaný příkaz bash, který se používá k extrakci informací o historii příkazů, které byly spuštěny uživateli systému Linux ve všech předchozích relacích. V tomto kurzu vám umožníme, abyste ze své historie prostředí získali to nejlepší, když se naučíte správné použití příkazu historie. Linux ukládá historii příkazů pro určitého uživatele do souboru ~ /.bash_history ve výchozím nastavení.

Ke spuštění příkazů uvedených v tomto kurzu použijeme aplikaci Terminal v systému Linux.

Zobrazení celé historie

Uživatel může zobrazit celou historii svých příkazů prostředí ze souboru historie uloženého výhradně pro daného uživatele pomocí následujícího jednoduchého příkazu:

$ historie

Historie se vytiskne na obrazovku v následujícím výchozím formátu:

Na výše uvedeném obrázku vidíte seznam všech příkazů s číslem přiřazeným každému z nich. Příkaz číslo 1 odpovídá prvnímu spuštěnému příkazu a poslední očíslovaný příkaz představuje nejnovější příkaz, který jste provedli.

Pokud jste od použití bash spouštěli spoustu příkazů, zjistíte, že zde budou zobrazeny stovky a dokonce tisíce těchto příkazů. Chcete-li získat přístup k několika relevantním příkazům, můžete filtrovat výsledky zobrazené funkcí historie. Příkaz historie můžete také přizpůsobit tak, aby pro vás zobrazoval konkrétní počet příkazů.

Filtrování výstupu historie

Chcete-li filtrovat výstup historie na základě konkrétního klíčového slova, které jste mohli použít v předchozích příkazech, můžete použít příkaz historie následujícím způsobem:

$ historie | grep [klíčové slovo]

Příklad: V tomto příkladu chci zobrazit pouze příkazy ping, které jsem kdy spustil v shellu. Proto použiji následující příkaz:

$ historie | grep ping

Vidíte, že můj výstup nyní zobrazuje pouze příkazy včetně mého vyhledávacího klíčového slova „ping“ Reklama

Zobrazení počtu posledních příkazů

Můžete také zobrazit konkrétní počet příkazů, například:

NEBO

N Počet posledních příkazů

Konkrétní počet naposledy spuštěných příkazů můžete zobrazit pomocí následujícího příkazu:

$ historie | ocas -n

Příklad:

V tomto příkladu chci zobrazit poslední 3 příkazy, které jsem spustil, s klíčovým slovem 'ping':

$ historie | grep ping | ocas -3

Výstup zobrazuje pouze 3 poslední příkazy ping namísto celé historie

N Počet nejstarších příkazů

Konkrétní počet nejstarších příkazů pro spuštění můžete zobrazit pomocí následujícího příkazu:

$ historie | hlava -n

Příklad:

V tomto příkladu chci zobrazit nejstarší 3 příkazy, které jsem spustil, s klíčovým slovem 'ping':

$ historie | grep ping | hlava -3

Výstup zobrazuje pouze 3 nejstarší příkazy ping namísto celé historie

Seznam všech příkazů s datem a časovým razítkem

Chcete-li zobrazit historii příkazů spolu s datem a časovým razítkem, použijte následující příkaz pro export:

$ export HISTTIMEFORMAT = "% F,% T"

Nyní, když chcete zobrazit historii, stačí spustit příkaz historie a zobrazit výstup v následujícím formátu:

Pamatujte, že tato změna formátu je dočasná a po ukončení relace se obnoví na předchozí standard.

Navigace v příkazech z historie

Když jste na příkazovém řádku, můžete procházet dříve spuštěnými příkazy a také vyvolat některé nedávno použité příkazy zadáním klíčového slova.

Procházení příkazy

K procházení příkazy historie můžete použít následující ovládací prvky klávesnice

Šipka nahoru / Ctrl + PPomocí těchto ovládacích prvků můžete zobrazit předchozí příkaz, který jste použili. Tyto ovládací prvky můžete stisknout několikrát a vrátit se ke konkrétnímu příkazu v historii.
Šipka dolů / Ctrl + NPomocí těchto ovládacích prvků můžete zobrazit další použitý příkaz. Tyto ovládací prvky můžete stisknout několikrát a přejít tak na konkrétní příkaz v historii.
Alt + RPokud upravujete příkaz, který jste vytáhli z historie, na aktuálním řádku, můžete pomocí tohoto ovládacího prvku jej vrátit k původnímu příkazu.

Vyvolávání příkazů

Pomocí následujících ovládacích prvků můžete vyvolat, spustit nebo se rozhodnout nespustit konkrétní příkaz z historie:

Ctrl + RPomocí tohoto ovládacího prvku můžete vyvolat příkaz z historie zadáním vyhledávacího řetězce.
Ctrl + OPomocí tohoto ovládacího prvku můžete spustit příkaz, který jste vyvolali, pomocí Ctrl + R
Ctrl + GPomocí tohoto ovládacího prvku můžete ukončit historii bez spuštění příkazu, který jste vyvolali, pomocí Ctrl + R

Příklad:

V tomto příkladu jsem stiskl ctrl + R a poté zadal vyhledávací řetězec 'ar'. Historie zobrazila příkaz 'arch'.

Když jsem spustil příkaz 'arch' stisknutím ctrl + O, zobrazil architekturu CPU mého systému:

Využití historie Bash

Skutečným kouzlem historie bash je použití různých příkazů a přizpůsobení samotného příkazu history, aby se funkce historie co nejlépe využila:

Spouštění příkazů z historie

$ !#

Příklad:

Zde spouštím příkaz číslo 95 z mé historie:

$ !95

Výstup zobrazuje výsledek 'lscpu', který byl uveden jako příkaz číslo 95 v mé historii bash. Tento příkaz zobrazí specifikace mého CPU a operačního systému.

$ !!

Příklad:

Zde vidíte, že jsem spustil příkaz 'arch'. Spuštěním výše uvedeného příkazu můžu znovu spustit příkaz 'arch' a zobrazit architekturu CPU takto:

$ ![klíčové slovo]

Příklad:

Následující příkaz použiji k opětovnému spuštění posledního příkazu s klíčovým slovem 'dconf':

$ !dconf

Na následujícím obrázku můžete znovu potvrdit, že to byl poslední příkaz dconf, který jsem spustil.

Použití argumentů z předchozích příkazů

Linux bash umožňuje spustit nový příkaz pomocí argumentů z předchozího příkazu. Je obzvláště užitečné, když se chcete vyhnout přepisování dlouhých nebo komplikovaných argumentů. K tomuto účelu můžete použít následující příkaz:

Pomocí posledního argumentu z předchozího příkazu

$ [Příkaz] !$

Proměnná !$ má v sobě uložený poslední argument z předchozího příkazu.

Příklad:

V tomto příkladu vytvořím soubor s dlouhým názvem.

Nano [longnameOfaFile]

Poté jej zkopíruji na jiné místo tím, že se vyhnu opětovnému zadání dlouhého názvu takto:

Str !$ [cílová složka]

Vidíte, že jsem byl schopen zkopírovat soubor bez přepsání názvu souboru pomocí proměnné !$

Pomocí prvního argumentu z předchozího příkazu

Někdy je v aktuálním užitečný pouze první argument z předchozího příkazu.

V takovém případě můžete použít následující příkaz:

$ [příkaz] !^

Příklad:

V následujícím příkladu jsem spustil příkaz ping zadáním názvu hostitele a počtu jako argumentů. Nyní chci ve svém novém příkazu použít název hostitele (první argument) namísto 2 (poslední argument). K tomuto účelu použiji následující příkaz:

$ ping !^

Pomocí všech argumentů z předchozího příkazu

Všechny argumenty z předchozího příkazu můžete také použít pomocí následujícího příkazu:

$ !*

Pomocí jednoho argumentu z příkazu historie

Příkazy z historie můžete také použít opětovným použitím jejich argumentů. K tomu použijte následující příkaz:

$ [příkaz] ![klíčové slovo]: #

Příklad:

$ echo !str: 2

Tento příkaz bude mít následující parametry:

příkaz: echo

Klíčové slovo: cp

#: 2 (druhý argument příkazu)

Následující výstup ukazuje 2. argument posledního příkazu cp, který jsem spustil:

Použití všech argumentů z příkazu historie

Následující příkaz uloží všechny argumenty z prohledávané historie a použije je v aktuálním příkazu:

$ příkaz ![klíčové slovo]: *

Příklad:

V následujícím příkazu vytisknu všechny argumenty posledního příkazu cp pomocí příkazu echo takto:

$ echo ![cp]: *

Úpravy a spouštění předchozích příkazů

Pokud jste zadali nesprávný příkaz nebo chcete příkaz spustit znovu změnou textu v něm; toto je způsob, jak to udělat:

$ ^ [předchozí text] ^ [nový text]

Příklad:

Napsal jsem příkaz 'grep' jako 'gep' a nyní chci spustit příkaz opravou textu:

$ ^ gep ^ grep

Nyní vidíte, že můj opravený příkaz bude fungovat správně následujícím způsobem:

Vymazání historie

Chcete-li vymazat historii bash, použijte následující příkaz:

$ historie -c

Tento příkaz vymaže vaši historii a odebere veškerý obsah ze souboru ~ /.bash_history

V tomto tutoriálu jsme se naučili, že zatímco tisk celého obsahu historie nemusí být tak užitečný, optimalizace výstupu pomocí naučených příkazů je skutečným měničem hry. Cvičení spolu s tímto článkem vám umožní zobrazit přesné příkazy, které chcete, znovu spustit a znovu použít tyto příkazy a také použít argumenty z dříve spuštěných příkazů k optimalizaci nových.

Emulace kliknutí myší vznášením pomocí myši Clickless Mouse ve Windows 10
Používání myši nebo klávesnice ve špatném držení těla nadměrného používání může mít za následek mnoho zdravotních problémů, včetně napětí, syndromu ka...
Přidejte gesta myši do Windows 10 pomocí těchto bezplatných nástrojů
V posledních letech se počítače a operační systémy značně vyvinuly. Bývaly doby, kdy uživatelé museli procházet správci souborů pomocí příkazů. Stejně...
Ovládejte a spravujte pohyb myši mezi více monitory ve Windows 10
Správce myší se dvěma displeji umožňuje ovládat a konfigurovat pohyb myši mezi více monitory zpomalením jeho pohybů poblíž hranice. Windows 10/8 vám u...