Tmux (Terminal Multiplexer) — это современный и мощный инструмент для управления несколькими терминалами в одном окне. Его считают более гибким и функциональным аналогом утилиты Screen, которая долгие годы оставалась стандартом для работы с несколькими терминалами. В этой статье мы подробно рассмотрим, почему tmux стал популярным выбором среди пользователей, как его использовать, и приведем примеры эффективного применения.
1. Почему tmux выбирают вместо screen?
Screen был первым терминальным мультиплексором, но со временем его функциональность начала отставать от современных решений. Tmux предлагает следующие преимущества:
- Гибкость: Tmux позволяет настраивать почти все аспекты работы, включая горячие клавиши и внешний вид интерфейса.
- Поддержка мыши: В tmux можно использовать мышь для переключения между панелями, изменения их размера и выполнения других действий.
- Модульность: Tmux поддерживает плагины и расширения, делая его более адаптируемым под потребности пользователя.
- Активное развитие: Tmux активно разрабатывается, в отличие от screen, который обновляется гораздо реже.
2. Установка tmux
Если tmux еще не установлен на вашей системе, вы можете установить его с помощью пакетного менеджера.
Для Debian/Ubuntu:
sudo apt install tmux
Для CentOS/RHEL:
sudo yum install tmux
Для Arch Linux:
sudo pacman -S tmux
Для macOS (используя Homebrew):
brew install tmux
3. Запуск tmux
Чтобы начать работу с tmux, просто введите в терминале:
tmux
После этого вы попадете в новый сеанс tmux. Внизу экрана появится строка состояния (status bar), показывающая информацию о текущем сеансе, открытых окнах и панелях.
4. Основы работы с tmux
Все команды в tmux начинаются с префикса, по умолчанию это комбинация Ctrl+b. После этого нужно нажать следующую клавишу для выполнения соответствующей команды.
Создание новой панели
- Ctrl+b % — разделить окно вертикально.
- Ctrl+b » — разделить окно горизонтально.
Пример:
Нажмите Ctrl+b %, чтобы создать вертикальную панель.
Нажмите Ctrl+b «, чтобы создать горизонтальную панель.
Переключение между панелями
- Ctrl+b Стрелки — переключиться на соседнюю панель (вверх, вниз, влево, вправо).
Пример:
Создайте несколько панелей.
Используйте Ctrl+b Стрелки, чтобы перемещаться между ними.
Закрытие панели
- Ctrl+b x — закрыть текущую панель.
Пример:
Переключитесь на панель, которую хотите закрыть.
Нажмите Ctrl+b x.
Подтвердите закрытие, нажав y.
5. Работа с окнами
Окна в tmux представляют собой отдельные рабочие области, каждая из которых может содержать несколько панелей.
Создание нового окна
- Ctrl+b c — создать новое окно.
Пример:
Нажмите Ctrl+b c.
В строке состояния появится новое окно с номером и названием.
Переименование окна
- Ctrl+b , — переименовать текущее окно.
Пример:
Нажмите Ctrl+b ,.
Введите новое имя для окна, например, Logs.
Переключение между окнами
- Ctrl+b NUM — переключиться на окно с номером NUM (например, 0, 1, 2).
- Ctrl+b n — переключиться на следующее окно.
- Ctrl+b p — переключиться на предыдущее окно.
Пример:
Создайте несколько окон.
Используйте Ctrl+b 1, чтобы переключиться на первое окно.
Используйте Ctrl+b n, чтобы перейти к следующему окну.
Закрытие окна
- Ctrl+b & — закрыть текущее окно.
Пример:
Переключитесь на окно, которое хотите закрыть.
Нажмите Ctrl+b &.
Подтвердите закрытие, нажав y.
6. Сеансы tmux
Сеансы tmux позволяют сохранять вашу работу и возвращаться к ней позже.
Создание нового сеанса
tmux new -s ИМЯ
— создать новый сеанс с указанным именем.
Пример:
tmux new -s mysession
Отключение от сеанса
- Ctrl+b d — отключиться от текущего сеанса.
Пример:
Нажмите Ctrl+b d.
Вы вернетесь в основной терминал, а сеанс продолжится в фоновом режиме.
Подключение к сеансу
tmux attach -t ИМЯ
— подключиться к сеансу с указанным именем.
Пример:
tmux attach -t mysession
Просмотр списка сеансов
tmux ls
— показать список всех активных сеансов.
Пример:
tmux ls
Вывод:
mysession: 1 window (created Mon Oct 10 12:00:00 2023)
Завершение сеанса
- Внутри сеанса: закройте все окна и панели, и сеанс завершится автоматически.
- Из терминала: используйте команду
tmux kill-session -t ИМЯ
.
Пример:
tmux kill-session -t mysession
7. Продвинутые функции tmux
Копирование и вставка
- Перейдите в режим копирования: Ctrl+b [.
- Выделите текст с помощью клавиш управления.
- Нажмите Enter, чтобы скопировать текст.
- Вставьте текст: Ctrl+b ].
Режим мыши
Чтобы включить поддержку мыши (переключение панелей, изменение размеров), добавьте в файл конфигурации ~/.tmux.conf
строку:
set -g mouse on
Затем перезагрузите конфигурацию: Ctrl+b :, введите source-file ~/.tmux.conf
.
Автозапуск tmux
Чтобы tmux автоматически запускался при открытии терминала, добавьте в ваш .bashrc
или .zshrc
:
if command -v tmux &> /dev/null && [ -z "$TMUX" ]; then
tmux attach -t default || tmux new -s default
fi
8. Пример использования tmux
Сценарий: Мониторинг и разработка
- Создайте новый сеанс:
tmux new -s work
- Создайте несколько окон:
- Ctrl+b c — первое окно для редактирования кода.
- Ctrl+b c — второе окно для мониторинга логов.
- Ctrl+b c — третье окно для выполнения команд.
- Разделите окно на панели:
- В окне для мониторинга нажмите Ctrl+b %, чтобы разделить его вертикально.
- В одной панели запустите
tail -f /var/log/syslog
, в другой —htop
.
- Отключитесь от сеанса:Нажмите Ctrl+b d.
- Подключитесь к сеансу позже:
tmux attach -t work
Заключение
Tmux — это современный и мощный инструмент для работы с несколькими терминалами в одном окне. Он предлагает больше возможностей, чем screen, и активно развивается. Освоив tmux, вы сможете эффективно организовывать многозадачность, сохранять сеансы и автоматизировать задачи. Удачи в использовании tmux!