tmux a screen jsou terminálové multiplexery — umožňují mít více terminálů v jednom okně a přežijí SSH disconnect. Když se SSH spojení přeruší, procesy v tmux/screen session běží dál. Po opětovném připojení se jednoduše vrátíte k rozpracované práci. Pro systémové administrátory a vývojáře pracující se vzdálenými servery je to nepostradatelný nástroj.
tmux¶
tmux new -s work # nová session pojmenovaná work
tmux attach -t work # připojení k existující session
tmux ls # seznam sessions
# Ctrl+b d=detach, c=nové okno, %=vertikální split, "=horizontální split, z=zoom pane
tmux podporuje libovolný počet oken a panelů v jedné session. Panely lze přesouvat, měnit velikost a přepínat mezi nimi klávesovými zkratkami. Okna fungují jako záložky — přepínáte mezi nimi pomocí Ctrl+b číslo. Silnou stránkou tmux je skriptovatelnost — můžete automaticky vytvořit rozložení s konkrétními příkazy v každém panelu.
Konfigurace¶
# ~/.tmux.conf
set -g prefix C-a # změna prefixu z Ctrl+b na Ctrl+a
set -g mouse on # podpora myši
set -g base-index 1 # okna číslovat od 1
set -g history-limit 50000 # větší scroll buffer
set -g default-terminal "screen-256color"
bind | split-window -h # | pro vertikální split
bind - split-window -v # - pro horizontální split
screen¶
screen -S work # nová session
screen -r work # připojení
# Ctrl+a d=detach, c=okno, n/p=další/předchozí
Screen je starší alternativa, stále přítomná na většině systémů. Má jednodušší konfiguraci, ale méně funkcí než tmux. Pro základní session persistence je plně dostačující, ale pro pokročilé workflow s panely a skriptováním je tmux lepší volba.
tmux pro každý den¶
Ochrana proti SSH výpadku je jen začátek. Nastavte si tmux jako výchozí prostředí na každém serveru — 10 klávesových zkratek stačí pro výrazné zvýšení produktivity. Pro ještě lepší zážitek zkuste tmux plugin manager (tpm) s pluginy jako tmux-resurrect pro uložení a obnovení sessions.