LINUXSOFT.cz Přeskoč levou lištu
Uživatel: Heslo:  
   CZUKPL

> Terminálový multiplexer tmux - I.

tmux je moderní, vysoce konfigurovatelný terminálový multiplexer, podporující skriptování, klávesové zkratky ve stylu vi a Emacs, práci s okny a podokny.

28.3.2012 00:00 | David Adamczyk | Články autora | přečteno 4536×

Tmux je součástí operačního systému OpenBSD, jedná se o alternativu k programu GNU Screen, která je šířena pod BSD licencí. Funguje jako terminálový multiplexer, který poskytuje virtuální okna a podokna v terminálu pro oddělení jednotlivých konzolových aplikací. Mezi těmito okny se můžete přepínat v rámci jedné relace (session), případně v jednom okně vytvořit několik podoken a tyto podokna různě seskupovat. Takto si můžete připravit pracovní prostředí, které Vám bude práci maximálně usnadňovat jestliže pracujete často v terminálu (ať už v grafickém, nebo textovém režimu). Díky jednoduché práci s okny virtuálních konzolí nemusíte používat emulátor terminálu podporující taby (záložky) a nemusíte otevírat několik oken terminálu současně, což je obvykle nepříjemné a znesnadňuje to orientaci mezi jednotlivými okny. Tmux je založen na principu klient-server modelu, kde server umožňuje běh více sezení. Každé okno s aplikací je nezávislou entitou, která může být použita ve více sezeních. Ke každému takovémuto sezení může přistupovat více klientů. Podporuje interaktivní menu, stavový řádek informující uživatele, umí rovněž klávesové zkratky ve stylu emacsu a vi, příkazový režim ve stylu vi včetně automatického doplňování, UTF8, kopírování a vkládání pomocí mnohonásobných bufferů a pro příznivce eyecandy nesmíme zapomenout na podporu 256 barev v terminálu ;-) Tmux je k dispozici pro Linux, FreeBSD, NetBSD, Solaris a AIX. Pro instalaci do svého systému použijte buď předem připravený balíček, nebo se pusťte do kompilace programu ze zdrojových kódů, které naleznete na adrese: http://tmux.sourceforge.net/

První spuštění

Při prvním spuštení tmuxu je vytvořeno nové sezení, jedno nové pracovní okno a stavový řádek, umístěný na spodní straně okna. Stavový řádek poskytuje informace o aktuálním sezení, oknech a jejich stavech, případně další informace, nebo jej můžete použít pro interaktivní zadávání příkazů.

Užitečné příkazy, které budete při práci s tmuxem jistě potřebovat je vypsání všech příkazů, do terminálu zadejte:

$ tmux list-commands
vypsání všech klávesových zkratek pomocí příkazu
$ tmux list-keys
a informace o všech oknech, podoknech a sezenich pomocí příkazu
$ tmux info
během hrátek s konfiguračním souborem se může hodit také příkaz
$ tmux source-file ~/.tmux.conf

Práce s klientem a sezení

Abychom se mohli s klientem připojit k nějakému sezení, je toto sezení vhodné nejprve vytvořit (pokud ještě není vytvořeno, nebo jen chceme vytvořit nové). Nové sezení vytvoříte příkazem

