Как установить и использовать tmux на Ubuntu: Полное руководство 2025

LightNode
By LightNode ·

Введение

tmux (Terminal Multiplexer) — это мощный инструмент командной строки, который улучшает ваш терминальный опыт на Ubuntu и других системах, похожих на Unix. Он позволяет создавать несколько терминальных сессий в одном окне, что делает его незаменимым инструментом для разработчиков, системных администраторов и опытных пользователей.

Что такое tmux?

tmux — это мультиплексор терминала, который позволяет вам:

  • Создавать несколько терминальных сессий в одном окне
  • Держать программы запущенными даже после отключения от SSH
  • Разделять ваше терминальное окно на несколько панелей
  • Легко переключаться между различными терминальными сессиями
  • Делить терминальные сессии с другими пользователями

Преимущества использования tmux

При работе на серверах Ubuntu или локальных машинах tmux предлагает несколько убедительных преимуществ:

  1. Постоянные сессии: Ваша работа продолжает выполняться, даже если ваше SSH-соединение разрывается или вы случайно закрываете терминал. Просто повторно подключитесь к вашей сессии, и все будет именно так, как вы оставили.

  2. Увеличение производительности: Работайте с несколькими терминальными окнами одновременно, не загромождая рабочий стол. Вы можете легко переключаться между различными задачами, сохраняя четкий обзор своей работы.

  3. Улучшенное сотрудничество: Делитесь своими терминальными сессиями с членами команды, что делает это идеальным для парного программирования или совместного устранения неполадок.

Системные требования

Перед установкой tmux на Ubuntu убедитесь, что ваша система соответствует этим минимальным требованиям:

  • Ubuntu 18.04 LTS или новее
  • Базовые знания терминала
  • Достаточные системные привилегии (доступ sudo) для установки
  • Не менее 50 МБ свободного дискового пространства

Методы установки

Существует два основных метода установки tmux на Ubuntu: с использованием менеджера пакетов apt или сборки из исходников. Давайте подробно рассмотрим оба варианта.

Использование менеджера пакетов apt

Самый простой и рекомендуемый способ установки tmux — через менеджер пакетов Ubuntu, apt. Вот как это сделать:

# Обновите список пакетов
sudo apt update

# Установите tmux
sudo apt install tmux -y

# Проверьте установку
tmux -V

Этот метод автоматически обрабатывает зависимости и предоставляет стабильную версию tmux, протестированную с вашей версией Ubuntu.

Сборка из исходников

Для пользователей, которым нужны последние функции или конкретные версии, сборка из исходников является вариантом:

# Установите необходимые зависимости
sudo apt install git automake build-essential libevent-dev ncurses-dev

# Клонируйте исходный код
git clone https://github.com/tmux/tmux.git
cd tmux

# Соберите и установите
sh autogen.sh
./configure
make
sudo make install

Сравнение версий

Давайте сравним различные методы установки:

  1. Установка APT:

    • Плюсы: Легко установить и обновить, стабильная версия, автоматическое управление зависимостями
    • Минусы: Может не быть последней версии
    • Текущая версия в репозиториях Ubuntu: Обычно на 1-2 версии старше последней
  2. Установка из исходников:

    • Плюсы: Доступ к последним функциям, возможность настроить компиляцию
    • Минусы: Требует ручного управления зависимостями, более сложный процесс установки
    • Последняя доступная версия: Всегда актуальна с официальным репозиторием

После установки вы можете проверить вашу версию tmux, выполнив:

tmux -V

Основная конфигурация

Поведение tmux можно настроить через его конфигурационный файл и различные параметры. Давайте рассмотрим, как настроить и настроить tmux в соответствии с вашими потребностями.

Местоположение конфигурационного файла

tmux ищет свой конфигурационный файл в вашем домашнем каталоге:

# Создайте ваш конфигурационный файл tmux
touch ~/.tmux.conf

# Откройте его в вашем любимом текстовом редакторе
nano ~/.tmux.conf

Основные настройки

Вот некоторые часто используемые настройки, чтобы улучшить ваш опыт работы с tmux:

# Измените клавишу префикса на Ctrl+a (более удобно, чем по умолчанию Ctrl+b)
set -g prefix C-a
unbind C-b
bind C-a send-prefix

# Включите поддержку мыши
set -g mouse on

# Начинайте нумерацию окон с 1 (вместо 0)
set -g base-index 1

# Установите более удобные клавиши для разделения окон
bind-key v split-window -h
bind-key h split-window -v

