====== tmux: мультисессии в терминале ====== ===== Назначение ===== **tmux** (terminal multiplexer) позволяет запускать несколько терминальных сессий в одном окне. Он полезен для: * удалённой работы — процессы продолжают работать после отключения SSH * управления множеством задач в одном терминале * переключения между окнами/панелями без открытия новых вкладок ===== Установка (Raspberry Pi / Linux) ===== sudo apt update sudo apt install tmux ===== Настройка tmux ===== Добавить в ''~/.tmux.conf'' для сохранения истории и изменения цвета строки состояния: # Увеличенная история вывода set-option -g history-limit 100000 # Отключение режима очистки экрана set -g terminal-overrides '*:smcup@:rmcup@' # Цвет и стиль строки статуса set -g status-style "bg=colour81,fg=magenta,bold,reverse" # Левая часть — имя сессии set -g status-left '#[bold]#S ' # Правая часть — дата и время set -g status-right '#[bold] %Y-%m-%d %H:%M ' # Поддержка мыши set -g mouse on # Поддержка 256-цветов и корректной работы с fzf/micro set -g default-terminal "screen-256color" **Пример цветов** # Примеры цветов (можно менять colourXXX в status-style): # Красный: colour160 или colour203 # Ярко-синий: colour45 # Ярко-зелёный: colour46 # Тёмный серый: colour240 # Жёлтый: colour226 # Светло-синий: colour81 # Пурпурный: colour129 # Оранжевый: colour208 # Чёрный colour0 # Тёмно-серый colour8 # Красный colour1 # Ярко-красный colour9 # Зелёный colour2 # Ярко-зелёный colour10 # Жёлтый colour3 # Ярко-жёлтый colour11 # Синий colour4 # Ярко-синий colour12 # Пурпурный colour5 # Розовый colour13 # Голубой colour6 # Ярко-голубой colour14 # Белый colour7 # Ярко-белый colour15 # Orange colour208 # DarkOrange colour202 # LightOrange colour214 # # bold Жирный текст # underscore Подчёркнутый текст # italics Курсив (не везде работает) # blink Мигающий текст (редко) # reverse Инверсия fg и bg # fg=цвет Цвет шрифта # bg=цвет Цвет фона **Пример стилей** #[bold,fg=white,bg=colour208] текст set -g status-left '#[bold,fg=white,bg=colour208]#S ' set -g status-right '#[fg=colour15,bg=colour202] %Y-%m-%d %H:%M ' **Перечень стилей** bold Жирный текст underscore Подчёркнутый текст italics Курсив (не везде работает) blink Мигающий текст (редко) reverse Инверсия fg и bg fg=цвет Цвет шрифта bg=цвет Цвет фона **Применить настройки без перезапуска tmux** tmux source-file ~/.tmux.conf ===== Прописать запуск tmux в bash (авто-возврат в сессию) ===== Добавить в конец ''~/.bashrc'': # Автоподключение к tmux if command -v tmux &> /dev/null && [ -z "$TMUX" ]; then tmux attach || tmux new -s default fi ===== Настройка профиля в Windows Terminal ===== { "colorScheme": "Campbell", "commandline": "ssh <ПОЛЬЗОВАТЕЛЬ>@10.0.0.1 -t \"tmux new-session -A -s ssh\"", "guid": "{11111111-2222-3333-4444-000000000001}", "hidden": false, "icon": "<ПУТЬ_К_ФАЙЛУ>.png", "name": "Raspberry Pi (WireGuard)", "startingDirectory": "%USERPROFILE%", "tabColor": "#FF5555" }, ===== `.bat` файл для быстрого запуска из Windows ===== @echo off start wt -w 0 nt -p "Raspberry Pi (ssh)" ===== Основные команды tmux ===== **Вход / выход:** * ''tmux'' — создать новую сессию * ''tmux attach'' — подключиться к существующей * ''tmux ls'' — список сессий * ''tmux attach -t ИМЯ'' — подключиться по имени * ''tmux new -s ИМЯ'' — создать сессию с именем * ''tmux kill-session -t имя'' — завершить сессию **Управление сессией (после Ctrl+B):** * ''d'' — отсоединиться (detach) * ''%'' — разделить вертикально * ''"'' — разделить горизонтально * стрелки + Ctrl+B — перемещение по панелям * ''x'' — закрыть панель * ''c'' — создать новое окно * ''n'' / ''p'' — следующее/предыдущее окно **Выход:** * ''exit'' — выйти из панели (если последняя — закроется сессия) ===== Пример использования ===== 1. Подключение по SSH к Raspberry Pi\\ 2. Автоматически открывается или подключается ''tmux''\\ 3. Открыты 2 панели: * верхняя — ''htop'' * нижняя — ''btop'' 4. Закрытие окна терминала — процессы не завершаются\\ 5. Возврат: ''ssh @10.0.0.1'' → tmux attach\\ ===== Сохранение истории после отсоединения ===== Чтобы tmux сохранял scrollback (историю терминала), добавь в ''~/.tmux.conf'': set-option -g history-limit 100000 set -g terminal-overrides '*:smcup@:rmcup@' ===== Пример: ===== tmux new -s rasp # Работай внутри сессии # Закрой окно — сессия продолжит работать # Подключись снова: tmux attach -t rasp ===== Замечания ===== * ''tmux'' не сохраняет историю после перезагрузки сессии, если не использовать scrollback-файлы * удобно сочетать с fzf и launcher_fzf для запуска скриптов * конфигурация: ''~/.tmux.conf'' * Можно использовать совместно с fzf, micro, mc и др. * ''exit'' внутри tmux завершает сессию * Закрытие терминала без выхода — безопасно, процессы не прерываются Если нужно — можно добавить шаблон ''~/.tmux.conf'' и кастомные keybindings.