GNU/Linux >> Znalost Linux >  >> Linux

Příkaz historie v Linuxu s příklady

Příkaz historie v Linuxu není žádný složitý žargon. Je to přesně to, co si myslíte, že to je, a není za tím žádný skrytý význam. Stejným způsobem, jakým se díváte na historii svého prohlížeče po dlouhém dni na internetu, vnímáte příkaz historie. Je to všechno o sledování vašich předchozích pohybů a akcí, ale v tomto případě je to na linuxovém terminálu nebo příkazovém řádku.

Proto můžeme pohodlně definovat příkaz historie pod doménou Linux jako způsob náhledu dříve provedených příkazů. V tomto případě se na terminál můžeme dívat jako na prohlížeč, kde spouštíte různé příkazy v nepřetržitém časovém rámci. Tyto provedené příkazy jsou jednotlivě interpretovány jako události. Každé události je pak přiřazeno číslo události. Proto máme příkazy s ID jako čísly událostí uloženými v souboru historie po jejich provedení v terminálu.

Význam ID událostí je zřejmý, když si později možná budete muset vyvolat konkrétní příkaz, který jste provedli. Možná budete chtít upravit dříve provedený příkaz. Můžeme tedy uzavřít úvodní porozumění příkazu historie a zobrazit všechny dříve provedené příkazy nebo jen konkrétní příkaz na terminálu. Také bychom neměli zapomenout na životaschopnou možnost úpravy uvedeného příkazu.

Nechat historii, aby se opakovala

Tento historický článek můžeme začít zábavnou formou a citací George Santayany. Tento slavný jedinec spojuje neschopnost vzpomenout si na minulost s prokletím jejího opakování. Když však vstoupíme do vesmíru Linuxu, tento citát se kvalifikuje pouze jako mýtus. Je to proto, že filozofie Linuxu je realisticky opakem citátu George Santayany. Když jste na linuxovém terminálu a nemůžete si vzpomenout na minulou akci, není třeba si s ní dělat starosti, protože šance jsou proti tomu, aby se to někdy rozpadlo.

Pokud se samozřejmě nestanete mistrem příkazu historie Linuxu, můžete cestovat časem do minulosti a napravit své předchozí terminální hříchy, pokud si to přejete. Použití příkazu historie Linuxu není v žádném případě spojeno s leností. Díky efektivitě šetří čas. Jak pokročíte v ovládání operačního systému Linux, zjistíte, že pracujete se zdlouhavějšími a komplikovanějšími příkazy. I když porovnáte své IQ s IQ Alberta Einsteina, nebudete mít čas pamatovat si všechny příkazy, které provádíte, a brzy začnete dělat strašlivé chyby. Práce na linuxovém terminálu vystaví jednotlivce dvěma typům chyb:

    • Chyba jedna:Tato chyba je nejběžnější a vše, co dělá, je, že vám brání pokračovat s příkazem, který chcete provést.
    • Chyba dvě:Tato chyba je podvodná. Spustí příkaz, který jste spustili, ale přinese neočekávané výsledky.

Příkaz historie si můžete představit jako nindža bojovníka, který odstraňuje tyto dva typy chyb a zvyšuje vaši produktivitu. Než začneme s výukovým programem, zamyslíme se nad tím, že příkaz historie Linuxu obsahuje více než jen použití klávesy se šipkou nahoru na klávesnici. Díky našemu přístupu budete vypadat profesionálněji.

Zadejte příkaz historie Linuxu

Spuštění příkazu historie je stejně snadné jako zadání slova historie na terminálu Linux. Zapněte svůj terminál a projděte tento jednoduchý pravopisný kvíz.

history

Pokud stisknete enter, zobrazí se seznam všech příkazů, které jste provedli na terminálu, s jejich přiřazenými ID nebo čísly událostí. Systém číslování, který používá terminálové rozhraní Linuxu, zobrazuje nejstarší příkaz na začátku seznamu a nově zadaný příkaz na konci seznamu. Jak můžete vidět, příkaz historie, který jsem právě napsal, měl přiděleno identifikační číslo 24.

Zvažte scénář velmi aktivního linuxového terminálu. Pokud bychom na tomto terminálu napsali příkaz history, výstupem by byl řekněme seznam 500 příkazů uložených v souboru historie. Příkaz historie je tedy užitečný při filtrování zadaného seskupeného segmentu příkazů. Řekněme, že chceme zobrazit posledních 10 příkazů provedených na terminálu. Budeme filtrovat cestu přes terminál zadáním následujícího.

history 10

Jak můžete vidět, příkaz „history 10“ filtroval posledních deset příkazů použitých na tomto terminálu a vypsal je na našem terminálu se zahrnutím do příkazu „history 10“.

To je jeden způsob, jak tohoto cíle dosáhnout. Další praštěný způsob, jak to udělat, je spojit příkaz historie s dalším příkazem zvaným ocas. Zadejte následující příkaz, jak je uvedeno na snímku obrazovky níže.