# Установите более удобные клавиши для перемещения окон
bind -n M-Left select-pane -L
bind -n M-Right select-pane -R
bind -n M-Up select-pane -U
bind -n M-Down select-pane -D

# Улучшите цвета
set -g default-terminal "screen-256color"

# Установите размер буфера прокрутки
set -g history-limit 10000

Настройка привязок клавиш

Вы можете настроить привязки клавиш, чтобы сделать tmux более интуитивным и эффективным для вашего рабочего процесса:

  1. Синтаксис базовой привязки клавиш:

    bind-key key command
    bind key command
    
  2. Общие пользовательские привязки:

    # Перезагрузите конфигурационный файл
    bind r source-file ~/.tmux.conf \; display "Конфигурация перезагружена!"
    
    # Быстрый цикл по панелям
    unbind ^A
    bind ^A select-pane -t :.+
    
    # Более интуитивные команды разделения
    bind | split-window -h
    bind - split-window -v
    

После внесения изменений в ваш конфигурационный файл вы можете либо:

  • Перезапустить tmux, чтобы изменения вступили в силу
  • Или перезагрузить конфигурацию, пока tmux работает, нажав prefix + r (если вы добавили привязку перезагрузки выше)

Начало работы с tmux

После установки и базовой конфигурации давайте научимся эффективно использовать tmux. Этот раздел охватывает основные команды и операции, которые вам понадобятся для повседневного использования.

Запуск вашей первой сессии

Вот основные команды для запуска и управления сессиями tmux:

# Запустите новую сессию
tmux

# Запустите новую именованную сессию
tmux new -s mysession

# Список всех сессий
tmux ls

# Присоединиться к существующей сессии
tmux attach -t mysession

# Отключиться от текущей сессии (внутри tmux)
# Нажмите клавишу префикса (Ctrl+b или Ctrl+a), затем d

Основные команды и сочетания клавиш

Все команды tmux начинаются с клавиши префикса (по умолчанию: Ctrl+b). Вот основные сочетания клавиш:

# Управление сессиями
prefix + d    # Отключиться от сессии
prefix + s    # Список сессий
prefix + $    # Переименовать текущую сессию

# Управление окнами
prefix + c    # Создать новое окно
prefix + n    # Перейти к следующему окну
prefix + p    # Перейти к предыдущему окну
prefix + ,    # Переименовать текущее окно
prefix + w    # Список окон

# Операции с панелями
prefix + %    # Разделить панель вертикально
prefix + "    # Разделить панель горизонтально
prefix + o    # Переключиться на следующую панель
prefix + x    # Закрыть текущую панель

Управление сессиями

Сессии — это самый высокий уровень организации в tmux. Вот как эффективно управлять ими:

  1. Создание сессий:

    # Создайте новую сессию с конкретным именем
    tmux new -s development
    
    # Создайте новую сессию с конкретным рабочим каталогом
    tmux new -s project -c ~/projects/myproject
    
  2. Управление несколькими сессиями:

    # Переключение между сессиями
    tmux switch -t session_name
    
    # Убить конкретную сессию
    tmux kill-session -t session_name
    
    # Убить все сессии, кроме текущей
    tmux kill-session -a
    
  3. Навигация по сессиям:

    • Используйте prefix + ( для перехода к предыдущей сессии
    • Используйте prefix + ) для перехода к следующей сессии
    • Используйте prefix + s для отображения списка сессий и выбора интерактивно

Расширенные функции

tmux предоставляет мощные функции для опытных пользователей, которые могут значительно повысить производительность. Давайте рассмотрим некоторые из этих расширенных возможностей.

Управление окнами

Окна в tmux функционируют аналогично вкладкам в современном терминале. Вот некоторые расширенные операции с окнами:

# Расширенные команды для окон
prefix + .    # Переместить окно на другую позицию
prefix + f    # Найти окно по имени
prefix + &    # Убить окно
prefix + 0-9  # Переключиться на окно по номеру

# Поменять местами позиции окон
swap-window -s 2 -t 1  # Поменять местами окна 2 и 1
swap-window -t -1      # Переместить текущее окно влево

Операции с панелями

