Už jsme se naučili používat GNU Screen pro správu více relací terminálu. Dnes uvidíme další známý nástroj příkazového řádku s názvem "Tmux" , který se také používá ke správě více relací Terminálu. Tato příručka vysvětluje, co je to Tmux a použití příkazů Tmux s příklady v Linuxu.
1. Co je Tmux?
Podobně jako GNU Screen je Tmux také terminálovým multiplexerem, který nám umožňuje vytvářet počet terminálových relací a spouštět více než jeden program nebo procesy současně v jednom okně terminálu.
Tmux je bezplatný, open source a multiplatformní program, který podporuje Linux, OpenBSD, FreeBSD, NetBSD a Mac OS X.
2. Nainstalujte Tmux v Linuxu
Tmux je k dispozici v oficiálních repozitářích většiny distribucí Linuxu.
Chcete-li nainstalovat Tmux v Alpine Linux, spusťte:
$ sudo apk add tmux
Na Arch Linuxu a jeho variantách, jako je EndeavourOS a Manjaro Linux, spusťte následující příkaz a nainstalujte jej.
$ sudo pacman -S tmux
Na Debian, Ubuntu, Linux Mint, Pop_OS!:
$ sudo apt-get install tmux
Na Fedoře, RHEL, CentOS, AlmaLinux, Rocky Linux:
$ sudo dnf install tmux
Nebo,
$ sudo yum install tmux
Na SUSE/openSUSE:
$ sudo zypper install tmux
No, právě jsme nainstalovali Tmux. Pojďme dále a podívejme se na několik příkladů, jak používat Tmux.
3. Použití příkazů Tmux s příklady
Výchozí zkratka předpony pro všechny příkazy v Tmux je Ctrl+b
. Při používání Tmux si zapamatujte tuto klávesovou zkratku.
Pozor: Výchozí předpona pro všechny obrazovky příkazy je Ctrl+a .
3.1. Vytváření relací Tmux
Chcete-li vytvořit novou relaci Tmux a připojit se k ní, spusťte z terminálu následující příkaz:
$ tmux
Nebo,
$ tmux new
Jakmile jste uvnitř relace Tmux, uvidíte zelený pruh ve spodní části jak je znázorněno na snímku obrazovky níže.

Je velmi užitečné ověřit, zda jste v relaci Tmux nebo ne.
3.2. Odpojení od relací Tmux
Chcete-li se odpojit od aktuální relace Tmux, stačí stisknout Ctrl+b
a d
. Nemusíte stisknout obě klávesové zkratky najednou. Nejprve stiskněte "Ctrl+b"
a poté stiskněte "d"
.
Jakmile se odpojíte od relace, uvidíte výstup podobný níže.
[detached (from session 0)]
3.3. Vytváření pojmenovaných relací
Pokud používáte více relací, můžete být zmateni, které programy běží na kterých relacích. V takových případech stačí vytvořit pojmenované relace.
Pokud například chcete v relaci provádět nějaké činnosti související s webovým serverem, stačí vytvořit relaci Tmux s vlastním názvem, například "webserver" (nebo jakékoli jméno dle vašeho výběru).
$ tmux new -s webserver
Zde je nová pojmenovaná relace Tmux.

Jak můžete vidět na výše uvedeném snímku obrazovky, název relace Tmux je webserver . Tímto způsobem můžete snadno identifikovat, který program běží na které relaci.
Pro odpojení jednoduše stiskněte Ctrl+b
a d
.
3.4. Seznam relací Tmux
Chcete-li zobrazit seznam otevřených relací Tmux, spusťte:
$ tmux ls
Ukázkový výstup:

Jak můžete vidět, mám dvě otevřené relace Tmux.
3.5. Vytváření oddělených relací
Někdy můžete chtít jednoduše vytvořit relaci a nechcete se k ní automaticky připojovat.
Chcete-li vytvořit novou oddělenou relaci s názvem "ostechnix" , spustit:
$ tmux new -s ostechnix -d
Výše uvedený příkaz vytvoří novou relaci Tmux nazvanou „ostechnix“, ale nepřipojí se k ní.
Můžete ověřit, zda je relace vytvořena pomocí tmux ls
příkaz:

