Если SSH оборвался, а компиляция/миграция жива — это tmux (или screen). База на 15 минут 📎

Установка #

sudo apt install tmux    # Debian/Ubuntu
brew install tmux        # macOS

Сессии #

tmux new -s deploy
# …работа…
# Detach: prefix d   (по умолчанию Ctrl-b, затем d)

tmux ls
tmux attach -t deploy
tmux kill-session -t deploy

Идиома «всегда одна сессия main»:

tmux new -A -s main

Можно в ~/.bash_profile для интерактивных SSH (осторожно с non-interactive scp).

Окна и панели #

Prefix по умолчанию: Ctrl-b.

КлючДействие
cновое окно
n / pnext/prev окно
,переименовать окно
%split vertical
"split horizontal
onext pane
zzoom pane
xkill pane
ddetach
[copy-mode (скролл/копирование)

Конфиг ~/.tmux.conf #

unbind C-b
set -g prefix C-a
bind C-a send-prefix

set -g mouse on
set -g history-limit 100000
set -g base-index 1
setw -g pane-base-index 1
set -g default-terminal "tmux-256color"

bind | split-window -h -c "#{pane_current_path}"
bind - split-window -v -c "#{pane_current_path}"

# перезагрузить конфиг
bind r source-file ~/.tmux.conf \; display "reloaded"
tmux source-file ~/.tmux.conf

Copy-mode #

Prefix [ → движение как в vi/emacs → Space начало → Enter копирует в tmux buffer.
Интеграция с system clipboard зависит от ОС (pbcopy, wl-copy) — настраивается отдельно.

Плагины #

tpm + continuum — приятно, но сначала мышечная память на 10 клавиш. На серверах часто zero plugins.

tmux vs terminal multiplexer в WezTerm #

Локально WezTerm panes ок. На сервере tmux незаменим: жизнь процесса привязана к remote session, не к GUI клиента.

Итог #

new -A -s main, prefix на Ctrl-a, mouse on, history большой. Этого хватает, чтобы не бояться Wi‑Fi в поезде 🚄