tmux против экрана

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

210 голосов | спросил Alison R. 6 Jpm1000000pmThu, 06 Jan 2011 18:20:23 +030011 2011, 18:20:23

9 ответов


139

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

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

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

ответил qmega 17 Jpm1000000pmMon, 17 Jan 2011 23:36:07 +030011 2011, 23:36:07
83

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

tmux

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

Экран GNU

  • Pros
    • Чрезвычайно стабильный (v1.0 был в 1987 году)
    • Некоторые проблемы с терминалами, исправленные с помощью TERM = screen
    • Связи Emacs-ish, встроенные в
    • Легко перемещать и управлять горизонтальными панелями
    • При мультиплексировании любой подключенный терминал может изменить размер панели
  • Cons
    • Нет вертикальных разрезов без патча (кроме Ubuntu)
    • Разделение панели теряется при отсоединении
    • Получение Unicode для работы требует немного тонкости и определения.
    • Сумасшедшая конфигурация строки состояния
ответил a paid nerd 4 Maypm11 2011, 22:28:02
9

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

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

ответил Justin 10 PMpFri, 10 Apr 2015 21:05:27 +030005Friday 2015, 21:05:27
8

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

  1. сделать разделение вертикальной панели
  2. , которые мы используем для удаленного и локального спаривания.
ответил Justin 10 PMpFri, 10 Apr 2015 21:05:27 +030005Friday 2015, 21:05:27
6

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

ответил William Pursell 19 PMpThu, 19 Apr 2012 21:30:12 +040030Thursday 2012, 21:30:12
4

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

  

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

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

ответил Matthew Rankin 17 Jpm1000000pmSun, 17 Jan 2016 19:10:36 +030016 2016, 19:10:36
1

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

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

ответил TafT 21 J0000006Europe/Moscow 2012, 19:27:36
0

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

ответил ninrod 16 SatEurope/Moscow2017-12-16T01:15:08+03:00Europe/Moscow12bEurope/MoscowSat, 16 Dec 2017 01:15:08 +0300 2017, 01:15:08
-3

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

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

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

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

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

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

ответил Special Monkey 11 Jam1000000amWed, 11 Jan 2017 02:20:51 +030017 2017, 02:20:51

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132