$ tmux new -s session_name
Teď máte vytvořeno jedno, nebo více běžících sezení, ke kterým se můžete připojovat, nebo mezi nimi libovolně přepínat. Seznam všech běžících sezení vypište příkazem
$ tmux list-sessions
. Pokud chcete klienta připojit ke konkrétnímu sezení napište do terminálu příkaz
$ tmux attach -t session_name
, kde uvedete jméno konkrétního sezení, ke kterému se chcete připojit. Přepnout se z jednoho sezení do jiného provedete příkazem
$ tmux switch -t session_name
Zejména při práci na vzdáleném stroji se může hodit odpojení se od sezení (pro případ, že se k němu chcete připojit například odjinud). Pro odpojení slouží příkaz
$ tmux detach
zapsaný do terminálu ve kterém běží klient připojen na příslušné sezení, ze kterého se chcete odpojit (je možné použít i klávesovou zkratku, která je uvedena v textu dále). Každé sezení je indikováno číslem (indexem sezení) v hranatých závorkách na stavovém řádku (první sezení je označeno indexem 0) nebo libovolným řetězcem pokud jste si sezení přejmenovali. Jestliže máte na svém počítači spuštěno několik sezení Tmuxu a pořebujete se mezi nimi pomocí jednoho klienta přepínat, nejsnáze tak učiníte vyvoláním menu klávesovou zkratkou [Ctrl-b s]. Toto menu zobrazí všechna aktivní sezení, jednoduchým výběrem jej můžete změnit. Naopak k předchozímu sezení se vrátíte stiskem [Ctrl-b L]. Pokud potřebujete během práce zastavit terminál ve kterém pracujete a přejete si pozastavit výpis provedete to klávesovou zkratkou [Ctrl-b z]. Pro odpojení klienta od sezení slouží [Ctrl-b d], chcete-li vybrat konkrétního klienta použijte [Ctrl-b D]. Uživatelé, kteří si budou během práce s Tmuxem připadat ztraceni mohou kdykoliv vyvolat seznam klávesových zkratek stisknutím [Ctrl-b ?]. Pracujete-li s tmuxem na vzdáleném serveru možná oceníte vynucené překreslení připojeného klienta stiskem [Ctrl-b r].

Příkazy a klávesové zkratky

Příkazy, které chcete provádět máte možnost volat v příkazovém řádku nebo pomocí klávesových zkratek. Seznam všech příkazů, které Tmux umí provádět vypíšete příkazem

$ tmux list-commands
Větší množství příkazů zadávejte oddělením středníkem. Všechny tyto příkazy, které jsou odděleny středníkem, budou vykonávány postupně v pořadí tak jak jsou zapsány.
$ tmux prikaz1; prikaz2; prikaz3
Přejete-li si klávesové zkratky z nějakého důvodu pozměnit (například se kryjí s klávesovými zkratkami Vašeho správce oken), případně chcete vytvořit nové klávesové zkratky provedete to následujícím způsobem:
unbind-key ^A - odebere klávesovou zkratku Ctrl-A
bind-key ^A select-pane -t :.+ přiřadí příkaz klávesové zkratce Ctrl-A
Nezapomeňte, že klávesové zkratky se vyvolávají použitím prefixu (standardně [Ctrl-b]). Pokud budete chtít vyvolat příkaz, který jsme si právě nastavili použijeme [Ctrl-b + Ctrl-A] Jak bylo právě řečeno, dost často je problém klávesových zkratek v prostředí ve kterém pracujete. Jestliže se Vám standardní prefix [Ctrl-b] kryje s jinou klávesovou zkratkou, můžete jej jednoduše změnit na jiný prefix následovně:
$ tmux set-option -g prefix C-a; unbind-key C-b; bind-key C-a send-prefix
Teď budou všechny klávesové zkratky volány po použití prefixu [Ctrl-a]. To znamená, že například odpojení klienta od sezení vyvoláte stiskem [Ctrl-a d]. Zajímavou možností je nastavení klávesových zkratek nejčastěji používaným aplikacím a předávání parametrů. Ukážeme si jak přiřadit klávesovou zkratku programu w3m, který bude otevřen v novém okně a jak mu předat jako parametr adresu webu, který chceme otevřít. $ tmux bind-key P command-prompt "new-window 'exec w3m %%'" Po stisknutí klávesové zkratky [Ctrl-b + P] se ve stavovém řádku objeví výzva, do které napíšete řetězec, který bude následně předán jako parametr spuštěnému programu w3m, který se bude nacházet v nově otevřeném okně. Stejně tak můžete volat jakoukoliv jinou terminálovou aplikaci, která bude spuštěna v novém okně nebo podokně. Pokud se často přihlašujete na vzdálený počítač můžete si takto nastavit i klávesové zkratky pro ssh a podobně. Další zajímavou vlastností může být specifikace konkrétního cíle se kterým chceme pracovat. K tomu použijeme parametr -t. Máme na výběr z target-client což specifikuje konkrétního klienta, target-sesion pro zadávání příkazu konkrétnímu sezení, target-window pro zadávání příkazu konkrétnímu oknu a target-pane pro konkrétní podokno.Jestliže není okno nebo konkrétní cíl specifikován bude vybrán aktuální cíl nebo aktuální okno. Seznam všech klientů dostanete příkazem:
$ tmux list-clients
seznam všech sezení příkazem:
$ tmux list-sessions
seznam všech oken pomocí:
$ tmux list-windows
a všech podoken příkazem:
$ tmux list-panes


