Инструменты пользователя

Инструменты сайта


projects:tmux

Это старая версия документа!


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 <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 не сохраняет историю после перезагрузки сессии, если не использовать scrollback-файлы
  • удобно сочетать с fzf и launcher_fzf для запуска скриптов
  • конфигурация: ~/.tmux.conf
  • Можно использовать совместно с fzf, micro, mc и др.
  • exit внутри tmux завершает сессию
  • Закрытие терминала без выхода — безопасно, процессы не прерываются

Если нужно — можно добавить шаблон ~/.tmux.conf и кастомные keybindings.

projects/tmux.1742817859.txt.gz · Последнее изменение: 127.0.0.1

Если не указано иное, содержимое этой вики предоставляется на условиях следующей лицензии: CC Attribution 4.0 International
CC Attribution 4.0 International Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki