Terminálový multiplexer tmux - II.

V druhém díle o tmuxu se podíváme na práci s okny, podokny a stavovým řádkem. Ukážeme si jak lze zařídit, aby tmux spolupracoval s vašimi skripty a jak si tmux můžete nakonfigurovat k obrazu svému.

2.4.2012 00:00 | David Adamczyk | přečteno 7589×

Okna mohou pracovat v několika režimech, výchozí režim je přímý přístup do terminálu v okně. Druhý režim je kopírovací. Tento režim dovoluje vybrané oblasti v okně nebo v jeho historii kopírovat do bufferu pro pozdější použití. Pokud se chcete přepnout do kopírovacího režimu použijte klávesovou zkratku [

Práce s okny

Každá pracovní plocha v terminálu je tvořena jedním oknem. Nové okno vyvtoříte příkazem:

$ tmux new-window
zapsaným do terminálu, nebo klávesovou zkratkou [Ctrl-b c] a přepínat se mezi jednotlivými okny je možné pomocí klávesové zkratky [Ctrl-b n] (skok na další okno) nebo [Ctrl-b p] (skok na předchozí okno). Jednotlivé aktivity oken monitoruje stavový řádek. Vytvořené okno můžete ukončit kávesovou zkratkou [Ctrl-b &], nebo přejmenovat pomocí [Ctrl-b ,] máte-li více než deset oken, bude se Vám hodit k přepínání mezi okny klávesová zkratka [Ctrl-b ‘] do výzvy, která se objeví v dolní části obrazovky zadejte číslo indexu okna. Nevyhovuje-li Vám standardní název okna, který symbolizuje aktuální spuštěný program, přejmenujte si název okna pomocí příkazu:
$ tmux rename-window
případně použijte klávesovou zkratku [Ctrl-b ,]. Takto si můžete rozdělit okna tak, aby co nejlépe vyhovovaly Vašemu stylu práce. Informace o aktuálním okně zobrazíte stiskem [Ctrl-b i]. Interaktivní menu pro výběr okna vyvoláte stiskem [Ctrl-b w], nebo můžete přepnout na konkrétní okno příkazem:
$ tmux select-window -t :0-9
nebo stiskem [Ctrl-b (0-9)]. Pro vyhledávání textu máte k dispozici klávesovou zkratku [Ctrl-b f].

Práce s podokny



Každé okno je možné rozdělit na několik podoken, na kterých můžete samostatně pracovat. Podokna vytvoříte z okna jejich rozdělením a to buď horizontálně na dvě okna nadsebou pomocí klávesové zkratky [Ctrl-b “] případně příkazem:

$ tmux split-window -h
nebo vertikálně na dvě okna vedle sebe přípazem:
$ tmux split-window
nebo pomocí klávesové zkratky [Ctrl-b %]. Přepínání mezi jednotlivými podokny je řešeno velmi intuitivně klávesovou zkratkou [Ctrl-b šipka (nahoru, dolu, doleva, doprava)] případně použitím příkazu:
$ tmux select-pane -[UDLR]
Stejným způsobem rovněž měníte velikost podoken, stiskem [Ctrl-b Alt-šipka(nahoru,dolu,doleva,doprava)] posouváte okrajem aktivního podokna o pět znaků nebo [Ctrl-b Ctrl-šipka(nahoru,dolu,doleva,doprava)] o jeden znak. Pokud se vám nelíbí seskupení podoken, můžete jejich pozici libovolně měnit, [Ctrl-b {] vymění aktuální panel s předchozím panelem a naopak [Ctrl-b }] vymění aktuální panel s následujícím panelem. Stejné funkce docílíte i příkazem
$ tmux swap-pane -[UDLR]
který přesouvá podokna v určeném směru.Mezi předchozím a aktivním panelem přepínáte stiskem [Ctrl-b ;] rotovat panely lze stiskem [Ctrl-b Meta-o]. Opravdovou lahůdkou je změna layoutu pomocí klávesové zkratky [Ctrl-b Space] nebo přepnutí na konkrétní layout pomocí klávesové zkratky [Ctrl-b Meta-(1 až 5)]. Aktuálně zvolené podokno vytrhnete a ostatní podokna přesunete do nově vytvořeného okna stisknutím [Ctrl-b !]. Jste-li během práce zmateni a nevíte na kterém panelu se zrovna nacházíte nechte si vypsat očíslování všech podoken stisknutím [Ctrl-b q]. Jestliže víte číslo podokna (např. index 1), přepněte se na něj příkazem:
$ tmux select-pane -t :.1
Zrušení panelu provedete klávesovou zkratkou [Ctrl-b x]. Stiskem [Ctrl-b t] zobrazíte v podokně aktuální čas.

Stavový řádek

Stavový řádek poskytuje při práci užitečné informace, nebo může uživatele vyzvat k ruzným akcím. Ve stavovém řádku se setkáme s následujícími symboly:
SymbolVýznam
*Označuje aktuálně zvolené okno
-Označuje okno se kterým se pracovalo naposled (než jste se přepli na jiné aktuální okno)
#Pro okno je zapnuto monitorování aktivity
!Signalizace v příslušném okně
+V okně se objevil požadovaný obsah
~V okně se neobjevilo nic nového během stanoveného intervalu

Konfigurace

Veškerá nastavení se nacházejí v souboru ~/.tmux.conf nebo v /etc/tmux.conftento soubor umožňuje nastavit požadované vlastnosti tmux serveru, sezení, stavového řádku, oken, podoken a klávesové zkratky. Jednotlivé volby mohou být zobrazeny pomocí show-options nebo nastaveny pomocí set-options. Jestliže nastavujete volbu, která má platit globálně v rámci celého tmux serveru, použijte přepínač -s. Příkaz set-option má následující zápis:

set-option [-agsuw] [-t target-session | target-window] option value
-a jestliže hodnotou je řetězec, bude nová hodnota přidána do řetězce
-g vynucení globální platnosti pro celé sezení
-s vynucení platnosti v rámci celého serveru
-u zruší individuální volbu a zavede tu, která je nastavená v rámci celého sezení
-w nastavení platné pro celé okno
-t specifikuje platnost pro konkrétní sezení nebo okno
option volba
value hodnota
show-options [-gsw] [-t target-session | target-window]
-g nastavení platné globálně
-s nastavení platné pro server
-w nastavení platné pro okno
-t výběr konkrétního sezení nebo okna
set-environment [-gru] [-t target-session] name [value]
show-environment [-g] [-t target-session]
Možnosti jak si pracovní prostředí tmuxu nakonfigurovat jsou opravdu vysoké

Při sestavení vlastního konfiguračního souboru doporučuji spolupracovat s manuálovou stránkou programu tmux (pro méně zkušené uživatele stačí do terminálu napsat man tmux) a prostudovat výpis příkazů show-options a show-environment.Chcete-li nechat vypsat globální nastavení příslušného sezení s indexem 0 použijte příkaz:
$ tmux show-options -g -t 0
Následuje malá ukázka toho jak by mohl vypadat Váš konfigurační soubor:
#
# Konfiguracni soubor tmuxu - ulozit do .tmux.conf v domovskem adresari
#
# Prenastaveni modifikatoru Ctrl-b na Ctrl-a 
set-option -g prefix Ctrl-a
bind-key Ctrl-a last-window
# Prvnim indexem bude cislo 1 (standardne se zacina od 0) 
set -g base-index 1
# Nastaveni stavoveho radku 
set -g status-bg black
set -g status-fg white
set -g status-left ""
set -g status-right "#[fg=green]#H"
# Uprava modifikatoru na Ctrl-a a <prikaz> pro odeslani prikazu v pripade vnorene session v jine session 
bind-key a send-prefix
# Monitoring aktivit 
setw -g monitor-activity on
set -g visual-activity on
# Priklad zapisu parametru stavoveho radku 
#set -g status-right "#[fg=yellow]#(uptime | cut -d ',' -f 2-)"
# Vysviceni aktivniho okna 
set-window-option -g window-status-current-bg red
Nezapomeňte si jej uložit do svého domovského adresáře

Skriptování

Pomocí skriptů, které budou s tmuxem spolupracovat si můžete zautomatizovat vetšinu prováděných úloh. Typickým příkladem může být příprava prostředí pro určitou činnost (například programování). Zájemcům doporučuji nahlédnout na zajímavý projekt s názvem Tmuxinator. Pro inspiraci jak takové prostředí pro vývoj s Tmuxinatorem může vypadat navštivte blog o vývoji v Ruby s názvem Shapeshed a blog o vývoji v Djangu s názvem Andrew Brookins. Pokud si chcete nějaký skript napsat sami, bude Vám stačit základní znalost skriptování v shellu. Ve svých skriptech můžete volat všechny příkazy tmuxu tak, jak jsou uvedeny v těchto dvou článcích (je zde uveden pouze výběr základních nejdůležitějších příkazů, pro popis ostatních příkazů doporučuji nahlédnout do manuálové stránky tmuxu).

Několik užitečných odkazů

Online verze článku: http://www.linuxsoft.cz/article.php?id_article=1918