history | tail -n 10

Příkaz také uvádí posledních 10 provedených příkazů na terminálu Linux, včetně toho, který jsme právě provedli.

Vlastně se opakující historie

Je čas na zábavnou část používání příkazu historie. Co kdybychom začali tím, že necháme historii, aby se opakovala. Protože jste obeznámeni s příkazy historie a jejich souvisejícími ID událostí, vraťme se k terminálu. Chcete-li zopakovat konkrétně uvedený příkaz, poznamenejte si jeho ID události a zesměšněte následující příkaz, jak je znázorněno na snímku obrazovky. Při psaní příkazu nepoužívejte mezery.

!17

V mém případě jsem chtěl zobrazit soubor Linux /etc/host a byl jsem vyzván k zadání ověřovacího hesla. Jakmile byly moje přihlašovací údaje schváleny, příkaz se sám provedl.

Existuje také případ, kdy chcete zopakovat předchozí příkaz, který jste provedli. Dosažení tohoto cíle je stejně snadné jako zadání dvou vykřičníků na váš terminál. Nepoužívejte mezery.

!!

Jak vidíte, příkaz nás vrátil do souboru Linux /etc/host, který jsem předtím otevřel. K opětovnému použití mého předchozího příkazu, který se provedl sám, bylo zapotřebí příkazu s dvojitým vykřičníkem. Možná jste byli zvyklí na klávesu Šipka nahoru na klávesnici, která vyžadovala provedení dvou akcí, jeden posun nahoru a poté stisknutí tlačítka Enter. Příkaz s dvojitým vykřičníkem však vypadá rychleji a profesionálněji, protože stačí provést jedinou akci.

Vzhledem k tomu, že příkaz, který jsem použil, vyžaduje oprávnění Sudo, mohu před své dvojité vykřičníky přidat příkaz Sudo, aby bylo dosaženo stejného očekávaného výsledku.

sudo !!

Jediný vykřičník v kombinaci s ID události provede zobrazený příkaz spojený s tímto ID. Dvojitý vykřičník vás přiměje ke spuštění naposledy použitého příkazu s možností přidání předpony příkazu Sudo, pokud vyžaduje provedení uživatele sudoer.

Možná budete chtít posunout svou hloupost na další úroveň a chtít způsob, jak zopakovat své 3 nebo 6 předchozích příkazů. V tomto případě si budete muset poznamenat ID události spojené s příkazem. Poté zkombinujete ID události se spojovníkem a jedním vykřičníkem následovně.

!-21

Na mé straně jsem se chtěl zeptat na můj předchozí příkaz 21 a ukázalo se, že to byl požadavek ping na moji IP adresu localhost. Použití této sekvence příkazů je užitečné, když chcete provést kontrolu dříve provedeného příkazu a určit, zda parametry, které jste použili k jeho provedení, jsou stále platné nebo nejsou zaujaté.

Řetězce příkazů

Řekněme, že jste na svém terminálu provedli nějaký příkaz, ale plně jste si příkaz nezapamatovali. Jste si však jisti účinností příkazu a tím, jak vám pomohl. Znalost části řetězce tvořícího tento příkaz je velmi užitečná. V mém případě jsem si velmi jistý, že jednou spustím příkaz k aktualizaci systému. Řekněme, že si tento příkaz pro aktualizaci systému ještě plně zapamatuji, ale vím, že část příkazu obsahuje řetězec „apt“ jako počáteční znění příkazu. Pro opětovné použití tohoto příkazu napíšu na svém terminálu následující příkaz. Protože však většina příkazů pro aktualizaci systému vyžadovala autorizaci uživatele sudoer, přidám předponu příkazového řetězce, který chci se Sudo použít.

sudo !apt

Jak můžete vidět, úspěšně jsem aktualizoval svůj systém Linux z příkazového řádku bez použití úplného příkazu „sudo apt update“. Tento hack z příručky příkazů historie Linuxu je užitečný při práci s delšími příkazy, jejichž psaní může být únavné nebo může vést k otravnému překlepu. Možná upravujete soubor, jehož relativní cesta vytváří zdlouhavý příkaz, nebo pouze kopírujete soubory. Ať tak či onak, potřebujete bezstresový přístup k recyklaci vašich opakujících se příkazů.

Protože jsme se dotkli aspektu autorizace uživatelů sudoeru, mohli bychom skončit naražením do zdi, pokud nebudeme opatrní. Většina příkazů od privilegovaných uživatelů sudoer bude vyžadovat ke spuštění předponu Sudo. Proto zadání řetězcového příkazu jako „!sudo“ pro příkazy začínající na Sudo nemusí stačit, protože by to mohlo vést k provedení nežádoucí sekvence příkazů. Můžeme však poskytnout záchrannou síť pomocí parametru :p, což je modifikátor tisku. Zkombinování našeho řetězcového příkazu s ním by tedy mělo přinést výstupy jako je následující.

