Naučte se Linux

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

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 je, a není za tím žádný skrytý význam. Stejným způsobem, jako se po dlouhém dni na internetu díváte na historii prohlížeče, vnímáte příkaz historie. Jde o sledování vašich předchozích pohybů a akcí, ale v tomto případě je to na terminálu nebo příkazovém řádku systému Linux.

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

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

Necháme historii se opakovat

Můžeme začít tento historický článek zábavnou formou a citací George Santayany. Tento slavný jedinec spojuje neschopnost vzpomenout si na minulost s kletbou opakování. Když však vstoupíme do světa Linuxu, tento citát lze kvalifikovat pouze jako mýtus. Je to proto, že filozofie Linuxu je realistickým opakem uvedeného citátu George Santayany. Pokud si na terminálu Linux nemůžete vzpomenout na minulou akci, nemusíte si s ní dělat starosti, protože šance jsou proti tomu, aby se to někdy rozpadlo.

Pokud se samozřejmě nestanete velitelem příkazu historie systému Linux, můžete cestovat časem do minulosti a opravit své předchozí hříchy terminálu, pokud je to vaše přání. Použití příkazu historie systému Linux není v žádném případě spojencem lenivosti. Šetří čas díky efektivitě. Jak se budete pohybovat v ovládání operačního systému Linux, zjistíte, že pracujete s zdlouhavějšími a komplikovanějšími příkazy. I když porovnáte IQ s Albertem Einsteinem, nebudete mít čas si pamatovat všechny příkazy, které provádíte, a brzy začnete dělat hrozné chyby. Práce na terminálu Linux vystaví jednotlivce dvěma typům chyb:

Příkaz historie si můžete představit jako bojovníka ninja, který tyto dva typy chyb vykolejí, aby zvýšil vaši produktivitu. Než se pustíme do výuky, přemýšlíme o tom, že příkaz historie systému Linux obsahuje více než pouhé použití šipky nahoru na klávesnici. Díky našemu přístupu budete vypadat profesionálněji.

Zadejte příkaz Historie systému Linux

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

Dějiny

příkaz historie

Pokud stisknete klávesu Enter, zobrazí se seznam všech příkazů, které jste na terminálu provedli, s přiřazenými ID nebo čísly událostí. Systém číslování, který používá rozhraní terminálu Linux, zobrazuje nejstarší příkaz v horní části seznamu a nově zadaný příkaz v dolní části seznamu. Jak vidíte, právě zadanému příkazu historie bylo přiděleno ID číslo 24.

seznam příkazů historie

Zvažte scénář velmi aktivního terminálu Linux. Pokud bychom na tomto terminálu zadali příkaz historie, 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. Cestu přes terminál budeme filtrovat zadáním následujícího.

historie 10

posledních deset příkazů v souboru historie

Jak vidíte, příkaz 'history 10' filtroval posledních deset příkazů použitých na tomto terminálu a uvedl je na našem terminálu se zahrnutím příkazu 'history 10'.

To je jeden způsob, jak dosáhnout tohoto cíle. Další hloupý způsob, jak to udělat, je pipetováním příkazu historie dalším příkazem zvaným ocasní příkaz. Zadejte následující příkaz, jak je předáno na snímku obrazovky níže.

historie | ocas -n 10

pomocí příkazu tail zobrazíte posledních deset příkazů v souboru historie

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

Vlastně opakující se historie

Je čas na zábavnou část používání příkazu historie. Co takhle začít tím, že se necháme historii opakovat. Jelikož jste obeznámeni s příkazy historie a jejich přidruženými ID událostí, vraťme se k terminálu. Chcete-li opakovat 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

použití ID události k provedení předchozího příkazu

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 pověření schváleny, příkaz se provedl sám.

provedený příkaz v souboru historie

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

!!

opětovné provedení předchozího příkazu

znovu provedený příkaz historie

Jak vidíte, příkaz nás přenesl zpět do souboru Linux / etc / host, který jsem předtím otevřel. Trvalo to dvojitým vykřičníkem, abych znovu použil můj předchozí příkaz, který byl proveden sám. Možná jste byli zvyklí na klávesnici se šipkou nahoru, která vyžadovala provedení dvou akcí, posouvání nahoru a následné stisknutí tlačítka Enter. Příkaz dvojitého vykřičníku však vypadá rychlejší a profesionálnější, protože stačí provést pouze jednu akci.

Vzhledem k tomu, že příkaz, který jsem použil, vyžaduje oprávnění Sudo, mohu předřadit své dvojité vykřičníky příkazem Sudo, abych získal stejný očekávaný výsledek.

sudo !!

zabývající se velením historie Sudo

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

Možná budete také chtít posunout svou pitomost na další úroveň a chtít způsob, jak opakovat svoji 3rd nebo 6th předchozí příkaz. V tomto případě budete muset vzít na vědomí ID události spojené s příkazem. Následně zkombinujete ID události s pomlčkou a jediným vykřičníkem.

!-21

provedením jakéhokoli předchozího příkazu v souboru historie

Nakonec jsem se chtěl zeptat na 21Svatý předchozí příkaz a ukázalo se, že jde o požadavek ping na moji IP adresu localhost. Použití této sekvence příkazů je užitečné, pokud chcete zkontrolovat dříve provedený příkaz a určit, zda jsou parametry, které jste použili k jeho provedení, stále platné nebo nejsou předpjaté.

Příkazové řetězce

