Открыть сервис

Tmux: терминальный мультиплексор

Tmux — это терминальный мультиплексор с открытым исходным кодом, позволяющий запускать несколько независимых сессий терминала внутри одного окна эмулятора, а также отсоединять и повторно подключать эти сессии. Программа работает на уровне текстового интерфейса, не требуя графической оболочки, и широко используется администраторами и разработчиками для удалённой работы через SSH.

История

Tmux был создан в 2007 году разработчиком Николасом Мариоттом (Nicholas Marriott) как свободная альтернатива более старому мультиплексору GNU Screen. Первая стабильная версия вышла в 2009 году. Проект развивается при поддержке сообщества OpenBSD, а его исходный код распространяется под лицензией ISC, что позволяет свободно использовать и модифицировать программу. Название происходит от сокращения «Terminal Multiplexer» (терминальный мультиплексор).

Основные возможности

Сессии, окна и панели

Tmux организует работу в виде иерархии объектов. Сессия — это изолированная среда, содержащая одно или несколько окон. Каждое окно, в свою очередь, может быть разделено на несколько панелей (panes), которые отображаются одновременно в одном терминале. Панели можно создавать горизонтально или вертикально, перемещать, изменять их размер и переключаться между ними с помощью горячих клавиш.

Отсоединение и повторное подключение

Ключевая особенность tmux — возможность отсоединить (detach) сессию от текущего терминала, оставив все запущенные в ней процессы работать в фоновом режиме. После этого пользователь может закрыть окно эмулятора или разорвать SSH-соединение, а затем вновь подключиться (attach) к той же сессии с другого устройства, увидев терминал в том же состоянии, в котором он его оставил. Это делает tmux незаменимым инструментом для работы с долгими задачами, такими как компиляция, резервное копирование или выполнение скриптов.

Буфер обмена и прокрутка

Tmux поддерживает историю прокрутки для каждого окна, доступную через режим копирования (copy-mode). В этом режиме можно перемещаться по буферу, выделять текст и копировать его в системный буфер обмена. Также поддерживается несколько буферов обмена и вставка сохранённого текста.

Управление и конфигурация

Горячие клавиши

Управление tmux осуществляется через префиксную клавишу. По умолчанию это Ctrl-b. После нажатия префикса вводится команда, например:

  • Ctrl-b c — создать новое окно;
  • Ctrl-b , — переименовать окно;
  • Ctrl-b % — разделить панель по вертикали;
  • Ctrl-b " — разделить панель по горизонтали;
  • Ctrl-b d — отсоединить сессию;
  • Ctrl-b [ — войти в режим копирования.

Файл конфигурации

Настройки tmux хранятся в файле ~/.tmux.conf. В нём можно изменить префикс, задать цветовую схему, настроить статусную строку, привязать дополнительные команды к клавишам и настроить поведение мыши. Изменения вступают в силу после перезагрузки конфигурации командой tmux source-file ~/.tmux.conf.

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

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

  • tmux new -s имя — создать новую сессию с указанным именем;
  • tmux ls — показать список активных сессий;
  • tmux attach -t имя — подключиться к существующей сессии;
  • tmux kill-session -t имя — завершить сессию.

Применение

Tmux применяется в нескольких ключевых сценариях. При удалённой работе по SSH он защищает от обрыва соединения: если связь пропадает, сессия остаётся активной на сервере, и пользователь может вернуться к ней позже. При локальной работе мультиплексор позволяет организовать рабочее пространство: например, в одной панели открыт редактор, в другой — компилятор, в третьей — системный журнал. Кроме того, tmux поддерживает совместное использование сессии несколькими пользователями через общий сокет, что применяется для парного программирования или коллективной диагностики.

Сравнение с GNU Screen

Основным конкурентом tmux является GNU Screen. Tmux отличается более современной архитектурой, поддержкой клиент-серверной модели (что позволяет просматривать одну сессию из нескольких терминалов), более гибкой системой скриптования и лучшей поддержкой цветов и Unicode. Screen, в свою очередь, считается более простым в освоении и доступен по умолчанию в большинстве дистрибутивов Linux. Обе программы выполняют сходные функции, и выбор между ними часто определяется личными предпочтениями.

Интересные факты

  • В tmux встроен скриптовый язык на основе команд, что позволяет автоматизировать создание сложных макетов окон и панелей.
  • Существует множество плагинов и менеджеров конфигурации для tmux, например TPM (Tmux Plugin Manager), расширяющих его функциональность.
  • Tmux используется в среде разработки как часть «терминального» рабочего стола, позволяя полностью отказаться от графического интерфейса.

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →