С чего начать Первые шаги трек · 15 ступеней
Linux Labs

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

3 мин tmux 3.x

Держит сессию терминала на сервере после разрыва SSH; сессии живут в памяти и не переживают перезагрузку сервера.

Шпаргалка

6 команд Версия для печати
  • tmux new -s name новая именованная сессия
  • tmux ls список сессий
  • tmux attach -t name подключиться к сессии
  • tmux kill-session -t name убить сессию
  • Ctrl+b d отключиться — сессия продолжает работать
  • Ctrl+b c новое окно

Обзор

tmux держит сессию терминала на сервере: можно отключиться и вернуться, а долгие задачи переживут разрыв SSH. Плюс окна и панели в одном терминале.

bash
tmux                              # новая сессия
tmux new -s work                  # именованная сессия
tmux ls                           # список сессий
tmux attach -t work               # подключиться (a -t work — кратко)
tmux kill-session -t work         # убить сессию

Все горячие клавиши идут через префикс Ctrl+b, затем клавишу.

Ключи

5
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.

Ключ Что делает Пример
-s name Дать сессии имя при создании — проще найти в списке, чем по номеру. tmux new -s work
-t name Указать целевую сессию для attach, kill-session, send-keys. tmux attach -t work
-l ls Показать список запущенных сессий. tmux ls
-d Создать сессию сразу отцепленной — для запуска задач из скриптов. tmux new -d -s job 'long-running-command'
send-keys Отправить нажатия клавиш в сессию, не подключаясь к ней (для автоматизации). tmux send-keys -t job 'cmd' Enter

Ничего не найдено. Попробуй запрос короче.

Рецепты

1

Горячие клавиши

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  ?        список всех биндингов

Неполадки

4

Не могу выйти / всё «перехватывается»

Это префикс 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 (или новая сессия).

См. также

  • ssh-client — Подключение по SSH, копирование scp/rsync, ~/.ssh/config, проброс портов.
  • background-jobs — Запуск в фоне, управление задачами оболочки, чтобы процесс пережил выход.
Загрузка…