Вопрос: tmux против экрана


Я собираюсь вернуться к использованию Экран GNU, но я слышал, как люди иногда упоминают tmux как лучшую альтернативу. Действительно ли это предлагает альтернативу всем функциям экран такие как мониторинг активности в разных окнах и т. д.? Каковы плюсы и минусы каждого?


211
2018-01-06 15:20


Источник


Также обсуждается на unix.stackexchange.com/questions/549/tmux-vs-gnu-screen - Lloyd Dewolf
На экране вы можете отправлять команды на присоединенный сеанс через screen -S automate_me -X stuff 'command'$(echo -ne '\015') вы не можете в tmux. Довольно полезно, если вы тестируете ISO / образ виртуального бокса и должны выполнять некоторые команды удаленно быстро. Например, у меня есть команда Vim для быстрого отладки скриптов на экране Virtualbox. В более ранних версиях tmux я обнаружил, что экран обрабатывал больше текста, проходящего быстро, тогда как tmux разбился. Также экран не требует какой-либо конфигурации для обработки UTF-8 и т. Д. Tmux. - dezza


Ответы:


Некоторые из основных причин, которые я предпочитаю tmux над screen:

  • Строка состояния намного проще в использовании. Вы можете легко настроить разные тексты / стили для текущего окна, окна с активностью и т. Д., И вы можете поместить вещи слева и справа от строки состояния, включая команды оболочки, которые можно запускать с заданным интервалом (по умолчанию 15 с).
  • Почти любая команда, которую вы можете запустить внутри tmux может запускаться из оболочки с tmux command [args], Это упрощает выполнение сценариев, а также упрощает выполнение сложных команд.
  • Гораздо более точное автоматическое переименование окна. В то время как screen устанавливает заголовок на основе первого слова команды и требует, чтобы конфигурация оболочки выполнялась даже в окне оболочки, tmux отслеживает, какие процессы фактически выполняются в каждом окне, и соответственно обновляет заголовок. Таким образом вы получаете динамическое переименование с любой оболочкой и нулевой конфигурацией. Например: предположим, что вы используете Z Shell; имя окна будет «zsh». Теперь предположим, что вы хотите отредактировать какой-либо файл конфигурации, поэтому вы вводите sudo emacs /etc/somefile, В то время как sudo запрашивает ваш пароль, имя окна будет «sudo», но как только вы это сделаете и sudo катера emacs, название будет «emacs». Когда все закончится, и вы выйдете emacs, название изменится на «zsh». Это очень полезно для отслеживания окон, и оно также может быть особенно полезно в определенных ситуациях, например, если у вас есть какой-то длительный процесс в другом окне, изредка запрашивающий ввод данных с использованием dialog; имя окна изменилось бы на «диалог», когда это произошло, поэтому вы бы знали, что вам нужно переключиться на это окно и что-то сделать.
  • Более удобная обработка сеанса (IMHO). Вы можете сделать гораздо больше с сеансами в пределах tmux сам. Вы можете легко переключаться, переименовывать и т. Д., И вы можете перемещать и обмениваться окнами между сеансами. Он также имеет другую модель, в которой каждый пользователь имеет сервер, который контролирует свои сеансы и к которым подключается клиент. Недостатком этого является то, что при сбое сервера вы теряете все; Тем не менее, у меня никогда не было сбоя сервера.
  • tmux как представляется, более активно развивается. Есть обновления довольно часто, и вы можете файл отчета об ошибке или запрос функции в соответствии с этим часто задаваемым вопросом и получить ответ в течение нескольких дней.

Это только основные вещи, которые сразу приходят на ум. Есть и другие мелочи, и я уверен, что забыл кое-что. Это определенно стоит того, чтобы дать tmux попытка, однако.


139
2018-01-17 20:36



