screen против tmux: всегда начинайте с нескольких “вкладок”

Вопрос или проблема

Я могу добавить следующее в мой .screenrc

screen -t foo
screen -t bar
screen -t buz

и screen открывается с 3 “вкладками”. Похоже, что для достижения того же результата с tmux я должен использовать что-то вроде

new-session -n foo
new-window -n bar
new-window -n buz

Это кажется асимметричным само по себе, но я также должен запускать tmux с помощью

$ tmux attach

В противном случае tmux делает что-то странное — он запускается, но вы не видите 3 вкладки, которые вы запросили — они где-то в фоновом режиме вместо этого.

Почему это имеет смысл? Есть ли лучший способ сделать то, что делает screen выше?

Ответ или решение

Когда речь заходит о выборе между инструментами управления терминалом, такими как screen и tmux, важно учитывать их особенности и различия в использовании. В частности, приведенный вами пример показывает, как можно создавать несколько «вкладок» при запуске через screen и tmux.

Описание проблемы

Вы указали, что с помощью .screenrc можно легко задать несколько «вкладок» (или сессий) при старте screen. С использованием следующего кода:

screen -t foo
screen -t bar
screen -t buz

screen запускается с тремя предустановленными вкладками. В tmux, напротив, необходимо создать сессии и окна отдельно, что представляется более сложным и менее интуитивным:

new-session -n foo
new-window -n bar
new-window -n buz

Кроме того, для работы с tmux необходимо сначала запустить команду:

$ tmux attach

Иначе созданные окна не будут доступны для взаимодействия, что может вызвать недоумение у новых пользователей этого инструмента.

Понимание работы tmux и screen

Причина такой асимметрии заключается в архитектурных различиях этих двух инструментов. screen изначально считается более простым средством, применяемым для поддержания многопользовательских сеансов, в то время как tmux предлагает более гибкие возможности и расширенные функциональные элементы. Например, tmux позволяет лучше управлять панелями (splitting) и окнами, а также нивелирует потребность в постоянном повторном подключении к сессиям.

Сделайте tmux более удобным

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

  1. Создайте файл tmux-session.sh:
#!/bin/bash
tmux new-session -d -s mysession -n foo
tmux new-window -t mysession:1 -n bar
tmux new-window -t mysession:2 -n buz
tmux attach-session -t mysession
  1. Сделайте скрипт исполняемым:

    chmod +x tmux-session.sh
  2. Запускайте его вместо команды tmux напрямую:

    ./tmux-session.sh

Этот подход автоматизирует создание сеанса и вложенных окон, что существенно упрощает процесс.

Заключение

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

Оцените материал
Добавить комментарий

Капча загружается...