Панели позволяют вам разделить ваше окно на несколько секций. Вот некоторые продвинутые техники управления панелями:

  1. Изменение размера панелей:

    # Используя префикс, затем:
    Alt + Стрелки    # Изменить размер панели в направлении стрелки
    
    # Или удерживайте префикс и нажмите:
    Ctrl + Стрелки   # Изменить размер панели большими шагами
    
  2. Расширенная навигация по панелям:

    prefix + {    # Переместить текущую панель влево
    prefix + }    # Переместить текущую панель вправо
    prefix + z    # Переключить зум панели (максимизировать/восстановить)
    prefix + !    # Преобразовать панель в окно
    
  3. Синхронизация панелей:

    # Переключить синхронизацию панелей (отправить команды во все панели)
    :setw synchronize-panes
    

Режим копирования и прокрутка

Режим копирования позволяет вам прокручивать, искать и копировать текст:

  1. Вход и навигация в режиме копирования:

    prefix + [           # Войти в режим копирования
    q                    # Выйти из режима копирования
    Space               # Начать выделение
    Enter               # Скопировать выделение
    
    # Навигация в режиме копирования:
    Стрелки            # Перемещение курсора
    Page Up/Down        # Прокрутка страницы вверх/вниз
    g                   # Перейти к началу
    G                   # Перейти к концу
    /                   # Поиск вперед
    ?                   # Поиск назад
    n                   # Следующее совпадение поиска
    N                   # Предыдущее совпадение поиска
    
  2. Расширенные операции копирования:

    # Включите режим vi для улучшения операций копирования
    set-window-option -g mode-keys vi
    
    # Пользовательские привязки клавиш для режима копирования
    bind-key -T copy-mode-vi v send-keys -X begin-selection
    bind-key -T copy-mode-vi y send-keys -X copy-selection
    
  3. Интеграция с системным буфером обмена:

    # На Ubuntu сначала установите xclip:
    sudo apt install xclip
    
    # Добавьте в .tmux.conf:
    bind-key -T copy-mode-vi y send-keys -X copy-pipe-and-cancel "xclip -sel clip -i"
    

Эти расширенные функции можно комбинировать для создания мощных рабочих процессов. Например, вы можете:

  • Настроить несколько панелей для мониторинга различных служб
  • Использовать синхронизированные панели для выполнения команд на нескольких серверах одновременно
  • Создать сложные макеты окон для различных задач разработки
  • Настроить автоматическое резервное копирование сессий tmux

Лучшие практики

Применение хороших практик с tmux может значительно улучшить ваш рабочий процесс и производительность. Давайте рассмотрим некоторые рекомендуемые подходы и советы.

Общие рабочие процессы

  1. Настройка среды разработки:

    # Создайте новую сессию для разработки
    tmux new -s dev
    
    # Общая настройка разработки
    # Разделите окно для редактирования и терминала
    tmux split-window -v -p 30  # 70% редактор, 30% терминал
    
    # Дополнительное разделение для запуска тестов/серверов
    tmux split-window -h        # Разделите терминальную панель горизонтально
    
  2. Настройка мониторинга сервера:

    # Создайте сессию мониторинга
    tmux new -s monitoring
    
    # Разделите для различных задач мониторинга
    tmux split-window -h    # Разделите для системных статистик
    tmux split-window -v    # Разделите для логов
    
    # Запустите команды мониторинга
    # Первая панель: htop
    # Вторая панель: tail -f /var/log/syslog
    # Третья панель: мониторинг сети
    

Советы по производительности

  1. Организация сессий:

    • Используйте описательные имена сессий (например, client1, backend, docs)
    • Держите связанные задачи в одной сессии, но в разных окнах
    • Используйте последовательные соглашения об именах окон
    • Регулярная очистка сессий для лучшего управления
  2. Оптимизация производительности:

    # Добавьте в .tmux.conf
    # Уменьшите задержку нажатия клавиш
    set -sg escape-time 0
    
    # Увеличьте отзывчивость
    set -g status-interval 1
    
    # Ограничьте историю сессий, чтобы избежать проблем с памятью
    set -g history-limit 50000
    
  3. Автоматизированные скрипты настройки:

    #!/bin/bash
    # Сохраните как dev-setup.sh
    
    # Создайте новую сессию в отсоединенном состоянии
    tmux new-session -d -s development
    
    # Настройте окна и панели
    tmux rename-window -t development:1 'editor'
    tmux send-keys -t development:1 'vim' C-m
    
    tmux new-window -t development:2 -n 'server'
    tmux send-keys -t development:2 'npm run dev' C-m
    
    # Присоединиться к сессии
    tmux attach -t development
    

Интеграция с другими инструментами

  1. Интеграция с системами контроля версий:

    • Создайте выделенные окна для операций git
    • Используйте синхронизацию панелей для управления несколькими репозиториями
    • Настройте автоматическую проверку статуса
  2. Лучшие практики для терминальных мультиплексоров:

    # Добавьте в .bashrc или .zshrc
    # Автоматически присоединяйтесь к сессии tmux при SSH
    if [[ -z "$TMUX" ]] && [ "$SSH_CONNECTION" != "" ]; then
        tmux attach-session -t ssh_tmux || tmux new-session -s ssh_tmux
    fi
    
  3. Удаленная разработка:

    • Используйте вложенные сессии tmux для локальной/удаленной работы
    • Настройте разные цвета статусной строки для локальных/удаленных сессий
    • Настройте разные клавиши префикса для вложенных сессий
# Для вложенных сессий (.tmux.conf)
bind-key -n C-a send-prefix    # Для внутренней сессии
set -g status-bg colour40      # Зеленый для локального
set -g status-bg colour160     # Красный для удаленного
Установка Tmux на Ubuntu

Часто задаваемые вопросы (FAQ)

Вопрос 1: Как выйти из tmux?

# Метод 1: Полностью выйти из tmux
exit                  # Введите в окне tmux
# или
prefix + d           # Отключиться от текущей сессии, оставив ее запущенной

# Метод 2: Принудительно закрыть все сессии
tmux kill-server

Вопрос 2: Почему не работает прокрутка мышью?

В новых версиях tmux вам нужно включить поддержку мыши в вашем конфигурационном файле:

# Добавьте в ~/.tmux.conf
set -g mouse on

Вопрос 3: Как скопировать текст в tmux?

  1. Используя мышь (если поддержка мыши включена):

    • Просто выделите текст
    • Используйте сочетания клавиш системного буфера обмена
  2. Используя клавиатуру:

    prefix + [        # Войти в режим копирования
    Space            # Начать выделение
    Enter           # Скопировать выделение
    prefix + ]      # Вставить
    

Вопрос 4: Как восстановить потерянную сессию tmux?

# Список всех сессий
tmux ls

# Присоединиться к последней сессии
tmux attach

# Присоединиться к конкретной сессии
tmux attach -t session_name

Вопрос 5: Как я могу изменить размер панелей в tmux?

# Используйте клавиши префикса + стрелки для изменения размера панелей
prefix + Up    # Увеличить текущую панель вверх
prefix + Down  # Увеличить текущую панель вниз
prefix + Left  # Увеличить текущую панель влево
prefix + Right # Увеличить текущую панель вправо

Вопрос 6: Как применить изменения конфигурации?

# Метод 1: Перезагрузить внутри tmux
prefix + :
source-file ~/.tmux.conf

# Метод 2: Перезагрузить из терминала
tmux source-file ~/.tmux.conf

Вопрос 7: Как синхронизировать ввод между панелями?

# В командном режиме tmux
:setw synchronize-panes on

# Выключить синхронизацию
:setw synchronize-panes off

Вопрос 8: Почему мои цвета отображаются неправильно?

Добавьте эти строки в ваш ~/.tmux.conf:

# Включите поддержку 256 цветов
set -g default-terminal "screen-256color"

# Включите поддержку истинных цветов
set-option -sa terminal-overrides ",xterm*:Tc"

Вопрос 9: Как сохранить и восстановить сессии tmux?

Вы можете использовать плагин tmux-resurrect:

# Установите менеджер плагинов tmux
git clone https://github.com/tmux-plugins/tpm ~/.tmux/plugins/tpm

# Добавьте в .tmux.conf:
set -g @plugin 'tmux-plugins/tmux-resurrect'

# Сохранить сессии
prefix + Ctrl-s

# Восстановить сессии
prefix + Ctrl-r

Вопрос 10: Как изменить внешний вид статусной строки?

# Добавьте в ~/.tmux.conf
# Измените фон статусной строки
set -g status-bg black

# Измените цвет текста статусной строки
set -g status-fg white

# Измените стиль текущего окна
set-window-option -g window-status-current-style bg=red,fg=white,bold

Вопрос 11: Как обрабатывать вложенные сессии tmux?

# Добавьте в .tmux.conf, чтобы использовать другой префикс для вложенных сессий
bind-key -n C-a send-prefix    # Для внутренней сессии
set -g status-bg blue          # Другой цвет для вложенной сессии

Вопрос 12: Мои функциональные клавиши не работают в tmux?

# Добавьте в ~/.tmux.conf
set-option -g xterm-keys on
set-window-option -g xterm-keys on