Развитие tmux более активно, поскольку новый, Экран GNU почти 25 лет, поэтому они исправили большинство ошибок. - a paid nerd
комментарий платного ботаника - очень важная квалификация вашего последнего момента. И второй пункт, как указано, на самом деле не является разницей, поскольку он применяется и к экрану, если вы не можете быть более конкретным. - jw013
@a платный ботаник: techrepublic.com/blog/opensource/is-tmux-the-gnu-screen-killer/... - sjas
@apaidnerd это очень богатое заявление: savannah.gnu.org/bugs/... - Błażej Michalik


(сессии являются сборниками окна которые могут быть отсоединены и повторно подключены позже. Windows может содержать один или несколько стекла, Например, конфиги, проверьте Вот а также Вот.)

tmux

  • Pros
    • Может отправлять ключи на другие панели, вроде как IDE
    • Легкая привязка клавиш - с правильной конфигурацией вы будете чувствовать себя как дома с Vim или Screen
    • Встроенные в Vim-ish и Emacs-ish привязки
    • Хорошее управление макетами, очень похоже на менеджер оконной панели
    • Unicode, похоже, работает с современными терминалами
    • Некоторые проблемы с терминалом, исправленные с помощью TERM=tmux
  • Cons
    • Медленный - неуверенный почему, но нажатия клавиш кажутся лагги Больше проблем с медлительностью
    • Мультиплексирование усиливает всю ширину и высоту сеанса до самого маленького подключенного терминала
    • Несколько раз разбился на Mac OS X, потеряв весь сеанс
    • Не удалось выполнить Linux после обновления, когда я не смог подключиться к моей старой сессии
    • Иногда пропускает команды нажатия клавиш - ^ A ^ [ берет несколько попыток для режима копирования
    • Невозможно переместить панель из одного окна в другое Исправлено с join-pane команда
    • Без разворота строк (или «переплавка» или «перемотка») после изменения ширины терминала (изменение размера окна)

Экран GNU

  • Pros
    • Крайне стабильный (v1.0 был в 1987 году)
    • Некоторые проблемы с терминалом, исправленные с помощью TERM=screen
    • Emacs-ish привязки встроены
    • Простота перемещения и управления горизонтальными стеклами
    • При мультиплексировании любой подключенный терминал может изменять размер панели
  • Cons
    • Нет вертикальных разрезов без патча (кроме Ubuntu)
    • Разделение раны теряется при отсоединении
    • Получение Unicode для работы требует немного тонкости и решимости
    • Сумасшедшая конфигурация строки состояния

83
2018-05-04 18:28



Являются ли лагированные нажатия клавиш только при нажатии Esc? tmux имеет задержку, когда он ждет, чтобы увидеть, вводите ли вы последовательность xterm или просто одиночную Esc, и в сочетании с vim's она может показаться довольно лагги. Установите время эвакуации на меньшее значение, например 50. - Eevee
Это также смешно, что вы говорите ^A ^[ иногда не работает; У меня такая же проблема с экраном, но никогда tmux! И я считаю, что вы можете перемещать панели вокруг join-pane, - Eevee
Я нахожу, что на экране используется гораздо больше памяти, что может быть включено в качестве недостатка. - paradroid
Что ж, tmux отстой vim, в некоторых случаях (мое именно), ни одно решение никогда не было опубликовано нигде не работает, и даже люди, потратившие некоторое время на решение моей проблемы, не смогли. Это раздражает, когда вы не можете использовать <C-Left> а также <C-Right> в vim, - yo'
No vertical splits without patch (except on Ubuntu) Я не думаю, что это правда. Я использую экран в течение нескольких лет, и у меня никогда не возникало проблем, связанных горизонтально или вертикально на Debian и Fedora. Даже на Android с Termux он работает как шарм. - Forivin


Про за экран: он доступен в значительной степени из коробки на Linux и Solaris. Когда вам нужно переключаться между платформами, неплохо не иметь переключателя ментального контекста.

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


9
2018-04-10 18:05





То, что я получаю из tmux, я не получаю легко на экране:

  1. сделать вертикальные расколы
  2. мультиплексирование, которое мы используем для удаленного и локального сопряжения.

8
2018-04-19 17:30



не мультиплексирование с поддержкой экрана -x вариант и acladd? - poolie
Как и предыдущие сообщения, экран имеет вертикальные разбиения (требуется патч без Ubuntu, по-видимому). Кроме того, мультиплексирование работает отлично и на протяжении многих лет. - EntangledLoops
вертикальные расщепления были в магистрали screen начиная с версии 4.2, выпущенной в 2014 году. Многие дистрибутивы очень старые версии, особенно Apple. - Neal Fultz
Обе точки неверны. - Forivin


Я использую tmux в течение примерно 2 дней, поэтому мой необузданный энтузиазм к нему еще не был смягчен, ударив раздражающие варианты использования. Пройдя обычные привычки к переходу от одной программы к другой, я был поражен несколькими положительными функциями, но функция, которая заставила меня поверить, что я никогда не вернусь к экрану, - это утилита режима copy-n-paste. На экране вы не можете войти в режим копирования, прокрутить назад в буфер и перейти в другое окно. В tmux вы можете иметь несколько окон одновременно в режиме копирования, при этом буфер прокручивается обратно в разные позиции. Кроме того, существует несколько буферов копирования. И вам не нужно исправлять источник, чтобы получить движение курсора fFtT.


6
2018-01-17 16:10





Я заменил Экран GNU с tmux в каждом случае, кроме одного - когда мне нужно HyperTerminal эквивалент подключения к последовательным портам. Как отметил Аарон Топонсе в своей статье «Подключение к серийным Null-модемам с помощью экрана GNU», Часто задаваемые вопросы по tmux состояния:

экран имеет встроенную последовательную и telnet-поддержку; это раздувается и маловероятно     для добавления в tmux.

Моя типичная tmux прецедентом является создание многоуровневых и многооконных сессий разработки в сочетании с tmuxinator, Если вы хотите учиться tmux, Я рекомендую получить книгу Брайана П. Хогана, tmux: продуктивное развитие без мыши,


4
2018-06-21 15:27





Я бы сказал, что доступность экрана - это его сила, но его оконная система не так проста в обращении, как «S. Должен сказать, я использую  большую часть времени в настоящее время и, как результат, имеют множество терминальных вкладок вместо окон экрана.

@Jed Schneider: вы можете получить расколы вертикальной панели с помощью Ctrl+ а потом | (вертикальная полоса).


1
2017-12-15 22:15





Один из поддерживающих tmux, Томас Адам, также перечисленных как сопровождающий screen хотя он касается только tmux-кода, который является огромным профилем tmux по экрану.


0
2018-01-10 23:20





Кто-нибудь считает, что вы, возможно, с меньшей вероятностью потеряете экран сеанса сеанса, в зависимости от того, как вы его используете?

Я изучаю tmux в течение последних нескольких дней и очень люблю его, особенно удивительную настройку, которая может быть выполнена в ~ / .tmux.conf.

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

С tmux, по крайней мере, так, как я использую его больше всего, он и связанные с ним сеансы работают локально на моей рабочей станции.

Если моя рабочая станция теряет свое соединение, я полагаю, что tmux отключает подключения ко всем серверам, к которым я был подключен?

Я полагаю, что это может быть профи для экрана по tmux, в зависимости от того, как вы его используете?


-3



Это были вопросы или ответы? Цель обоих - screen и tmux - не использовать дескриптор файла терминала (stdin, stdout, stderr), назначенный конкретному соединению ОС, поэтому обе они могут пережить нарушение сети и продолжать работать. Если вы настраиваете внешние подключения из tmux / screen на удаленные ресурсы, и это соединение сломается, оно не связано вообще с tmux / screen, поскольку оба они не могут управлять такими вещами. Я предлагаю вам отредактировать свой ответ, если вы не хотите, чтобы его помещали, поскольку ответ должен отвечать на вопрос - Alex