Při výběru oken a podoken lze použít také tzv. offset, což je posunutí o konkrétní počet položek (+2 znamená o 2 položky dále, nebo -3 od tři položky zpět) Parametr -t očekává následující volby: target-session je názvem sezení, nebo jméno klienta se stejnou syntaxí jako target-client - sezení bude připojeno do aktuálního klienta. target-window je názvem okna v zápisu [sezení:okno], pro session platí stejná pravidla jako pro target-session a window je indexem příslušného okna, například [tretisezeni:1]. Speciální znak ! znamená předchozí aktivní okno, + další okno a - předchozí okno. target-pane - platí stejná pravidla jako pro target-window. Za položku pane dosazujeme index příslušného podokna. Například mysession:mywindow.1 kde 1 je index podokna. Jestliže je index podokna vynechán, bude vybráno právě aktivní podokno. Jako index podokna mohou být použity také příslušné názvy: top, bottom, left, right, top-left, top-right, bottom-left, bottom-right. Záleží na sestavení vašich podoken v okně.
$ tmux select-window -t:-2
Posune se na okno o dvě pozice zpět v aktuálním sezení
$ tmux select-window -t 1:-2
Posune na okno o dvě pozice zpět v sezení, které je označené indexem 1. Toto si nejlépe vyzkoušíte, když si spustíte dva terminály a v každém se přihlásíte k jinému sezení tmuxu. Stejným způsobem můžete přistupovat k libovolnému podoknu v daném sezení. Tedy příkazem:
$ tmux split-window -h -t 1:2
rozdělíte v sezení s indexem 1 jeho druhé okno na dva podokna a příkazem:
$ tmux clock-mode -t 1:2.0
zobrazíte v podokně s indexem 0 hodiny. Příkazy shellu musí být předány jako jeden řetězec:
$ tmux new-window ‘vi /etc/passwd’

V dalším díle Vás čeká popis práce s okny, podokny, stavovým řádkem a něco málo o tom jak si s tmuxem ušetřit práci.

Verze pro tisk

pridej.cz

 

DISKUZE

Nejsou žádné diskuzní příspěvky u dané položky.



Příspívat do diskuze mohou pouze registrovaní uživatelé.
> Vyhledávání software
> Vyhledávání článků

15.5.2017 23:50 /František Kučera
Máš rád svobodný software a hardware nebo se o nich chceš něco dozvědět? Zajímá tě DIY, CNC, SDR nebo morseovka? Přijď na sraz spolku OpenAlt, který se bude konat ve čtvrtek 18. května od 18:00 v Radegastovně Perón (Stroupežnického 20, Praha 5).
Přidat komentář

12.5.2017 16:42 /Honza Javorek
PyCon CZ, česká konference o programovacím jazyce Python, se po dvou úspěšných ročnících v Brně bude letos konat v Praze, a to 8. až 10. června. Na konferenci letos zavítá např. i Armin Ronacher, známý především jako autor frameworku Flask, šablon Jinja2/Twig, a dalších projektů. Těšit se můžete na přednášky o datové analytice, tvorbě webu, testování, tvorbě API, učení a mentorování programování, přednášky o rozvoji komunity, o použití Pythonu ve vědě nebo k ovládání nejrůznějších zařízení (MicroPython). Na vlastní prsty si můžete na workshopech vyzkoušet postavit Pythonem ovládaného robota, naučit se učit šestileté děti programovat, efektivně testovat nebo si v Pythonu pohrát s kartografickým materiálem. Kupujte lístky, dokud jsou.
Přidat komentář

