Вопрос или проблема
Я могу добавить следующее в мой .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
, можно создать собственный скрипт для автоматизации запуска сессий:
- Создайте файл
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
-
Сделайте скрипт исполняемым:
chmod +x tmux-session.sh
-
Запускайте его вместо команды
tmux
напрямую:./tmux-session.sh
Этот подход автоматизирует создание сеанса и вложенных окон, что существенно упрощает процесс.
Заключение
И screen
, и tmux
имеют свои плюсы и минусы. Выбор между ними зависит от ваших конкретных потребностей и предпочтений. Несмотря на сложность в настройке tmux
, его мощные функции и гибкость могут оказаться более полезными в большинстве сценариев. Следуя предложенному выше методу, вы можете улучшить свою работу с tmux
, добившись удобства, аналогичного тому, что предоставляет screen
.