GNU/Linux >> Znalost Linux >  >> Linux

Úvod do emulátoru terminálu DomTerm pro Linux

DomTerm je moderní emulátor terminálu, který používá engine prohlížeče jako "nástroj GUI." To umožňuje některé úhledné funkce, jako je vložitelná grafika a odkazy, formátovaný text HTML a skládací (zobrazit/skrýt) příkazy. Jinak vypadá a působí jako samostatný emulátor terminálu s plnými funkcemi, s vynikající kompatibilitou xterm (včetně ovládání myši a 24bitových barev) a odpovídajícím „chromem“ (nabídkami). Kromě toho je zde vestavěna podpora pro správu relací a podokna (jako v tmux a GNU screen ), základní editace vstupu (jako v readline ) a stránkování (jako v less ).

Níže se podíváme více na tyto funkce. Budeme předpokládat, že máte domterm nainstalovaný (pokud potřebujete získat a sestavit DomTerm, přeskočte na konec tohoto článku). Nejprve je zde však rychlý přehled technologie.

Frontend vs. backend

Další zdroje pro Linux

  • Cheat pro příkazy Linuxu
  • Cheat sheet pro pokročilé příkazy systému Linux
  • Bezplatný online kurz:Technický přehled RHEL
  • Síťový cheat pro Linux
  • Cheat sheet SELinux
  • Cheat pro běžné příkazy pro Linux
  • Co jsou kontejnery systému Linux?
  • Naše nejnovější články o Linuxu

Většina DomTerm je napsána v JavaScriptu a běží v prohlížeči. Může to být webový prohlížeč pro počítače, jako je Chrome nebo Firefox (viz obrázek 3), nebo to může být vložený prohlížeč. Použití obecného webového prohlížeče funguje dobře, ale uživatelská zkušenost není tak příjemná (protože nabídky jsou navrženy pro obecné procházení, nikoli pro emulátor terminálu) a model zabezpečení překáží, takže použití vestavěného prohlížeče je hezčí. .

V současné době jsou podporovány následující:

  • qtdomterm , která používá sadu nástrojů Qt a QtWebEngine
  • Electron vložení (viz obrázek 1)
  • atom-domterm spouští DomTerm jako balíček v textovém editoru Atom (který je také založen na Electronu) a integruje se se systémem podokna Atom (viz obrázek 2)
  • Obal pro WebEngine JavaFX , což je užitečné pro kód napsaný v jazyce Java (viz obrázek 4)
  • Dříve preferovaný frontend používal Firefox-XUL, ale Mozilla od té doby XUL upustila

V současné době je pravděpodobně nejhezčí frontend Electron, těsně následovaný frontendem Qt. Pokud používáte Atom, atom-domterm funguje docela dobře.

Backend server je napsán v C. Spravuje pseudo terminály (PTY) a relace. Je to také HTTP server, který poskytuje JavaScript a další soubory frontendu. domterm příkaz spustí terminálové úlohy a provede další požadavky. Pokud není spuštěn žádný server, domterm démonizuje sám sebe. Komunikace mezi backendem a serverem se normálně provádí pomocí WebSocketů (s libwebsockets na serveru). Vložení JavaFX však nepoužívá WebSockets ani server DomTerm; místo toho Java aplikace komunikují přímo pomocí mostu Java–JavaScript.

Silný emulátor terminálu kompatibilní s xterm

DomTerm vypadá a působí jako moderní emulátor terminálu. Zvládá události myši, 24bitové barvy, Unicode, znaky s dvojitou šířkou (CJK) a vstupní metody. DomTerm odvádí velmi dobrou práci na testovací sadě vttest.

Mezi neobvyklé funkce patří:

Zobrazit/skrýt tlačítka („skládací“): Malé trojúhelníky (viz obrázek 2 výše) jsou tlačítka, která skryjí/zobrazí odpovídající výstup. Chcete-li vytvořit tlačítka, stačí do textu výzvy přidat určité únikové sekvence.

