linux-labs

Вики / Базовые команды

tmux (мультиплексор терминала)

Команда tmux 3.x БазовоеПроцессы

Сессии, которые переживают разрыв 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