Видео смотреть бесплатно

Смотреть фильмы бесплатно

Официальный сайт aksakal 24/7/365

Смотреть видео бесплатно

19.11.10 21:02 settler

Переводыtmux - убийца GNU Screen?

Оригинал
Мультиплексоры терминала всегда были большим подспорьем для Unix- и Linux администраторов. Благодаря мультиплексорам можно начинать долгосрочные задачи на удаленной машине, закрывать SSH сессию на этой машине, подключиться к машине вновь и наблюдать за выполнением задачи или проверять результат выполнения. С мультиплексором админ может запустить несколько терминальных сессиий в одном общем терминале, а это очень удобно для удаленного администрирования. Мультиплексор используется различными способами, и, иногда, он совершенно незаменим.


Без сомнений, самый известный терминальный мультиплексор — это GNU Screen. Фактически, миллионы запускают его каждый день, даже не подозревая о термине "терминальный мультиплексор" подобно тому, как пользователи Microsoft Windows не знакомы с термином "операционная система". GNU Screen используется уже довольно давно, и его название стало синонимом самой концепции терминального мультиплексора.

Но времена меняются. Сейчас существует новое приложение — tmux, и оно начинает пользоваться популярностью в мире программ с открытым исходным кодом для Unix-подобных ОС. По отзывам, это лучший мультиплексор из когда-либо созданных.

Основные проблемы GNU Screen


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

Такое положение мешает улучшению, продвижению или простому исправлению ошибок. Конечных пользователей смущает также бестолковый синтаксис конфига GNU Screen. Когда ты пользуешься программой каждый день, нетрудно изучить синтаксис конфигов и вносить нужные изменения. В случае с GNU Screen это копипаст чужого конфига из интернета, не понимая, почему и как он работает.

Вот пример конфигурации GNU Screen с сайта debian-administration.org:

1
2
3
hardstatus on
hardstatus alwayslastline
hardstatus string "%{.bW}%-w%{.rW}%n %t%{-}%+w %=%{..G} %H %{..Y} %m/%d %C%a "

Долгое время пользователи GNU Screen хотели функцию вертикального сплита. По умолчанию в GNU Screen есть горизонтальный сплит между двумя терминальными сессиями. Существует патч, добавляющий в GNU Screen вертикальный сплит, но этот патч, увы, не включен в официальный код — это еще одно подтверждение смерти проекта, если не официальной, то фактической. Ходили слухи о версии 4.1, которая должна была включить в себя необходимый функционал, именно ее планировали "скоро" выпустить. Однако планировали еще в 2007 году, а GNU Screen 4.1 так и не появился. Последняя версия (4.0.3) вышла в 2005г.

GNU Screen выпускается под лицензией GPL, то есть это приложение с открытым исходных кодом. Условия лицензии довольно суровы, так как GPL — это лицензия копилефт. Среди прочего, это означает, что проект OpenBSD не станет даже рассматривать включение такого приложения в систему. Конечно, есть и другие причины — например, отвратительное состояние кодовой базы GNU Screen.

tmux vs. GNU Screen


В FAQ tmux перечисляются различные преимущества этого приложения:

1. четкая модель "клиент-сервер": каждое окно — это самостоятельная единица. Его можно одновременно прикрепить к нескольким сессиям и следить за ним с нескольких клиентов (терминалов), а также можно свободно перемещать между сессиями одного и того же сервера tmux.

2. Логичный, хорошо документированный командный интерфейс с одним и тем же синтаксисом, используемым интерактивно, клавиатурными сочетаниями, или же из терминала.

3. Удобное составление скриптов из терминала.

4. Несколько буферов вставки.

5. Выбор между vi- и emacs-подобными раскладками клавиатуры.

6. Возможность ограничивать размеры окна.

7. Более удобный синтаксис строки состояния, возможность отображения первой строки вывода определенной команды.

8.Простой, современный, легко расширяемый код под лицензией BSD.

В том же FAQ есть перечень функций GNU Sreen, которых нет в tmux:

1. Встроенная поддержка последовательной передачи данных и протокола telnet — это приведет к разбуханию и вряд ли будет добавлено в tmux.

2. Кросплатформеная поддержка, например, IRIX и HP-UX и других странных терминалов.

У tmux есть и другие преимущества перед GNU Screen. Например:

