14. Терминальный мультиплексор#

Введение#

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

Утилита позволяет разбить терминальное окно на вложенные окна, называемые панелями. Каждая панель выглядит как самостоятельный терминал и имеет свою историю команд.

../_images/tmux.png

С помощью tmux можно держать открытыми одновременно текстовый редактор и интерпретатор команд. Вы можете редактировать текст программы, собирать и запускать программу, просматривать результаты работы.

Команды tmux принимает после комбинации клавиш ctrl-b.

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

Команды % и " разбивают текущую панель поплам по вертикали и горизонтали, соответственно. Панель закрывается по команде exit, после чего остальные границы остальных панели расширяются, замещая пустую область. Если закрывается последняя панель, то происходит выход из tmux в командную оболочку. Переключение между панелями происходит по командам , , , . Размер текущей панели настраивается клавишами перемещения (, , , ) при набранном ctrl-b, но еще не отпущенном ctrl.

Note

Команда Ctrl-b t показывает цифровые часы с текущим временем на активной панели.

../_images/tmux-clock.png

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

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

tmux new-session [-s session-name]
tmux detach
tmux attach-session [-d] [-t session-name]
tmux list-sessions
tmux kill-session [-t session-name]

Заключение#

Использованные источники#

  1. Getting Started · tmux/tmux Wiki · GitHub

Вопросы для самоконтроля#

  1. Разделите окно tmux на панели способом, показанным ниже на рисунке. Запустите в панелях следующие команды:

    • интерактивные часы от tmux;

    • htop;

    • vim main.c;

    • man 3 getline.

  2. Начните новую сессию tmux, подготовьте в ней рабочее пространство и подключитесь с другого терминала к этой сессии.

  3. Откройте окно с эмулятором терминала и выполните команду tty. Она выведет имя файла, с которым связан ваш терминал. Присоединитесь к сессии tmux. Выведите список клиентов tmux и попробуйте определить, который из них вы.

../_images/tmux-panels-examples.png