2.5.2017 9:20 /Eva Rázgová
Putovní konference československé Drupal komunity "DrupalCamp Československo" se tentokrát koná 27. 5.2017 na VUT FIT v Brně. Můžete načerpat a vyměnit si zkušenosti z oblasti Drupalu 7 a 8, UX, SEO, managementu týmového vývoje, využití Dockeru pro Drupal a dalších. Vítáni jsou nováčci i experti. Akci pořádají Slovenská Drupal Asociácia a česká Asociace pro Drupal. Registrace na webu .
Přidat komentář

1.5.2017 20:31 /Pavel `Goldenfish' Kysilka
PR: 25.5.2017 proběhne v Praze konference na téma Firemní informační systémy. Hlavními tématy jsou: Informační systémy s vlastní inteligencí, efektivní práce s dokumenty, mobilní přístup k datům nebo využívání cloudu.
Přidat komentář

15.4.2017 15:20 /František Kučera
Máš rád svobodný software a hardware nebo se o nich chceš něco dozvědět? Zajímá tě IoT a radiokomunikace? Přijď na sraz spolku OpenAlt, který se bude konat ve středu 19. dubna od 18:30 v Šenkovně (Sokolská 60, Praha 2).
Přidat komentář

5.3.2017 19:12 /Redakce Linuxsoft.cz
PR: 23. března proběhne v Praze konferenci na téma Cloud computing v praxi. Hlavními tématy jsou: Nejžhavější trendy v oblasti cloudu a cloudových řešení, Moderní cloudové služby, Infrastruktura současných cloudů, Efektivní využití cloudu, Nástrahy cloudových řešení a jak se jim vyhnout.
Přidat komentář

27.2.2017 22:12 /František Kučera
Pozvánka na 137. sraz OpenAlt – Praha: Tentokrát jsme si pro vás připravili neobvyklou akci. Ve středu 1.3. v 17:30 nás přivítá sdružení CZ.NIC ve svých prostorách v Milešovské ulici číslo 5 na Praze 3, kde si pro nás připravili krátkou prezentaci jejich činnosti. Následně navštívíme jejich datacentrum pod Žižkovskou věží. Provedou nás prostory, které jsou běžnému smrtelníkovi nedostupné!
Po ukončení prohlídky se všchni odebereme do hostince U vodoucha, Jagelonská 21, Praha 3 pochutnat si na některém z vybraných piv či dát si něco na zub. Rezervaci máme od 19:30, heslo je OpenAlt.
Ale pozor! Do prostor datového centra máme omezený přístup, dostane se tam pouze 10 lidí! Takže kdo přijde dříve, ten má přednost, a občanky s sebou! Kdo nebude chtít na prohlídku datového centra, může se pomalu přesunout do hostince U vodoucha a u nepřeberné nabídky piv počkat na ostatní.
Přidat komentář

18.1.2017 0:49 /František Kučera
Členové a příznivci spolku OpenAlt se pravidelně schází v Praze a Brně. Fotky z pražských srazů za uplynulý rok si můžete prohlédnout na stránkách spolku. Příští sraz se koná už 19. ledna – tentokrát je tématem ergonomie ovládání počítače – tzn. klávesnice, myši a další zařízení. Také budete mít příležitost si prohlédnout pražský hackerspace Brmlab.
Přidat komentář

   Více ...   Přidat zprávičku

> Poslední diskuze

1.8.2017 7:32 / Cassidy
structural consultants

30.7.2017 11:12 / Jaromir Obr
Národní znaky

27.7.2017 12:24 / Jaromir Obr
Cteni/zapis

26.7.2017 21:12 / Jaromir Obr
Podminka

15.6.2017 9:34 / Ondřej Havlas
php,

Více ...

ISSN 1801-3805 | Provozovatel: Pavel Kysilka, IČ: 72868490 (2003-2017) | mail at linuxsoft dot cz | Design: www.megadesign.cz | Textová verze