Podpora kliknutí myší pro readline a podobné vstupní editory: Pokud kliknete do (žluté) vstupní oblasti, DomTerm odešle aplikaci správnou sekvenci klávesových šipek. (Toto je umožněno pomocí escape sekvencí ve výzvě; můžete to také vynutit pomocí Alt+Click.)

Upravte styl terminálu pomocí CSS: To se obvykle provádí v ~/.domterm/settings.ini , který se po uložení automaticky znovu načte. Například na obrázku 2 byly nastaveny barvy pozadí specifické pro terminál.

Lepší konzole REPL

Klasický emulátor terminálu funguje na obdélníkových mřížkách buněk znaků. To funguje pro REPL (příkazový shell), ale není to ideální. Zde jsou některé funkce DomTerm užitečné pro REPL, které se obvykle nenacházejí v emulátorech terminálu:

Příkaz může „vytisknout“ obrázek, graf, matematický vzorec nebo sadu odkazů, na které lze kliknout: Aplikace může odeslat sekvenci escape obsahující téměř jakýkoli kód HTML. (HTML je vyčištěno, aby se odstranil JavaScript a další nebezpečné funkce.) 

Obrázek 3 ukazuje fragment z gnuplot zasedání. Gnuplot (2.1 nebo novější) podporuje domterm jako typ terminálu. Grafický výstup je převeden na obrázek SVG, který je následně vytištěn na terminálu. Více informací o tom poskytuje můj příspěvek na blogu Gnuplot display na DomTerm.

Jazyk Kawa má knihovnu pro vytváření a transformaci hodnot geometrických obrázků. Pokud takovou hodnotu obrázku vytisknete na terminál DomTerm, obrázek se převede do formátu SVG a vloží se do výstupu.

Rychlý text na výstupu: Zprávy nápovědy jsou čitelnější a vypadají lépe díky stylu HTML. Spodní panel obrázku 1 ukazuje výstup z domterm help . (Výstup je prostý text, pokud neběží pod DomTerm.) Všimněte si PAUSED zprávu z vestavěného pageru.

Chybové zprávy mohou obsahovat klikatelné odkazy: DomTerm rozpoznává syntaxi filename:line:column: a přemění jej na odkaz, který otevře soubor a řádek v konfigurovatelném textovém editoru. (Toto funguje pro relativní názvy souborů, pokud použijete PROMPT_COMMAND nebo podobně jako adresáře stop.)

Kompilátor může zjistit, že běží pod DomTerm, a přímo vygenerovat odkazy na soubory v sekvenci escape. To je robustnější než závislé na porovnávání vzorů DomTerm, protože zpracovává mezery a další speciální znaky a nezávisí na sledování adresářů. Na obrázku 4 můžete vidět chybové zprávy kompilátoru Kawa. Umístěním kurzoru na pozici souboru se podtrhne a zobrazí se file: Adresa URL se zobrazuje v atom-domterm oblast zpráv (dolní část okna). (Pokud nepoužíváte atom-domterm , takové zprávy jsou zobrazeny v překryvném poli, jak je vidět u PAUSED zpráva na obrázku 1.)

Akce při kliknutí na odkaz je konfigurovatelná. Výchozí akce pro file: odkaz s #position přípona je otevřít soubor v textovém editoru.

Strukturovaná interní reprezentace: V interní struktuře uzlu jsou zastoupeny následující:Příkazy, výzvy, vstupní řádky, normální a chybový výstup, karty a zachování struktury, pokud zvolíte "Uložit jako HTML." Soubor HTML je kompatibilní s XML, takže můžete použít nástroje XML k vyhledávání nebo transformaci výstupu. Příkaz domterm view-saved otevře uložený soubor HTML způsobem, který umožňuje skládání příkazů (tlačítka zobrazit/skrýt jsou aktivní) a přeformátovat při změně velikosti okna.