1. Строка состояния включена по умолчанию. Помните пример конфига для создания строки состояния в Gnu Screen? В tmux все проще — если строка состояния не нужна, ее легко можно отключить.

2. Вертикальный сплит — часть основного функционала. Он гораздо менее глючный и более мощный, нежели патч для вертикального сплита в GNU Screen. Фактически, для вертикального сплита в tmux созданы несколько предустановок, между которыми пользователь может легко переключаться.

3. tmux включен в OpenBSD по умолчанию, код приложения прошел тщательную проверку.

Тео де Радт, основатель и глава проекта OpenBSD был впечатлен безопасностью строения tmux:

Я думаю, сложная проверка кода tmux была самым примечательным событием. За пару часов я нашел одну или две ошибочки с небольшими последствиями для безопасности.

В основную ветку его не включили из-за лицензии. Но код — высочайшего класса.

Во время дискуссии, когда Тео делился своим мнением, лидер проекта tmux рассказал о преимуществах tmux:

1. Управление сессиями и окнами более гибкое. Можно произвольно связать окна разных сессий.

2. Сплит и расположение более мощные по сравнению с выпущенной версией screen, и мы намерены улучшать их дальше.

3. Лучшая поддержка UTF-8.

4. Код лучше. Не собираюсь притворяться, будто мой код идеален, но код screen просто нечитаем. Значит, если у кого-то появится идея добавить киллер-фичу, ее легко будет добавить и (как любезно указал Тео) легко проверить. Наша цель — не код из серии "лишь бы написать", так что, надеюсь, улучшения в tmux будут внедряться быстрее, чем в screen.

5. Набор команд легок в использовании и более единообразен. Хотя, конечно, и здесь есть свои сложности — так что исправления документации только приветствуются.

Алекс Александер описывает свой опыт перехода с GNU Screen на tmux c точки зрения пользователя Linux:

Простой конфиг, исчерпывающая документация и пара-тройка небольших изменений (то есть улучшенный, стабильный сплит окон), и tmux станет отличной альтернативой screen. Но самая большая разница — использование памяти. Стоило открыть несколько окон в screen, и они требовали 40-50 mb памяти. В аналогичных условиях tmux едва потребляет 10 mb.

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

Легкие альтернативы


Конечно, если вам необходимо отделение от запущенного процесса, есть более легкие приложения (по сравнению с tmux или GNU Screen). Просто посмотрите на dtach или nohup, если вам больше ничего не нужно.


Оригинал (английский)
Переведено при помощи сервиса translated.by инициативной группой переводчиков welinux при участии пользователей Zereal, Shtsh, settler.




f_evgeny 19.11.10 21:30 # +2
Давно пользуюсь screen. Ужасы во многом преувеличены, однако возможно овчинка стоит выделки, нужно срочно попробовать.
time2die 19.11.10 21:48 # +1
задумался о переходе ради такого
bosha 19.11.10 23:47 # +1
Поверьте, стоит. Я был ярым фанатом screen пока не попробовал tmux. Сейчас на tmux'е и назад на screen не тянет. Единственное что смущает, так это то, что в debian stable его пока нет. Приходится либо самому собирать, либо подключать testing и ставить оттуда.
Scrill 19.11.10 23:54 # +0
Что подразумевается под словами "ярый фанат"?
bosha 19.11.10 23:55 # +0
То и значит.
bosha 19.11.10 23:35 # +4
Я зачем изобретать велосипед^Wписать то, что уже давно написано. Например я в блоге давно и очень подробно всё описал. Причём описал на мой взгляд очень подробно.
Zereal 20.11.10 00:06 # +0
не читала твой блог раньше, действительно, очень подробно.
bosha 20.11.10 00:17 # +0
Рад что пришлось по душе :)
dr_magnus 20.11.10 01:41 # +0
вот-вот! я тоже про тебя вспомнил :-)
ну и еще ссылочка (ага, я себя немного под шумок пропиарю :-)
Scrill 19.11.10 23:40 # +5
Спасибо, узнал что у screen'а есть конфиг :)

%username% love BDSM!

wind1r 20.11.10 01:40 # +0
Да, tmux не плох, но у меня он глючит. В чём проблема так и не понял.
=Беда
kstep 20.11.10 03:11 # +0
Видел вроде такое и под screen-ом. Похоже на некорректно установленную переменную TERM, попробуй с ней поиграться.

