LINUXSOFT.cz Přeskoč levou lištu

ARCHIV



   

> 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 8049×

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ů

28.11.2018 23:56 /František Kučera
Prosincový sraz spolku OpenAlt se koná ve středu 5.12.2018 od 16:00 na adrese Zikova 1903/4, Praha 6. Tentokrát navštívíme organizaci CESNET. Na programu jsou dvě přednášky: Distribuované úložiště Ceph (Michal Strnad) a Plně šifrovaný disk na moderním systému (Ondřej Caletka). Následně se přesuneme do některé z nedalekých restaurací, kde budeme pokračovat v diskusi.
Komentářů: 1

12.11.2018 21:28 /Redakce Linuxsoft.cz
22. listopadu 2018 se koná v Praze na Karlově náměstí již pátý ročník konference s tématem Datová centra pro business, která nabídne odpovědi na aktuální a často řešené otázky: Jaké jsou aktuální trendy v oblasti datových center a jak je optimálně využít pro vlastní prospěch? Jak si zajistit odpovídající služby datových center? Podle jakých kritérií vybírat dodavatele služeb? Jak volit vhodné součásti infrastruktury při budování či rozšiřování vlastního datového centra? Jak efektivně datové centrum spravovat? Jak co nejlépe eliminovat možná rizika? apod. Příznivci LinuxSoftu mohou při registraci uplatnit kód LIN350, který jim přinese zvýhodněné vstupné s 50% slevou.
Přidat komentář

6.11.2018 2:04 /František Kučera
Říjnový pražský sraz spolku OpenAlt se koná v listopadu – již tento čtvrtek – 8. 11. 2018 od 18:00 v Radegastovně Perón (Stroupežnického 20, Praha 5). Tentokrát bez oficiální přednášky, ale zato s dobrým jídlem a pivem – volná diskuse na téma umění a technologie, IoT, CNC, svobodný software, hardware a další hračky.
Přidat komentář

4.10.2018 21:30 /Ondřej Čečák
LinuxDays 2018 již tento víkend, registrace je otevřená.
Přidat komentář

18.9.2018 23:30 /František Kučera
Zářijový pražský sraz spolku OpenAlt se koná již tento čtvrtek – 20. 9. 2018 od 18:00 v Radegastovně Perón (Stroupežnického 20, Praha 5). Tentokrát bez oficiální přednášky, ale zato s dobrým jídlem a pivem – volná diskuse na téma IoT, CNC, svobodný software, hardware a další hračky.
Přidat komentář

9.9.2018 14:15 /Redakce Linuxsoft.cz
20.9.2018 proběhne v pražském Kongresovém centru Vavruška konference Mobilní řešení pro business. Návštěvníci si vyslechnou mimo jiné přednášky na témata: Nejdůležitější aktuální trendy v oblasti mobilních technologií, správa a zabezpečení mobilních zařízení ve firmách, jak mobilně přistupovat k informačnímu systému firmy, kdy se vyplatí používat odolná mobilní zařízení nebo jak zabezpečit mobilní komunikaci.
Přidat komentář

12.8.2018 16:58 /František Kučera
Srpnový pražský sraz spolku OpenAlt se koná ve čtvrtek – 16. 8. 2018 od 19:00 v Kavárně Ideál (Sázavská 30, Praha), kde máme rezervovaný salonek. Tentokrát jsou tématem srazu databáze prezentaci svého projektu si pro nás připravil Standa Dzik. Dále bude prostor, abychom probrali nápady na využití IoT a sítě The Things Network, případně další témata.
Přidat komentář

16.7.2018 1:05 /František Kučera
Červencový pražský sraz spolku OpenAlt se koná již tento čtvrtek – 19. 7. 2018 od 18:00 v Kavárně Ideál (Sázavská 30, Praha), kde máme rezervovaný salonek. Tentokrát bude přednáška na téma: automatizační nástroj Ansible, kterou si připravil Martin Vicián.
Přidat komentář

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

> Poslední diskuze

31.7.2023 14:13 / Linda Graham
iPhone Services

30.11.2022 9:32 / Kyle McDermott
Hosting download unavailable

13.12.2018 10:57 / Jan Mareš
Re: zavináč

2.12.2018 23:56 / František Kučera
Sraz

5.10.2018 17:12 / Jakub Kuljovsky
Re: Jaký kurz a software by jste doporučili pro začínajcího kodéra?

Více ...

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