Řekněme, že jste provedli nějaký příkaz na svém terminálu, ale příkaz jste si úplně nezapamatovali. Jste si však jisti účinností příkazu a tím, jak vám pomohlo. Znát část řetězce, která tvoří 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 mého systému. Řekněme, že si tento příkaz aktualizace systému ještě nezapamatuji úplně, ale vím, že část příkazu obsahuje řetězec 'apt' jako počáteční znění příkazu. Chcete-li tento příkaz použít znovu, zadám na svém terminálu následující příkaz. Jelikož však většina příkazů pro aktualizaci systému vyžadovala autorizaci uživatele sudoeru, přidám před příkazový řetězec, který chci použít se Sudo.

sudo !výstižný

příkaz historie s řetězci

Jak vidíte, ú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 systému Linux je užitečný při práci s delšími příkazy, které by mohly být zdlouhavé psát nebo by mohly vést k otravnému překlepu. Možná upravujete soubor, jehož relativní cesta vytvoří zdlouhavý příkaz, nebo jen kopírujete soubory. Ať tak či onak, budete potřebovat bezstresový přístup k recyklaci svých opakujících se příkazů.

Vzhledem k tomu, že jsme se dotkli aspektu autorizace uživatelů sudoer, mohli bychom nakonec narazit na zeď, pokud nebudeme opatrní. Většina příkazů od privilegovaných uživatelů sudoer vyžaduje ke spuštění předponu Sudo. Proto zadejte příkaz řetězce jako '!sudo 'pro příkazy, které začínají sudo, nemusí stačit, protože by to mohlo vést k provedení nežádoucí sekvence příkazů. Můžeme však poskytnout bezpečnostní síť pomocí parametru: p, což je modifikátor tisku. Proto by kombinace našeho řetězcového příkazu s ním měla přinést výstupy jako následující.

!sudo: str

příkaz historie s modifikátorem tisku

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 se šipkou nahoru a provedu ji stisknutím klávesy enter. Pokud by seznam zobrazoval více než jeden příkaz Sudo, stále používám klávesu se šipkou nahoru k navigaci ke konkrétnímu příkazu Sudo, který jsem chtěl znovu použít.

To nejsou všechny možnosti, které máme při práci s řetězci. Existuje také případ, kdy víte pouze o konkrétním řetězci definovaném v příkazu, který chcete použít. Jedná se o případ, kdy si nejste jisti prvními řetězci, které definují příkaz, který jste dříve použili. Zde použijete k vyhledání příkazu vykřičník i otazník.

!?ping

provádění konkrétního příkazu ze souboru historie pomocí řetězců

Použil jsem '!?posloupnost příkazů ping, která okamžitě provedla můj předchozí požadavek na 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 mají podobné nebo odpovídající sekvence řetězců. Ze všech těchto shodných narážek můžete 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í zahájíte kombinací kláves Ctrl + r. Displej terminálu Linux by měl vypadat podobně jako ten níže.

příkaz historie a interaktivní vyhledávání

Stačí zadat hledanou stopu pro příkaz, který potřebujete provést. V mém případě jsem zadal 'apt' a jak vidíte, objevilo se to mezi apostrofem a zpětnou vazbou. Můžete zadat více řetězcových stop 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 aktualizace

pomocí interaktivního vyhledávání

Před provedením možná budete chtít nalezený příkaz upravit. Použijte šipky vlevo a vpravo 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

úpravy interaktivního vyhledávání

Odstranění příkazů historie

Zatím můžete nyní načítat, dotazovat, 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ého nebo všech jeho příkazů. Možná jste ten typ uživatele, který nechce, aby kdokoli sledoval, jak využívali svůj systém Linux. Parametr -d vám pomůže zbavit se některých nechtěných příkazů v souboru historie. V mém případě obsahuje můj soubor historie chybně napsaný příkaz s ID události číslo 44.

vyhledání příkazu historie k odstranění

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

historie -d 44

pomocí ID události smazat příkaz historie

Spuštění příkazu 'history' znovu ukazuje, že byl chybně napsaný příkaz odstraněn.

potvrzení vymazání příkazu historie

Možnost odstranění neplatí pouze pro jeden příkaz, protože pokrývá také celou řadu příkazů. Zvažte například následující příkaz.

historie -d 10 20

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

historie -d -6

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

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

historie -c

vymazat všechny příkazy historie

Závěr

Nyní máte všechny potřebné informace k rozhodnutí, zda by se historie vašeho terminálu měla nebo neměla opakovat. Pro pokročilé uživatele existují instance, kdy můžete spustit aplikaci přes terminál a můžete být vyzváni, abyste za sebou nechali stopu citlivých informací. Soubor historie také ukládá tak citlivá data. Proto je dobrým zvykem vždy vymazat soubor historie před opuštěním příkazového řádku, zejména v případech, které vedou k uložení 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 příkazového řádku.

Hry Nejlepší hry z příkazového řádku pro Linux
Nejlepší hry z příkazového řádku pro Linux
Příkazový řádek není při používání Linuxu jen vaším největším spojencem - může být také zdrojem zábavy, protože jej můžete použít k hraní mnoha zábavn...
Hry Nejlepší aplikace pro mapování gamepadu pro Linux
Nejlepší aplikace pro mapování gamepadu pro Linux
Pokud rádi hrajete hry na Linuxu s gamepadem místo typického vstupního systému pro klávesnici a myš, máte k dispozici několik užitečných aplikací. Mno...
Hry Užitečné nástroje pro hráče Linuxu
Užitečné nástroje pro hráče Linuxu
Pokud rádi hrajete hry na Linuxu, je pravděpodobné, že jste ke zlepšení herního zážitku použili aplikace a nástroje jako Wine, Lutris a OBS Studio. Kr...