Pamatujete si na své začátky s terminálem? Chtěli jste například vytvořit archiv z několika souborů, ale ještě jste neznali příkaz tar a jeho několik přepínačů. Nebo jste začali používat nový nástroj, který měl obsáhlou dokumentaci, ale ta byla skoupá na příklady použití a vy jste jí téměř celou museli přečíst. Ano, dnes máme například Stack Overflow, ale koho baví to neustálé přepínání mezi prohlížečem a terminálem? Poté je zde situace, kdy jednou za čas potřebujete použít komplexnější příkaz, který vám nestojí za vytvoření aliasu v ~/.bashrc, ale zároveň si ho nemůžete zapamatovat. Zřejmě každý z vás si vybaví nějakou podobnou situaci z minulosti a možná i ze současnosti 🙂 A přesně z těchto důvodů vznikl Cheat.
Co je Cheat?
Slovy autora (volný překlad [0]): ,,Cheat vám umožňuje interaktivně vytvářet a prohlížet cheatsheety na příkazové řádce.'' A přesně to je Cheat. Jednoduchý nástroj napsaný v Pythonu, který pracuje s cheatsheety. Cheatsheety jsou prosté textové soubory, obsahující většinou krátký seznam příkladů použití daného příkazu a jeho zápis.
Základní použití
Samotné používání Cheatu je jednoduché samo o sobě a Cheat obsahuje pouze několik přepínačů, které můžete použít. Naprosto nejzákladnější použití Cheatu zahrnuje zavolání utility cheat s argumentem názvu utility, kterou chcete použít.
To je vše! (Jak by řekl Horst Fuchs :)) Cheat nalezne konkrétní cheatsheet a vypíše jej. Ale co když daný cheatsheet neexistuje nebo jej chci upravit? Stačí použít přepínač ‘-e’, který otevře daný cheatsheet ve vašem oblíbeném editoru. Ve skutečnosti, Cheat toho udělá na pozadí trochu více. Daný cheatsheet vytvoří či upraví pouze pro vás, nikoho dalšího se vaše akce v systému nedotkne. Ale o tom více později.
Pokud hledáte konkrétní funkci, ale nemůžete si vzpomenout, který program ji poskytuje, tak můžete využít ‘-s’. Tento příkaz vám vyhledá zmínku o klíčovém slově ve všech dostupných cheatsheetech.
Toto jsou nejzákladnější a nejdůležitější příkazy cheatu.
Instalace ve Fedoře
Cheat je zabalený od Fedory 28, takže vám stačí ‘# dnf install cheat’ a můžete začít! Spolu s nástrojem zahrnuje balíček také řadu existujících cheatsheetů z upstreamu, které již byly sesbírány komunitou uživatelů používajících Cheat.
Vychytávky
Cheat se snaží být co nejvíce uživatelsky přívětivý a proto využívá množství proměnných prostředí a nastavení v /etc/cheat.
Špatně se vám například rozeznává text kvůli barvám vašeho terminálu? Není problém! Pomocí ‘CHEAT_COLORSCHEME’ si můžete vybrat mezi tmavým a světlým barevným schématem.
Pokud si chcete přesunout své cheatsheety na jiné místo v systému pak není nic snazšího než přenastavit ‘CHEAT_PATH’ a nebo v případě uživatelských cheatsheetů ‘CHEAT_USER_DIR’.
Každý má svůj preferovaný textový editor. Aby se vám editované cheatsheety otevíraly právě v tom vašem, je třeba nastavit ‘CHEAT_EDITOR’
{
"CHEAT_COLORS" : true,
"CHEAT_COLORSCHEME" : "light",
"CHEAT_EDITOR" : "vi",
"CHEAT_PATH" : "/usr/share/cheat"
}
Takto potom vypadá validní konfigurační soubor /etc/cheat.
Proč bych ho měl používat?
Nejde jen o pomoc, kterou vám může Cheat poskytnout, ale také o vaši pomoc ostatním uživatelům, pokud své cheatsheety budete sdílet. Představte si například situaci, kdy vytváříte nový program a chcete naučit uživatele, jak ho používat. Jistě, že jsou zde dokumentace, manpage a tak dále, ale z již dříve řečených důvodů nemusí uživatel vždy najít to, co hledá, a tak buď kontaktuje vás, čímž ztrácí čas jak on, tak vy, a nebo váš program nahradí něčím jiným. Proč zbytečně ztrácet uživatele, když můžete poskytovat cheatsheet s příklady a tak pomoci sobě i jim?
Budoucnost
Cheat v sobě skrývá ještě veliký potenciál, který mohou rozvinout například správci balíků svými příspěvky v podobě cheatsheetů. Představte si možnost psát příkaz a kdykoliv moci použít shortcut k zobrazení nápovědy pro danou situaci. Pokaždé, kdy si budete chtít něco zapamatovat pak stačí jen připsat to do cheatsheetu a příště už se jen zeptat. Cílem vývoje Cheatu by mělo být vydobytí si místa vedle nástrojů jako je například bash-completion, který sám prošel poměrně bouřlivým vývojem. Jako komunita pro to můžeme mnohé udělat. Například můžeme Cheatu pomoci získat místo v souborovém systému, které budou moci ostatní vývojáři využívat jako úložiště pro poskytované cheatsheety a tím decentralizovat jejich distribuci bez nutnosti přidání závislosti na cheatu.
Jako ukázku mnohých možností vývoje přikládám gif zobrazující funkci, kterou jsem vytvořil za účelem zrychlení mého používání Cheatu. Bohužel je to pořád work in progress a tudiž ji nenajdete v upstreamu.
Zdroje
[0] https://github.com/cheat/cheat
22. 7. 2019 at 17:16
hezky 🙂 Diky za info!
22. 7. 2019 at 21:39
No já nevím… už máme třeba tldr a na rychlý pohled 🙂 nevidím výrazný rozdíl. http://tldr-pages.github.io
29. 7. 2019 at 07:05
Ja vidim, hleda jen prikazy. Neumi hledat podle klicovych slov treba create, extract atd.
29. 7. 2019 at 15:54
Třeba tldr vyzaduje pripojeni k internetu. Ve chvili kdy jsi offline a content uz nemas stazeny, tak jsi nahrany. Take jsem u tldr nikde nevidel moznost vytvaret vlastni content per-user primo pres tldr (pravdepodobne simple feature, ktera by mohla byt pridana, ale osobne tipuju ze to neni cesta kterou by se chtel tool obirat, kdyz nic takoveho zde neni od roku 2013). Ted kdyz user chce, musi si content vytvorit vlastnorucne v cachi (~/.cache/tldr/). Z toho pohledu, kdyz si chce nekdo ulozit v rychlosti nejaky command, pouziti cheatu je prijemnejsi. Stejne tak z pohledu uprav existujiciho contentu. Oboji ma neco do sebe a oba tooly jdou na to jinak.