Vestavěný pěkný tisk ve stylu Lisp: Do výstupu můžete zahrnout direktivy pro pěkný tisk (např. seskupení), aby se konce řádků přepočítaly při změně velikosti okna. Podrobnější diskuzi naleznete v mém článku Dynamický pěkný tisk v DomTerm.

Základní vestavěné úpravy čar s historií (jako GNU readline ):Toto používá vestavěný editor prohlížeče, takže má skvělé ovládání myši a výběru. Můžete přepínat mezi normálním znakovým režimem (většina napsaných znaků je odeslána přímo procesu); nebo řádkový režim (běžné znaky se vkládají, zatímco řídicí znaky způsobují editační akce, přičemž Enter odešle upravený řádek do procesu). Výchozí je automatický režim, kde DomTerm přepíná mezi znakovým a řádkovým režimem v závislosti na tom, zda je PTY v raw nebo kanonickém režimu.

Vestavěný pager (jako zjednodušené less ):Posouvání budou ovládat klávesové zkratky. V „režimu stránkování“ se výstup pozastaví po každé nové obrazovce (nebo o jeden řádek, pokud postupujete po řádku dopředu). Režim stránkování je nenápadný a chytrý, pokud jde o vstup uživatele, takže jej můžete (pokud si přejete) spustit, aniž by to narušovalo interaktivní programy.

Multiplexování a relace

Záložky a dlaždice: Nejen, že můžete vytvořit více záložek terminálu, můžete je také uspořádat. Mezi panely a kartami můžete přecházet a vytvářet nové pomocí myši nebo klávesové zkratky. Lze je přeskupovat a měnit jejich velikost pomocí myši. To je implementováno pomocí JavaScriptové knihovny GoldenLayout. Obrázek 1 ukazuje okno se dvěma panely. Horní má dvě záložky, na jedné běží Midnight Commander; spodní panel zobrazuje domterm help výstup jako HTML. Na Atomu však místo toho používáme jeho vestavěné přetahovatelné dlaždice a karty; můžete to vidět na obrázku 2.

Odpojení a opětovné připojení k relacím: DomTerm podporuje uspořádání relací, podobně jako tmux a screen GNU . Ke stejné relaci můžete dokonce připojit více oken nebo panelů. To podporuje sdílení relací pro více uživatelů a vzdálená připojení. (Z bezpečnostních důvodů musí být všechny relace stejného serveru schopny číst soket domény Unix a místní soubor obsahující náhodný klíč. Toto omezení bude zrušeno, až budeme mít dobrý a bezpečný příběh se vzdáleným přístupem.)

The domterm příkaz je také jako tmux nebo screen GNU v tom má více možností pro ovládání nebo spuštění serveru, který spravuje jednu nebo více relací. Hlavní rozdíl je v tom, že pokud již neběží pod DomTerm, domterm příkaz vytvoří nové okno nejvyšší úrovně namísto spuštění ve stávajícím terminálu.

domterm command má řadu dílčích příkazů, podobně jako tmux nebo git . Některé dílčí příkazy vytvářejí okna nebo relace. Jiné (jako je „tisk“ obrázku) fungují pouze v rámci existující relace DomTerm.

Příkaz domterm browse otevře okno nebo panel pro procházení zadané adresy URL, například při procházení dokumentace.

Získání a instalace DomTerm

DomTerm je dostupný z jeho úložiště GitHub. V současné době neexistují žádné předem sestavené balíčky, ale existují podrobné pokyny. Všechny předpoklady jsou dostupné na Fedoře 27, což usnadňuje její sestavení.


Linux
  1. Průvodce linuxovým terminálem pro začátečníky

  2. Zkopírujte soubory v terminálu Linux

  3. Přejmenujte soubor v terminálu Linux

  1. Přesunout soubory v terminálu Linux

  2. 8 tipů pro příkazový řádek Linuxu

  3. Úvod do Udev:Linuxový subsystém pro správu událostí zařízení

  1. Úvod do linuxového příkazu chown

  2. Jaký je váš oblíbený emulátor terminálu Linux?

  3. Úvod do příkazu alternatives v Linuxu