Вики / Базовые команды
tmux (мультиплексор терминала)
Сессии, которые переживают разрыв SSH; окна и панели.
tmux держит сессию терминала на сервере: можно отключиться и вернуться, а
долгие задачи переживут разрыв SSH. Плюс окна и панели в одном
терминале.
tmux # новая сессия
tmux new -s work # именованная сессия
tmux ls # список сессий
tmux attach -t work # подключиться (a -t work — кратко)
tmux kill-session -t work # убить сессию
Все горячие клавиши идут через префикс Ctrl+b, затем клавишу.
Ctrl+b d отключиться (detach) — сессия продолжит работать
Ctrl+b c новое окно Ctrl+b n / p следующее/предыдущее окно
Ctrl+b , переименовать окно Ctrl+b 0..9 к окну по номеру
Ctrl+b w список окон/сессий (выбрать)
Ctrl+b " разделить по горизонтали (панель)
Ctrl+b % разделить по вертикали
Ctrl+b стрелки перемещение между панелями
Ctrl+b z развернуть/свернуть текущую панель (zoom)
Ctrl+b x закрыть панель
Ctrl+b [ режим прокрутки/копирования (q — выход)
Ctrl+b ? список всех биндингов
Ctrl+b [ войти в copy-mode → стрелки/PgUp листать; q выход
(в copy-mode: Space начать выделение, Enter скопировать)
Ctrl+b ] вставить скопированное
~/.tmux.conf (частые настройки):
set -g mouse on # мышь: выделение, ресайз панелей, скролл
set -g history-limit 10000 # длина прокрутки
setw -g mode-keys vi # vi-навигация в copy-mode
Из скрипта: tmux new -d -s job 'long-cmd' (запустить в фоне), tmux send-keys -t job 'cmd' Enter.
Не могу выйти / всё «перехватывается»
Это префикс Ctrl+b. Просто отключиться — Ctrl+b затем d. Закрыть оболочку в
панели — exit.
sessions should be nested with care
Запустил tmux внутри tmux. Отключись из внутренней (Ctrl+b d) или не вкладывай
(внутри другой префикс — Ctrl+b Ctrl+b).
После ребута сессии пропали
tmux держит сессии в памяти — перезагрузка их убивает. Для устойчивых служб — systemd, а не tmux.
Скролл мышью не работает
Включи set -g mouse on в ~/.tmux.conf и tmux source ~/.tmux.conf (или новая сессия).
tmux new -s name ; tmux attach -t name ; tmux ls ; tmux kill-session -t name
Ctrl+b d # отключиться (работает дальше)
Ctrl+b c / n / p # окно: новое / след / пред
Ctrl+b " / % / z # разделить гориз / верт / zoom
Ctrl+b [ # прокрутка (q выход)
# ~/.tmux.conf: set -g mouse on
См. также
- SSH-клиент (ssh, scp, туннели) — Сеть
- Фоновые задачи (&, jobs, nohup) — Процессы