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

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


niceos:tmux

Различия

Показаны различия между двумя версиями страницы.

Ссылка на это сравнение

Предыдущая версия справа и слеваПредыдущая версия
niceos:tmux [2025/03/27 00:17] – удалено - внешнее изменение (Дата неизвестна) 127.0.0.1niceos:tmux [2025/03/27 00:17] (текущий) – ↷ Страница перемещена из projects:tmux в niceos:tmux
Строка 1: Строка 1:
 +====== tmux: мультисессии в терминале ======
 +
 +===== Назначение =====
 +**tmux** (terminal multiplexer) позволяет запускать несколько терминальных сессий в одном окне. Он полезен для:
 +  * удалённой работы — процессы продолжают работать после отключения SSH
 +  * управления множеством задач в одном терминале
 +  * переключения между окнами/панелями без открытия новых вкладок
 +
 +===== Установка (Raspberry Pi / Linux) =====
 +<code bash>
 +sudo apt update
 +sudo apt install tmux
 +</code>
 +
 +
 +===== Настройка tmux =====
 +Добавить в ''~/.tmux.conf'' для сохранения истории и изменения цвета строки состояния:
 +<code bash>
 +# Увеличенная история вывода
 +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"
 +
 +</code>
 +
 +**Пример цветов**
 +
 +<code>
 +# Примеры цветов (можно менять 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=цвет          Цвет фона
 +
 +</code>
 +
 +**Пример стилей**
 +
 +<code>
 +#[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 '
 +</code>
 +
 +**Перечень стилей**
 +<code bash>
 +bold Жирный текст
 +underscore Подчёркнутый текст
 +italics Курсив (не везде работает)
 +blink Мигающий текст (редко)
 +reverse Инверсия fg и bg
 +fg=цвет Цвет шрифта
 +bg=цвет Цвет фона
 +</code>
 +
 +**Применить настройки без перезапуска tmux**
 +<code bash>
 +tmux source-file ~/.tmux.conf
 +</code>
 +
 +===== Прописать запуск tmux в bash (авто-возврат в сессию) =====
 +Добавить в конец ''~/.bashrc'':
 +<code bash>
 +# Автоподключение к tmux
 +if command -v tmux &> /dev/null && [ -z "$TMUX" ]; then
 +  tmux attach || tmux new -s default
 +fi
 +</code>
 +
 +===== Настройка профиля в Windows Terminal =====
 +<code json>
 +            {
 +                "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"
 +            },
 +</code>
 +
 +===== `.bat` файл для быстрого запуска из Windows =====
 +<code bat>
 +@echo off
 +start wt -w 0 nt -p "Raspberry Pi (ssh)"
 +</code>
 +
 +===== Основные команды 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'':
 +<code bash>
 +set-option -g history-limit 100000
 +set -g terminal-overrides '*:smcup@:rmcup@'
 +</code>
 +===== Пример: =====
 +<code bash>
 +tmux new -s rasp
 +# Работай внутри сессии
 +# Закрой окно — сессия продолжит работать
 +# Подключись снова:
 +tmux attach -t rasp
 +</code>
 +
 +
 +
 +===== Замечания =====
 +  * ''tmux'' не сохраняет историю после перезагрузки сессии, если не использовать scrollback-файлы
 +  * удобно сочетать с fzf и launcher_fzf для запуска скриптов
 +  * конфигурация: ''~/.tmux.conf''
 +  * Можно использовать совместно с fzf, micro, mc и др.
 +  * ''exit'' внутри tmux завершает сессию
 +  * Закрытие терминала без выхода — безопасно, процессы не прерываются
 +
 +Если нужно — можно добавить шаблон ''~/.tmux.conf'' и кастомные keybindings.
 +
  

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