Ať už spouštíte propracovanou domácí laboratoř Raspberry Pi nebo spravujete budovu plnou pracovních stanic, někdy musíte udělat stejný úkol na více hostitelích. Existuje mnoho způsobů, jak automatizovat úlohy napříč systémy. Ansible například zajišťuje, že všechny systémy jsou ve stejném stavu, a někdy stačí jednoduchá úloha cron. Někdy je ale potřeba spouštět příkazy ručně. K tomu potřebujete tmux, jediný terminál, který vám umožní ovládat více příkazových řádků.
tmux je aplikace s otevřeným zdrojovým kódem, která přidává vrstvy (nebo „okna“ v terminologii tmux) do okna vašeho terminálu, takže můžete otevřít více než jeden terminál v jednom okně plochy. Výsledkem je rozhraní s kartami (bez fyzických karet), takže můžete přepínat z jednoho otevřeného terminálu na druhý, aniž byste museli používat myš jako při přepínání z jedné karty ve Firefoxu na druhou.
To se může zdát nadbytečné. Koneckonců, moderní terminálové aplikace, jako je GNOME Terminal a Konsole, mají karty vestavěné ve výchozím nastavení, a dokonce i některé velmi staré terminály, jako je rxvt, mají možnost přidat rozhraní s kartami. Tmux však přidává možnost rozdělit okno na panely, přičemž každý panel obsahuje samostatný terminál a každý terminál lze přihlásit k samostatnému hostiteli. Pomocí několika klávesových zkratek nebo základního skriptu tmuxinator můžete vytvořit řadu terminálů.
(Seth Kenlon, CC BY-SA 4.0)
Instalovat tmux
V systémech Linux a BSD můžete nainstalovat tmux ze svého softwarového úložiště nebo stromu portů. Na Macu použijte Homebrew.
Například na RHEL nebo Fedoře:
$ sudo dnf install tmux
Spustit tmux
Chcete-li spustit tmux, otevřete terminál a zadejte:
$ tmux
Když to uděláte, zřejmým výsledkem je, že tmux spustí nový shell ve stejném okně se stavovým řádkem ve spodní části. Ale děje se toho víc a můžete to vidět na tomto malém experimentu. Nejprve ve svém aktuálním terminálu udělejte něco, co vám pomůže jej odlišit od jiného prázdného terminálu:
$ echo hello
hello
Nyní stiskněte Ctrl+B následuje C na vaší klávesnici. Může to vypadat, že vaše práce zmizela, ale ve skutečnosti jste vytvořili to, co tmux nazývá okno (což může být, pravda, matoucí, protože pravděpodobně také nazýváte terminál, který jste spustili, okno ). Díky tmux máte vlastně otevřená dvě okna, obě můžete vidět uvedená ve stavovém řádku v dolní části tmux. Mezi těmito dvěma okny se můžete pohybovat podle indexového čísla. Například stiskněte Ctrl+B následuje 0 přejděte do úvodního okna:
$ echo hello
hello
Stiskněte Ctrl+B následuje 1 přejděte do prvního nového okna, které jste vytvořili.
Otevřenými okny můžete také „procházet“ pomocí Ctrl+B a N (pro Další) nebo P (pro předchozí).
Spouštěč a příkazy tmux
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
Klávesová zkratka Ctrl+B je spouštěč tmux. Když jej stisknete v relaci tmux, upozorní tmux, aby „poslouchal“ další klávesu nebo kombinaci kláves, která následuje. Všechny zkratky tmux proto mají předponu Ctrl+B .
Můžete také otevřít příkazový řádek tmux a zadat příkazy tmux podle názvu. Chcete-li například vytvořit nové okno složitějším způsobem, můžete stisknout Ctrl+B následuje : pro vstup do příkazového řádku tmux. Zadejte new-window
a stiskněte Enter pro vytvoření nového okna. To dělá přesně to samé, jako když stisknete Ctrl+B pak C .
Rozdělení oken na panely
Jakmile v tmux vytvoříte více než jedno okno, je často užitečné je vidět všechna v jednom okně. Okno můžete rozdělit vodorovně (to znamená, že rozdělení je vodorovné, jedno okno umístíte na sever a druhé na jih) nebo svisle (s okny umístěnými na západ a východ).
- Chcete-li vytvořit vodorovné rozdělení, stiskněte Ctrl+B následuje " (to jsou dvojité uvozovky).
- Chcete-li vytvořit vertikální rozdělení, stiskněte Ctrl+B následuje % (procenta).
Okna, která byla rozdělena, můžete rozdělit, takže rozložení je na vás a počtu řádků ve vašem terminálu.
Někdy se věci mohou vymknout kontrole. Terminál plný náhodně rozdělených panelů můžete upravit pomocí těchto rychlých předvoleb:
- Ctrl+B Alt+1 :Rovnoměrné horizontální rozdělení
- Ctrl+B Alt+2 :Rovnoměrné vertikální rozdělení
- Ctrl+B Alt+3 :Vodorovné rozpětí pro hlavní panel, svislé rozdělení pro menší panely
- Ctrl+B Alt+3 :Svislé rozpětí pro hlavní panel, vodorovné rozdělení pro menší panely
- Ctrl+B Alt+5 :Dlaždicové rozvržení
Přepínání mezi panely
Chcete-li přejít z jednoho panelu do druhého, stiskněte Ctrl+B následuje O (jako v jiné ). Ohraničení podokna změní barvu podle vaší pozice a kurzor terminálu se změní do aktivního stavu. Tato metoda "prochází" panely v pořadí vytvoření.
Případně můžete pomocí kláves se šipkami přejít do podokna podle vašeho rozvržení. Pokud máte například dva otevřené panely rozdělené vodorovným rozdělením, můžete stisknout Ctrl+B následuje Nahoru šipkou pro přepnutí z dolního podokna do horního podokna. Podobně stiskněte Ctrl+B následuje Dolů šipka přepne z horního panelu na spodní.
Spuštění příkazu na více hostitelích pomocí tmux
Nyní, když víte, jak otevřít mnoho oken a rozdělit je do pohodlných podoken, víte téměř vše, co potřebujete vědět, abyste mohli spustit jeden příkaz na více hostitelích najednou. Za předpokladu, že máte rozvržení, se kterým jste spokojeni, a každý panel je připojen k samostatnému hostiteli, můžete panely synchronizovat tak, aby se vstup, který zadáte na klávesnici, zrcadlil ve všech panelech.
Chcete-li synchronizovat panely, otevřete příkazový řádek tmux pomocí Ctrl+B následuje : a poté zadejte setw synchronize-panes
.
Nyní se vše, co napíšete na klávesnici, zobrazí v každém panelu a každý panel podle toho reaguje.
Stáhněte si náš cheat sheet
Je poměrně snadno zapamatovatelné Ctrl+B k vyvolání funkcí tmux, ale následující klíče mohou být zpočátku obtížně zapamatovatelné. Všechny vestavěné klávesové zkratky tmux jsou dostupné stisknutím Ctrl+B následuje ? (opusťte obrazovku nápovědy pomocí Q ). Obrazovka nápovědy však může být trochu ohromující pro všechny možnosti, z nichž žádná není uspořádána podle úkolu nebo tématu. Abychom vám pomohli zapamatovat si základní funkce tmux, stejně jako mnoho pokročilých funkcí, které nejsou popsány v tomto článku, vyvinuli jsme cheatsheet tmux. Je zdarma ke stažení, takže si svou kopii pořiďte ještě dnes.