3.6. Připojování k relacím Tmux
K poslední vytvořené relaci se můžete připojit spuštěním tohoto příkazu:
$ tmux attach
Nebo,
$ tmux a
Pokud se chcete připojit k jakékoli konkrétní pojmenované relaci, například „ostechnix“, spusťte:
$ tmux attach -t ostechnix
Nebo krátce:
$ tmux a -t ostechnix
3.7. Zabijte relace Tmux
Až budete hotovi a nebudete již potřebovat relaci Tmux, můžete ji kdykoli ukončit příkazem:
$ tmux kill-session -t ostechnix
Chcete-li po připojení zabít, stiskněte Ctrl+b
a x
. Stiskněte "y"
zabít relaci.
Uzavření relace můžete ověřit pomocí tmux ls
příkaz.
Chcete-li zabít server Tmux spolu se všemi relacemi Tmux, spusťte:
$ tmux kill-server
Buď opatrný! To ukončí všechny relace Tmux, i když v relacích běží nějaké úlohy bez jakéhokoli varování.
Když nebyly spuštěny žádné relace Tmux, uvidíte následující výstup:
$ tmux ls no server running on /tmp/tmux-1000/default
3.8. Rozdělit Windows relace Tmux
Tmux má možnost rozdělit jedno okno relace Tmux na několik menších oken nazývaných Panely Tmux .
Tímto způsobem můžeme spouštět různé programy na každém panelu a pracovat se všemi současně.
Každý panel lze změnit velikost, přesunout a zavřít, aniž by to ovlivnilo ostatní panely. Okno Tmux můžeme rozdělit vodorovně nebo svisle nebo obojí najednou.
3.8.1. Rozdělit panely vodorovně
Chcete-li panel rozdělit vodorovně, stiskněte Ctrl+b
a "
(jednoduché uvozovky).

K dalšímu rozdělení panelů použijte stejnou kombinaci kláves.
3.8.2. Rozdělit panely svisle
Chcete-li panel rozdělit svisle, stiskněte Ctrl+b
a %
.

3.8.3. Rozdělit panely vodorovně a svisle
Panel můžeme také rozdělit vodorovně a svisle současně. Podívejte se na následující snímek obrazovky.

Nejprve jsem provedl vodorovné rozdělení stisknutím Ctrl+b
"
a poté spodní panel vertikálně rozdělte stisknutím Ctrl+b
%
.
Jak vidíte na výše uvedeném snímku obrazovky, v každém panelu spouštím tři různé programy.
3.8.4. Přepínání mezi panely
Chcete-li přepínat mezi panely, stiskněte Ctrl+b a klávesy se šipkami (doleva, doprava, nahoru, dolů) .
3.8.5. Odeslat příkazy do všech podoken
V předchozím příkladu spustíme v každém panelu tři různé příkazy. Je však také možné spustit odesílání stejných příkazů do všech podoken najednou.
Chcete-li tak učinit, stiskněte Ctrl+b
a zadejte následující příkaz a stiskněte ENTER
:
:setw synchronize-panes
Nyní zadejte libovolný příkaz na libovolném panelu. Uvidíte, že stejný příkaz se projeví na všech panelech.
3.8.6. Vyměňte podokna
Chcete-li prohodit panely, stiskněte Ctrl+b
a o
.
3.8.7. Zobrazit čísla podoken
Stiskněte Ctrl+b
a q
pro zobrazení čísel podoken.
3.8.8. Zabít panely
Chcete-li panel vypnout, jednoduše napište exit
a ENTER
klíč. Případně stiskněte Ctrl+b
a x
. Zobrazí se potvrzovací zpráva. Stačí stisknout "y"
zavřete podokno.

4. Přiblížit a oddálit panely Tmux
Panely Tmux můžeme přiblížit tak, aby se vešly do plné velikosti aktuálního okna terminálu pro lepší viditelnost textu a pro zobrazení většího obsahu.
Je to užitečné, když potřebujete více místa nebo se zaměřit na konkrétní úkol. Po dokončení tohoto úkolu můžete oddálit (zrušit přiblížení) podokno Tmux zpět do jeho normální polohy. Více podrobností v následujícím odkazu.
- Jak přiblížit panely Tmux pro lepší viditelnost textu
5. Automatické spuštění relací Tmux
Při práci se vzdálenými systémy přes SSH je vždy dobrým zvykem spouštět dlouho běžící proces uvnitř relace Tmux.
Zabraňuje totiž tomu, abyste ztratili kontrolu nad běžícím procesem, když náhle přestane fungovat síťové připojení.
Jedním ze způsobů, jak se tomuto problému vyhnout, je automatické spouštění relací Tmux. Další podrobnosti naleznete na následujícím odkazu.
- Automatické spuštění relace Tmux na vzdáleném systému při přihlášení přes SSH
Závěr
V této příručce jsme diskutovali o použití příkazů Tmux s příklady. V této fázi získáte základní představu o nástroji příkazového řádku Tmux a o tom, jak používat Tmux ke správě více relací terminálu. Další podrobnosti naleznete na manuálových stránkách.
$ man tmux
Oba nástroje GNU Screen a Tmux mohou být velmi užitečné při vzdálené správě serverů přes SSH. Naučte se důkladně příkazy Screen a Tmux, abyste mohli spravovat své vzdálené servery jako profesionál.