%username% love BDSM!

%username% love BDSM!

wind1r 20.11.10 16:28 # +0
Попробовал, в .tmux.conf указать - не помогло.
wind1r 20.11.10 16:58 # +0
Хотя да, вы были правы. В .zshrc у меня было прописанно xterm-color256, оставил просто color - tmux заработал) Спасибо за наводку.
dront78 20.11.10 12:55 # +0
гоняю xpra - как пишут - аналог screen только для X. пока нравится. есть в AUR, для остальных http://partiwm.org
muhas 22.11.10 09:49 # +0
описал бы - а то заинтересовал...

ради вертикалсплита в скрине поставил скрин из гита...

пока особых приемуществ у tmux не заметил, конфиги схожи - функционал тоже... но попробывать стоит в любом случае
dront78 22.11.10 15:04 # +0
пока из глюков - нулевые размеры экрана. xterm свернутый в 1 пиксель ;) погоняю еще
yuretsz 21.11.10 00:18 # +0
Вы мне только скажите. Оно будет хранить мою bash_history? Скрин херит ее постоянно.

%username% love BDSM!

blackraven 23.11.10 12:34 # +0
попробуйте zsh :) Он точно прекрасно работает с историей из нескольких сеансов, в том числе в скрине.
Iopbabay 21.11.10 19:24 # +0
Да, tmux понравился, но остаюсь пока на screen. C tmux обнаружились две проблемы.
1.Он медленнее screen, что заметно на слабой линии.
2.У него нет промотки терминала колесом мыши. Вернее она есть, но ее надо включать комбинацией клавиш - неудобно.
Если бы особенно не вторая проблема, то во всем остальном tmux понравился больше screen.
А то делаешь "ps aux" в терминале, а чтобы отмотать результат, надо еще и режим копирования включить.
f_evgeny 22.11.10 10:09 # +0
Кстати о птичках, в screen, который идет в Ubuntu, по крайней мере в 9.10, есть вертикальное деление экрана (Ctr-A |)
muhas 22.11.10 10:44 # +0
да, там с патчем...


кстати, тмуксогуру - подскажите как сделать в tmux в конфиге что бы при старте делился он на пару не очень равных регионов, аля как в скрине
1
2
3
4
5
6
split
resize +4
screen
focus
screen
focus

а то просто прописав split-window -v в конфиге и при старте тмукс начинает ругаться...

ну и что-нить аля -RD скриновского есть? а то к той же сессии подключатся когда она одна и фиг знает с каким именем как-то неудобно...

попробую законфигурять, а потом заюзаю на пару дней взамен скрина, авось и профиты какие подороге замечу)
wiz 22.11.10 11:26 # +2
Приятная штука. Для меня скорее альтернатива не screen, а terminator.
dismay 24.11.10 03:30 # +0
Жаль только что не умеет писать лог как screen (C-a H), иногда очень выручает.
По ощущениям работает шустрее screen'a.
Iopbabay 25.11.10 18:37 # +1
Отвечу сам себе. Нашел как сделать в tmux прокрутку в терминале колесом мыши.
set -g terminal-overrides 'xterm*:smcup@:rmcup@'
Мигрировал на tmux:)
kstep 26.11.10 22:30 # +0
Огромное тебе человеческое спасибо!

Посты Комментарии
Последние посты
    Посты Комментарии
    Последние комментарии
      Посты Комментарии
      Изменения
        Посты Комментарии Изменения Черновики Избранное
        Черновики (все)
          Посты Комментарии Изменения Черновики Избранное
          Избранное (всё)
            Посты Комментарии Изменения Черновики Избранное
            Лучшие блоги (все 154)
            Топ пользователей Топ блогов
            Топ пользователей Топ блогов
            Элита (все 3089 из 228 городов)
            Топ пользователей Топ блогов
            welinux.ru

            Смотреть онлайн бесплатно

            Онлайн видео бесплатно


            Смотреть русское с разговорами видео

            Online video HD

            Видео скачать на телефон

            Русские фильмы бесплатно

            Full HD video online

            Смотреть видео онлайн

            Смотреть HD видео бесплатно

            School смотреть онлайн