Table of Contents
tmux — одна из самых мощных утилит для управления терминальными сессиями, особенно на серверах.
tmux — терминальный мультиплексор: запускай несколько сессий в одном окне, разделяй экран на панели, переключайся между задачами и оставайся подключённым даже после выхода из SSH.
📝 Топ‑20 полезных флагов и приёмов tmux#
-u— форсировать UTF‑8 (актуально для нестандартных окружений).-L NAME— имя сокета (для параллельных tmux-сессий).-S PATH— указать путь сокета явно.-f FILE— использовать альтернативный конфиг.-2— принудительный режим 256 цветов.-q— тихий запуск без ошибок.-v— подробный лог запуска.new -s NAME— создать новую сессию с именем.attach -t NAME— подключиться к конкретной сессии.kill-session -t NAME— убить сессию.list-sessions— показать список сессий.list-windows— показать окна текущей сессии.list-panes— показать панели текущего окна.switch-client -t NAME— переключиться на другую сессию.rename-session -t OLD NEW— переименовать сессию.source-file ~/.tmux.conf— перезагрузить конфигурацию.display-message— показать текущее имя окна/сессии.lock-session— заблокировать сессию паролем.respawn-pane— перезапустить команду внутри панели.choose-tree— интерактивный выбор окна или сессии.
🚀 Айсберг команд tmux — от базового к гуру#
🟢 Уровень 1 — База (разогрев)#
tmux
- Запустить новую сессию
tmux new -s work
- Создать именованную сессию
tmux attach
- Подключиться к последней сессии
tmux attach -t work
- Подключиться к конкретной сессии
tmux ls
- Список всех сессий
🟡 Уровень 2 — Управление сессиями и окнами#
tmux kill-session -t work
- Удалить конкретную сессию
tmux kill-server
- Завершить все сессии
tmux rename-session -t 0 dev
- Переименовать сессию
tmux new-window
- Создать новое окно
tmux rename-window logs
- Переименовать окно
🟠 Уровень 3 — Работа с панелями#
tmux split-window -h
- Разделить окно по горизонтали
tmux split-window -v
- Разделить окно по вертикали
tmux select-pane -L
- Переключиться на левую панель
tmux select-pane -R
- Переключиться на правую панель
tmux resize-pane -D 5
- Уменьшить панель вниз на 5 строк
tmux resize-pane -U 5
- Увеличить панель вверх на 5 строк
🔵 Уровень 4 — Горячие клавиши по умолчанию#
Основной префикс: Ctrl + b
c→ создать новое окно,→ переименовать окноn/p→ следующее/предыдущее окноw→ интерактивный выбор окна%→ разделить экран по вертикали"→ разделить экран по горизонталиo→ переключиться между панелямиx→ закрыть панельz→ развернуть панель на весь экранspace→ циклически менять раскладку панелейf→ найти окно по имени:→ командная строка tmux?→ справка по клавишам
🟣 Уровень 5 — Конфигурация и кастомизация#
nano ~/.tmux.conf
- Файл конфигурации
Пример полезных настроек:
set -g mouse on # Включить мышь
setw -g mode-keys vi # VI-навигация
set -g history-limit 10000 # Глубокая история
bind r source-file ~/.tmux.conf \; display-message "Reloaded!"
bind | split-window -h # Горячая клавиша: вертикальный сплит
bind - split-window -v # Горячая клавиша: горизонтальный сплит
bind h select-pane -L # Перемещение: влево
bind l select-pane -R # Перемещение: вправо
bind j select-pane -D
bind k select-pane -U
Применение:
tmux source-file ~/.tmux.conf
🔴 Уровень 6 — Продвинутые сценарии#
tmux capture-pane -S -1000 \; save-buffer ~/logs.txt
- Сохранить последние 1000 строк вывода
tmux send-keys -t work:0 'npm start' C-m
- Отправить команду в окно 0 сессии work
tmux list-keys | grep split
- Узнать текущие бинды для разделения панелей
tmux respawn-pane -k
- Перезапустить текущую панель
tmux swap-pane -D
- Поменять панели местами вниз
tmux choose-tree
- Интерактивно выбрать окно/сессию
🟤 Уровень 7 — Гуру‑режим#
tmux new-session -d -s deploy 'npm run build'
- Фоновая сборка проекта в tmux
tmux attach -t deploy
- Подключение к фоновому процессу
tmux new-session -d -s watcher 'htop'
- Создать фоновую сессию для мониторинга
tmux pipe-pane -o 'cat > ~/session.log'
- Логировать всю активность панели
tmux display-message -p '#S:#I:#P'
- Вывести имя сессии, окна и панели
tmux list-sessions | awk '{print $1}' | xargs -n 1 tmux kill-session -t
- Убить все сессии одним вызовом
🧩 Бонус — практические сценарии#
Создать и подключиться к новой сессии:
tmux new -s dev
Восстановить прерванную SSH-сессию:
ssh user@server
tmux attach -t dev || tmux new -s dev
Мониторинг логов в одной панели и команды в другой:
tmux split-window -v
tail -f /var/log/syslog
Фоновая сборка проекта + возврат:
tmux new -d -s build 'make && make install'
tmux attach -t build
Мгновенный detach и уход:
Ctrl + b, d