!sudo:p

Příkaz vytiskl dostupné příkazy Sudo, které jsem právě použil. K opětovnému použití tohoto příkazu použiji klávesu Šipka nahoru na klávesnici a stisknutím klávesy Enter jej provedu. Pokud by seznam obsahoval více než jeden příkaz Sudo, stále bych k navigaci ke konkrétnímu příkazu Sudo, který jsem chtěl znovu použít, použil šipku nahoru.

To nejsou všechny možnosti, které máme pro práci s řetězci. Existuje také případ, kdy znáte pouze určitý řetězec definovaný v příkazu, který chcete použít. Je to případ, kdy si nejste jisti prvními řetězci, které definují příkaz, který jste dříve použili. Zde k nalezení příkazu použijete vykřičník i otazník.

!?ping

Použil jsem sekvenci příkazů „!?ping“, která okamžitě provedla můj předchozí požadavek ping. Tuto sekvenci můžete použít k provedení předchozích příkazů na vašem terminálu, které jsou jedinečné pro ostatní.

Interaktivní vyhledávání

Předpokládejme, že máte několik předchozích příkazů, které jste provedli, a které mají podobné nebo shodné sekvence řetězců. Ze všech těchto odpovídajících narážek možná budete chtít provést pouze konkrétní sekvenci příkazů v tomto záhybu. Interaktivní vyhledávání vám umožní dostat se k tomuto jedinému příkazu, který chcete provést. Interaktivní vyhledávání spustíte kombinací kláves Ctrl+r. Váš linuxový terminálový displej by měl vypadat podobně jako ten níže.

Stačí zadat vyhledávací klíč pro příkaz, který potřebujete provést. V mém případě jsem napsal ‚apt‘ a jak vidíte, objevilo se to mezi apostrofem a zadním zaškrtnutím. Můžete zadat více řetězcových vodítek o dotazovaném příkazu a interaktivní vyhledávání bude průběžně aktualizovat související výsledky. Stisknutím klávesy enter okamžitě provedete nalezený příkaz.

sudo apt update

Kromě toho možná budete chtít upravit nalezený příkaz před jeho provedením. Chcete-li to provést, použijte levé a pravé šipky na klávesnici. Nalezený příkaz se nyní zobrazí na terminálu, kde můžete provést potřebné změny.

sudo apt update && cd FOSSLinux

Odstranění příkazů historie

Dosud můžete načítat, dotazovat se, aktualizovat a spouštět příkazy ze souboru historie. Možná však hledáte způsob, jak vyprázdnit seznam historie některých nebo všech jeho příkazů. Možná jste ten typ uživatele, který nechce, aby někdo sledoval, jak používal svůj systém Linux. Parametr -d vám pomůže zbavit se některých nežádoucích příkazů v souboru historie. V mém případě můj soubor historie obsahuje chybně napsaný příkaz s ID události 44.

Abych se zbavil tohoto chybně napsaného příkazu, udělám na svém terminálu následující.

history -d 44

Opětovné spuštění příkazu „historie“ ukazuje, že chybně napsaný příkaz byl odstraněn.

Možnost mazání se nevztahuje pouze na jeden příkaz, protože zahrnuje také řadu příkazů. Zvažte například následující příkaz.

history -d 10 20

Tento příkaz odstraní položky souboru historie od události id 10 do události id 20. Další příkaz historie, který je třeba zvážit, je následující.

history -d -6

Tento příkaz se zbaví posledních šesti příkazů, které jste zadali na terminálu, uložených v souboru historie.

Pokud chcete vymazat vše ze seznamu souborů historie, můžete si následující příkaz zesměšnit.

history -c

Závěr

Nyní máte všechny potřebné informace k rozhodnutí, zda se historie vašeho terminálu má nebo nemá opakovat. Pro pokročilé uživatele existují případy, kdy můžete spustit aplikaci prostřednictvím terminálu a můžete být vyzváni, abyste za sebou zanechali stopu citlivých informací. V souboru historie jsou také uložena taková citlivá data. Proto je dobrou praxí vždy před ukončením příkazového řádku vymazat soubor historie, zejména v případech, které vedou k ukládání citlivých dat. Příkaz historie vám dává sílu znovu prožít dobré časy na terminálu a také opravit vaše minulé chyby na příkazovém řádku.


Linux
  1. Linux Tee Command s příklady

  2. Příkaz linuxové hlavy s příklady

  3. JQ Command v Linuxu s příklady

  1. wc Linux Command s příklady

  2. Linux řazení příkazů s příklady

  3. Echo Command v Linuxu (s příklady)

  1. man Command v Linuxu s příklady

  2. Příkaz AWK v Linuxu s příklady

  3. Curl Command v Linuxu s příklady