Содержание

tmux: мультисессии в терминале

Назначение

tmux (terminal multiplexer) позволяет запускать несколько терминальных сессий в одном окне. Он полезен для:

Установка (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

Вход / выход:

Управление сессией (после Ctrl+B):

Выход:

Пример использования

1. Подключение по SSH к Raspberry Pi
2. Автоматически открывается или подключается tmux
3. Открыты 2 панели:

4. Закрытие окна терминала — процессы не завершаются
5. Возврат: ssh <LOGIN>@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.conf и кастомные keybindings.